View a markdown version of this page

Lectura de entidades de Oracle NetSuite - AWS Glue

Lectura de entidades de Oracle NetSuite

Requisito previo

Un objeto de Oracle NetSuite desde el cual le gustaría leer. Necesitará el nombre del objeto, como deposit o timebill. En la siguiente tabla se muestran las entidades admitidas.

Entidades compatibles como origen:

Entidad Se puede filtrar Admite Ordenar por Admite límite Admite SELECCIONAR * Admite partición
Depósito Sí No Sí Sí Sí
Artículo de la descripción Sí No Sí Sí Sí
Artículo de inventario Sí No Sí Sí Sí
Procesamiento de artículos Sí No Sí Sí Sí
Grupo de artículos Sí No Sí Sí Sí
Entrada de diario Sí No Sí Sí Sí
Artículo de compra no incluido en el inventario Sí No Sí Sí Sí
Artículo de reventa no incluido en el inventario Sí No Sí Sí Sí
Artículo de venta no incluido en el inventario Sí No Sí Sí Sí
Orden de compra Sí No Sí Sí Sí
Filial Sí No Sí Sí Sí
Proveedor Sí No Sí Sí Sí
Factura de proveedor Sí No Sí Sí Sí
Autorización de devolución del proveedor Sí No Sí Sí Sí
Factura de tiempo Sí No Sí Sí Sí
Pago de cliente Sí No Sí Sí Sí
Solicitud de cumplimiento Sí No Sí Sí Sí
Elemento Sí Sí Sí Sí Sí
Línea de transacción Sí Sí Sí Sí Sí
Línea de contabilidad de transacciones Sí Sí Sí Sí Sí
Tipos de registros personalizados (dinámicos) Sí Sí Sí Sí Sí

Ejemplo:

netsuiteerp_read = glueContext.create_dynamic_frame.from_options( connection_type="netsuiteerp", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "deposit", "API_VERSION": "v1" } )

Detalles de la entidad y el campo de Oracle NetSuite:

Oracle NetSuite carga dinámicamente los campos disponibles en la entidad seleccionada. Según el tipo de datos de los campos, se admiten los operadores de filtro siguientes.

Tipo de datos de los campos Operadores de filtro admitidos
Cadena LIKE, =, !=
Date BETWEEN, =, <, <=, >, >=
DateTime BETWEEN, <, <=, >, >=
Numérico =, !=, <, <=, >, >=
Booleano =, !=

Formato de entrada esperado para los valores booleanos en Expresión de filtro:

Entidad Formato de valor booleano “true” Formato de valor booleano “false” Ejemplo
Entidades de Elemento, Línea de transacción, Línea de contabilidad de transacciones y Tipo de registro personalizado T o t F o f isinactive = “T” o isinactive = “t”
Todas las demás entidades true false isinactive = true

Consultas de partición

Partición basada en campos

El conector de Oracle NetSuite tiene metadatos dinámicos, de modo que los campos compatibles para la partición basada en campos se eligen de forma dinámica. La partición basada en campos se admite en los campos que tienen el tipo de datos Integer, BigInteger, Date o DateTime.

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.

    Para el campo de marca de tiempo, aceptamos el formato de marca de tiempo de Spark que se usa en las consultas de Spark SQL.

    Ejemplos de valores válidos:

    "TIMESTAMP \"1707256978123\"" "TIMESTAMP \"1702600882\"" "TIMESTAMP '2024-02-06T22:00:00:00.000Z'" "TIMESTAMP '2024-02-06T22:00:00:00Z'" "TIMESTAMP '2024-02-06'"
  • UPPER_BOUND: un valor límite superior exclusivo del campo de partición elegido.

  • NUM_PARTITIONS: el número de particiones.

Ejemplo:

netsuiteerp_read = glueContext.create_dynamic_frame.from_options( connection_type="netsuiteerp", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "deposit", "API_VERSION": "v1", "PARTITION_FIELD": "id", "LOWER_BOUND": "1", "UPPER_BOUND": "10000", "NUM_PARTITIONS": "10" }

Partición basada en registros

Puede proporcionar la opción adicional NUM_PARTITIONS de Spark si quiere usar la simultaneidad en Spark. Con estos parámetros, la consulta original se dividiría en NUM_PARTITIONS subconsultas que las tareas de Spark pueden ejecutar simultáneamente.

En la partición basada en registros, el número total de registros presentes se consulta desde la API de Oracle NetSuite y se divide entre el NUM_PARTITIONS proporcionado. A continuación, cada subconsulta obtiene simultáneamente el número de registros resultante.

  • NUM_PARTITIONS: el número de particiones.

Ejemplo:

netsuiteerp_read = glueContext.create_dynamic_frame.from_options( connection_type="netsuiteerp", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "deposit", "API_VERSION": "v1", "NUM_PARTITIONS": "3" }