

# Ler de entidades do Microsoft Dynamics 365 CRM
<a name="microsoft-dynamics-365-reading-from-entities"></a>

 **Pré-requisitos** 
+  Um objeto do Microsoft Dynamics 365 CRM do qual você deseja ler. Você precisará do nome do objeto, como contatos ou contas. A tabela a seguir mostra as entidades compatíveis. 

 **Entidades compatíveis** 


| Entidade | Pode ser filtrada | Oferece suporte a limite | Oferece suporte a Ordenar por | Oferece suporte a Selecionar \$1 | Oferece suporte a particionamento | 
| --- | --- | --- | --- | --- | --- | 
| Entidade dinâmica | Sim | Sim | Sim | Sim | Sim | 

 **Exemplo** 

```
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"
    }
```

## Detalhes das entidades e dos campos do Microsoft Dynamics 365 CRM
<a name="microsoft-dynamics-365-entity-and-field-details"></a>

 **Entidades com metadados dinâmicos**: 

O Microsoft Dynamics 365 CRM fornece endpoints para buscar metadados dinamicamente. Portanto, para entidades dinâmicas, o suporte do operador é capturado no nível do tipo de dados.

<a name="microsoft-dynamics-365-metadata-table"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/glue/latest/dg/microsoft-dynamics-365-reading-from-entities.html)

 **Particionamento de consultas** 

O Microsoft Dynamics 365 CRM oferece suporte somente ao particionamento baseado em campo.

 Podem ser fornecidas as opções adicionais do Spark `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` e `NUM_PARTITIONS` se você quiser utilizar a simultaneidade no Spark. Com esses parâmetros, a consulta original seria dividida em `NUM_PARTITIONS` subconsultas, que poderiam ser executadas pelas tarefas do Spark simultaneamente. 
+  `PARTITION_FIELD`: o nome do campo a ser usado para particionar a consulta. 
+  `LOWER_BOUND`: um valor limite inferior inclusivo do campo de partição escolhido. 

   Em Datetime, aceitamos o formato de carimbo de data/hora do Spark usado em consultas SQL do Spark. Exemplo de valores válidos: `"2024-01-30T06:47:51.000Z"`. 
+  `UPPER_BOUND`: um valor limite superior exclusivo do campo de partição escolhido. 
+  `NUM_PARTITIONS`: número de partições. 

 Os detalhes do suporte do campo de particionamento relativo às entidades são capturados na tabela abaixo: 


| Entity Name | Campos de particionamento | DataType | 
| --- | --- | --- | 
| Entidade dinâmica (entidade padrão) | Campos DateTime dinâmicos que podem ser consultados | createdon, modifiedon | 
| Entidade dinâmica (entidade personalizada) | createdon, modifiedon | createdon, modifiedon | 

 **Exemplo** 

```
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"
    }
```