

# Microsoft Dynamics 365 CRM エンティティからの読み取り
<a name="microsoft-dynamics-365-reading-from-entities"></a>

 **前提条件** 
+  読み取り元の Microsoft Dynamics 365 CRM オブジェクト。連絡先またはアカウントなどのオブジェクト名が必要です。次の表に、サポートされているエンティティを示します。

 **サポートされているエンティティ** 


| エンティティ | フィルタリング可能 | 制限をサポートする | Order By をサポートする | Select \* をサポートする | パーティショニングをサポートする | 
| --- | --- | --- | --- | --- | --- | 
| 動的エンティティ | はい | あり | あり | あり | あり | 

 **例** 

```
dynamics365_read = glueContext.create_dynamic_frame.from_options(
    connection_type="microsoftdynamics365crm",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "dynamic_entity",
        "API_VERSION": "v9.2",
        "INSTANCE_URL": "https://{tenantID}.api.crm.dynamics.com"
    }
```

## Microsoft Dynamics 365 CRM のエンティティとフィールドの詳細
<a name="microsoft-dynamics-365-entity-and-field-details"></a>

 **動的メタデータを持つエンティティ**: 

Microsoft Dynamics 365 CRM は、メタデータを動的に取得するためのエンドポイントを提供します。このため、動的エンティティの場合は演算子サポートがデータタイプレベルでキャプチャされます。

<a name="microsoft-dynamics-365-metadata-table"></a>

- **動的エンティティ**
  - **データタイプ:** DateTime / **サポートされている演算子:**  =、>、>=、<、<=、BETWEEN
  - **データタイプ:** 日付 / **サポートされている演算子:**  =, <, <=, >, >=
  - **データタイプ:** 文字列 / **サポートされている演算子:**  =, \!=
  - **データタイプ:** 倍精度 / **サポートされている演算子:**  =, <, <=, >, >=
  - **データタイプ:** 整数 / **サポートされている演算子:**  =, <, <=, >, >=
  - **データタイプ:** 10 進数 / **サポートされている演算子:**  =, <, <=, >, >=
  - **データタイプ:** Long / **サポートされている演算子:**  =, <, <=, >, >=
  - **データタイプ:** BigInteger / **サポートされている演算子:**  =, <, <=, >, >=
  - **データタイプ:** リスト / **サポートされている演算子:** NA
  - **データタイプ:** Struct / **サポートされている演算子:** NA
  - **データタイプ:** マッピング / **サポートされている演算子:** NA



 **パーティショニングクエリ** 

Microsoft Dynamics 365 CRM は、フィールドベースのパーティショニングのみをサポートします。

 Spark で同時実行を使用する場合は、追加の Spark オプション `PARTITION_FIELD`、`LOWER_BOUND`、`UPPER_BOUND`、および `NUM_PARTITIONS` を指定できます。これらのパラメータを使用すると、元のクエリは Spark タスクで同時に実行できるサブクエリの `NUM_PARTITIONS` の数に分割されます。
+  `PARTITION_FIELD`: クエリのパーティション化に使用するフィールドの名前。
+  `LOWER_BOUND`: 選択したパーティションフィールドの包括的な下限値。

   Datetime には、Spark SQL クエリで使用される Spark タイムスタンプ形式を使用できます。有効な値の例: `"2024-01-30T06:47:51.000Z"`。
+  `UPPER_BOUND`: 選択したパーティションフィールドの排他的上限値。
+  `NUM_PARTITIONS`: パーティション数。

 エンティティごとのパーティション分割フィールドのサポートの詳細は、以下の表にまとめられています。


| エンティティ名 | パーティション分割フィールド | DataType | 
| --- | --- | --- | 
| 動的エンティティ (標準エンティティ) | クエリ可能な動的 DateTime フィールド | createdon、modifiedon | 
| 動的エンティティ (カスタムエンティティ) | createdon、modifiedon | createdon、modifiedon | 

 **例** 

```
dynamics365_read = glueContext.create_dynamic_frame.from_options(
    connection_type="microsoftdynamics365crm",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "dynamic_entity",
        "API_VERSION": "v9.2",
        "instanceUrl": "https://{tenantID}.api.crm.dynamics.com"
        "PARTITION_FIELD": "createdon"
        "LOWER_BOUND": "2024-01-30T06:47:51.000Z"
        "UPPER_BOUND": "2024-06-30T06:47:51.000Z"
        "NUM_PARTITIONS": "10"
    }
```