

# Leitura de entidades do QuickBooks
<a name="quickbooks-reading-from-entities"></a>

**Pré-requisito**

Um objeto do QuickBooks do qual você deseja ler.

**Entidades compatíveis quanto à origem**:


| Entidade | Pode ser filtrada | Oferece suporte a limite | Oferece suporte a Ordenar por | Oferece suporte a Selecionar \$1 | Oferece suporte a particionamento | 
| --- | --- | --- | --- | --- | --- | 
| Conta | Sim | Sim | Sim | Sim | Sim | 
| Cobrança | Sim | Sim | Sim | Sim | Sim | 
| Informações da empresa | Não | Não | Não | Sim | Não | 
| Cliente | Sim | Sim | Sim | Sim | Sim | 
| Funcionário | Sim | Sim | Sim | Sim | Sim | 
| Estimativa | Sim | Sim | Sim | Sim | Sim | 
| Fatura | Sim | Sim | Sim | Sim | Sim | 
| Item | Sim | Sim | Sim | Sim | Sim | 
| Pagamento | Sim | Sim | Sim | Sim | Sim | 
| Preferências | Não | Não | Não | Sim | Não | 
| Lucros e perdas | Sim | Não | Não | Sim | Não | 
| Agência tributária | Sim | Sim | Sim | Sim | Sim | 
| Fornecedores | Sim | Sim | Sim | Sim | Sim | 

**Exemplo:**

```
QuickBooks_read = glueContext.create_dynamic_frame.from_options(
    connection_type="quickbooks",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "Account",
        "API_VERSION": "v3"
    }
```

**Detalhes de entidade e campo do QuickBooks**:

Para obter mais informações sobre os detalhes das entidades e dos campos, consulte:
+ [Conta](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/account)
+ [Cobrança](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/bill)
+ [CompanyInfo](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/companyinfo)
+ [Cliente](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/customer)
+ [Funcionário](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/employee)
+ [Estimativa](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/estimate)
+ [Fatura](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/invoice)
+ [Item](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/item)
+ [Pagamento](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/payment)
+ [Preferências](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/preferences)
+ [ProfitAndLoss](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/profitandloss)
+ [TaxAgency](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/taxagency)
+ [Fornecedor](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/vendor)

## Particionamento de consultas
<a name="quickbooks-reading-partitioning-queries"></a>

**Particionamento com base em campo**:

No QuickBooks, os campos de tipo de dados Integer e DateTime oferecem suporte a particionamento com base em campos.

É possível fornecer as opções adicionais do Spark `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` e `NUM_PARTITIONS` se 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.

  No campo Datetime, aceitamos o formato de carimbo de data/hora do Spark usado em consultas SQL do Spark.

  Exemplos de valores válidos:

  ```
  "2024-05-07T02:03:00.00Z"
  ```
+ `UPPER_BOUND`: um valor limite superior **exclusivo** do campo de partição escolhido.
+ `NUM_PARTITIONS`: o número de partições.

Exemplo:

```
QuickBooks_read = glueContext.create_dynamic_frame.from_options(
    connection_type="quickbooks",
    connection_options={
        "connectionName": "connectionName",
        "REALMID": "12345678690123456789",
        "ENTITY_NAME": "Account",
        "API_VERSION": "v3",
        "PARTITION_FIELD": "MetaData_CreateTime"
        "LOWER_BOUND": "2023-09-07T02:03:00.000Z"
        "UPPER_BOUND": "2024-05-07T02:03:00.000Z"
        "NUM_PARTITIONS": "10"
    }
```

**Particionamento com base em registros**:

A consulta original é dividida em `NUM_PARTITIONS` subconsultas que podem ser executadas pelas tarefas do Spark simultaneamente:
+ `NUM_PARTITIONS`: o número de partições.

Exemplo:

```
QuickBooks_read = glueContext.create_dynamic_frame.from_options(
    connection_type="quickbooks",
    connection_options={
        "connectionName": "connectionName",
        "REALMID": "1234567890123456789",
        "ENTITY_NAME": "Bill",
        "API_VERSION": "v3",
        "NUM_PARTITIONS": "10"
    }
```