

# Cómo leer a partir de entidades de QuickBooks
<a name="quickbooks-reading-from-entities"></a>

**Requisito previo**

Un objeto de QuickBooks desde el que desea leer.

**Entidades compatibles como origen:**


| Entidad | Se puede filtrar | Admite límite | Admite Ordenar por | Admite Seleccionar \$1 | Admite partición | 
| --- | --- | --- | --- | --- | --- | 
| Cuenta | Sí | Sí | Sí | Sí | Sí | 
| Factura | Sí | Sí | Sí | Sí | Sí | 
| Información de la empresa | No | No | No | Sí | No | 
| Cliente | Sí | Sí | Sí | Sí | Sí | 
| Empleado | Sí | Sí | Sí | Sí | Sí | 
| Estimación | Sí | Sí | Sí | Sí | Sí | 
| Factura | Sí | Sí | Sí | Sí | Sí | 
| Elemento | Sí | Sí | Sí | Sí | Sí | 
| Pago | Sí | Sí | Sí | Sí | Sí | 
| Preferencias | No | No | No | Sí | No | 
| Pérdidas y ganancias | Sí | No | No | Sí | No | 
| Agencia fiscal | Sí | Sí | Sí | Sí | Sí | 
| Proveedores | Sí | Sí | Sí | Sí | Sí | 

**Ejemplo:**

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

**Detalles de entidades y campos de QuickBooks**:

Para obtener más información acerca de las entidades y los detalles de los campos, consulte:
+ [Cuenta](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/account)
+ [Factura](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)
+ [Empleado](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/employee)
+ [Estimación](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/estimate)
+ [Factura](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/invoice)
+ [Elemento](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/item)
+ [Pago](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/payment)
+ [Preferencias](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)
+ [Vendor](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/vendor)

## Consultas de partición
<a name="quickbooks-reading-partitioning-queries"></a>

**Partición basada en campos**:

En QuickBooks, los campos de tipo de datos Integer y DateTime admiten la partición basada en campos.

Puede proporcionar las opciones adicionales de Spark `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` y `NUM_PARTITIONS` si quiere utilizar la simultaneidad en Spark. Con estos parámetros, la consulta original se dividiría en un número `NUM_PARTITIONS` de subconsultas que las tareas de Spark pueden ejecutar simultáneamente.
+ `PARTITION_FIELD`: el nombre del campo que se utilizará para particionar la consulta.
+ `LOWER_BOUND`: un valor de límite inferior **inclusivo** del campo de partición elegido.

  En el campo Datetime, aceptamos el formato de marca de tiempo de Spark que se utiliza en las consultas SQL de Spark.

  Ejemplos de valor válido:

  ```
  "2024-05-07T02:03:00.00Z"
  ```
+ `UPPER_BOUND`: un valor límite superior **exclusivo** del campo de partición elegido.
+ `NUM_PARTITIONS`: el número de particiones.

Ejemplo:

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

**Partición basada en registros**:

La consulta original se divide en un número `NUM_PARTITIONS` de subconsultas que se pueden ejecutar por tareas Spark de forma simultánea:
+ `NUM_PARTITIONS`: el número de particiones.

Ejemplo:

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