

# Cómo leer de entidades de Freshdesk
<a name="freshdesk-reading-from-entities"></a>

**Requisito previo**

Un objeto de Freshdesk del que desea leer. Necesitará el nombre del objeto.

**Entidades compatibles para el origen sincrónico:**


| Entidad | Se puede filtrar | Admite límite | Admite Ordenar por | Admite Seleccionar \$1 | Admite partición | 
| --- | --- | --- | --- | --- | --- | 
| Agentes | Sí | Sí | No | Sí | Sí | 
| Horario laboral | No | Sí | No | Sí | Sí | 
| Empresa | Sí | Sí | No | Sí | Sí | 
| Contactos | Sí | Sí | No | Sí | Sí | 
| Conversaciones | No | Sí | No | Sí | No | 
| Configuración de correo electrónico | No | Sí | No | Sí | No | 
| Bandejas de entrada de correo electrónico | Sí | Sí | Sí | Sí | No | 
| Categorías de foro | No | Sí | No | Sí | No | 
| Foros | No | Sí | No | Sí | No | 
| Grupos | No | Sí | No | Sí | No | 
| Productos | No | Sí | No | Sí | No | 
| Roles | No | Sí | No | Sí | No | 
| Calificaciones de satisfacción | Sí | Sí | No | Sí | No | 
| Habilidades | No | Sí | No | Sí | No | 
| Soluciones | Sí | Sí | No | Sí | No | 
| Encuestas | No | Sí | No | Sí | No | 
| Tickets | Sí | Sí | Sí | Sí | Sí | 
| Entradas de tiempo | Sí | Sí | No | Sí | No | 
| Temas | No | Sí | No | Sí | No | 
| Comentarios de tema | No | Sí | No | Sí | No | 

**Entidades compatibles para el origen asíncrono**:


| Entidad | Versión de la API | Se puede filtrar | Admite límite | Admite Ordenar por | Admite Seleccionar \$1 | Admite partición | 
| --- | --- | --- | --- | --- | --- | --- | 
| Empresas | v2 | No | No | No | No | No | 
| Contactos | v2 | No | No | No | No | No | 

**Ejemplo:**

```
freshdesk_read = glueContext.create_dynamic_frame.from_options(
    connection_type="freshdesk",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v2"
    }
```

**Detalles de entidades y campos de Freshdesk**:


| Entidad | Campo | 
| --- | --- | 
| Agentes | https://developers.freshdesk.com/api/\$1list\$1all\$1agents | 
| Horario laboral | https://developers.freshdesk.com/api/\$1list\$1all\$1business\$1hours | 
| Comentarios | https://developers.freshdesk.com/api/\$1comment\$1attributess | 
| Empresa | https://developers.freshdesk.com/api/\$1companies | 
| Contactos | https://developers.freshdesk.com/api/\$1list\$1all\$1contacts | 
| Conversaciones | https://developers.freshdesk.com/api/\$1list\$1all\$1ticket\$1notes | 
| Configuraciones de correo electrónico | https://developers.freshdesk.com/api/\$1list\$1all\$1email\$1configs | 
| Bandejas de entrada de correo electrónico | https://developers.freshdesk.com/api/\$1list\$1all\$1email\$1mailboxes | 
| Categorías de foro | https://developers.freshdesk.com/api/\$1category\$1attributes | 
| Foros | https://developers.freshdesk.com/api/\$1forum\$1attributes | 
| Grupos | https://developers.freshdesk.com/api/\$1list\$1all\$1groups | 
| Productos | https://developers.freshdesk.com/api/\$1list\$1all\$1products | 
| Roles | https://developers.freshdesk.com/api/\$1list\$1all\$1roles | 
| Calificaciones de satisfacción | https://developers.freshdesk.com/api/\$1view\$1all\$1satisfaction\$1ratings | 
| Habilidades | https://developers.freshdesk.com/api/\$1list\$1all\$1skills | 
| Soluciones | https://developers.freshdesk.com/api/\$1solution\$1content | 
| Encuestas | https://developers.freshdesk.com/api/\$1list\$1all\$1surveys | 
| Tickets | https://developers.freshdesk.com/api/\$1list\$1all\$1tickets | 
| Entradas de tiempo | https://developers.freshdesk.com/api/\$1list\$1all\$1time\$1entries | 
| Temas | https://developers.freshdesk.com/api/\$1topic\$1attributes | 

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

**Partición basada en filtros**:

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-09-30T01:01:01.000Z"
  ```
+ `UPPER_BOUND`: un valor límite superior **exclusivo** del campo de partición elegido.
+ `NUM_PARTITIONS`: el número de particiones.

Ejemplo:

```
freshDesk_read = glueContext.create_dynamic_frame.from_options(
     connection_type="freshdesk",
     connection_options={
         "connectionName": "connectionName",
         "ENTITY_NAME": "entityName",
         "API_VERSION": "v2",
         "PARTITION_FIELD": "Created_Time"
         "LOWER_BOUND": " 2024-10-27T23:16:08Z“
         "UPPER_BOUND": " 2024-10-27T23:16:08Z"
         "NUM_PARTITIONS": "10"
     }
```