Lettura da entità Oracle NetSuite
Prerequisito
Un oggetto Oracle NetSuite da cui si desidera leggere. È necessario il nome dell'oggetto, come deposit o timebill. Nella tabella seguente sono illustrate le entità supportate.
Entità supportate come origine:
| Entità | Può essere filtrato | Supporta Ordina per | Supporta Limite | Supporta SELEZIONA * | Supporta il partizionamento | 
|---|---|---|---|---|---|
| Deposito | Sì | No | Sì | Sì | Sì | 
| Descrizione articolo | Sì | No | Sì | Sì | Sì | 
| Articolo di inventario | Sì | No | Sì | Sì | Sì | 
| Evasione dell'articolo | Sì | No | Sì | Sì | Sì | 
| Gruppo di articoli | Sì | No | Sì | Sì | Sì | 
| Registrazione nel diario | Sì | No | Sì | Sì | Sì | 
| Articolo di acquisto non in inventario | Sì | No | Sì | Sì | Sì | 
| Articolo di rivendita non in inventario | Sì | No | Sì | Sì | Sì | 
| Articolo di vendita non in inventario | Sì | No | Sì | Sì | Sì | 
| Ordine di acquisto | Sì | No | Sì | Sì | Sì | 
| Affiliata | Sì | No | Sì | Sì | Sì | 
| Vendor | Sì | No | Sì | Sì | Sì | 
| Fattura fornitore | Sì | No | Sì | Sì | Sì | 
| Autorizzazione per il reso al fornitore | Sì | No | Sì | Sì | Sì | 
| Ora di fatturazione | Sì | No | Sì | Sì | Sì | 
| Pagamento cliente | Sì | No | Sì | Sì | Sì | 
| Richiesta di evasione | Sì | No | Sì | Sì | Sì | 
| Elemento | Sì | Sì | Sì | Sì | Sì | 
| Linea di transazione | Sì | Sì | Sì | Sì | Sì | 
| Linea di contabilità di transazione | Sì | Sì | Sì | Sì | Sì | 
| Tipi di record personalizzati (dinamici) | Sì | Sì | Sì | Sì | Sì | 
Esempio:
netsuiteerp_read = glueContext.create_dynamic_frame.from_options( connection_type="netsuiteerp", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "deposit", "API_VERSION": "v1" } )
Dettagli di entità e campo di Oracle NetSuite:
Oracle NetSuite carica dinamicamente i campi disponibili nell'entità selezionata. A seconda del tipo di dati di campo, supporta i seguenti operatori di filtro.
| Tipo di dati dei campi | Operatori di filtro supportati | 
|---|---|
| Stringa | LIKE, =, != | 
| Data | BETWEEN, =, <, <=, >, >= | 
| DateTime | BETWEEN, <, <=, >, >= | 
| Numerico | =, !=, <, <=, >, >= | 
| Booleano | =, != | 
Formato di input previsto per i valori booleani in Espressione filtro:
| Entità | Formato di valore booleano “true” | Formato di valore booleano “false” | Esempio | 
|---|---|---|---|
| Entità Articolo, Linea di transazione, Linea di contabilità di transazione e Tipo di record personalizzato | T o t | F o f | isinactive = “T” oppure isinactive = “t” | 
| Tutte le altre entità | true | false | isinactive = true | 
Query di partizionamento
Partizionamento basato sul campo
Il connettore Oracle NetSuite dispone di metadati dinamici in modo tale che i campi supportati per il partizionamento basato sul campo vengano scelti dinamicamente. Il partizionamento basato sul campo è supportato nei campi con il tipo di dati Integer, BigInteger, Date o DateTime.
È possibile fornire le opzioni Spark aggiuntive PARTITION_FIELD, LOWER_BOUND, UPPER_BOUND e NUM_PARTITIONS se si desidera utilizzare la simultaneità in Spark. Con questi parametri, la query originale viene suddivisa in NUM_PARTITIONS query secondarie che possono essere eseguite contemporaneamente dalle attività Spark.
PARTITION_FIELD: il nome del campo da utilizzare per partizionare la query.LOWER_BOUND: un valore limite inferiore inclusivo del campo di partizione scelto.Per il campo timestamp, accettiamo il formato di timestamp Spark utilizzato nelle query SQL di Spark.
Esempi di valori validi:
"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 valore limite superiore esclusivo del campo di partizione scelto.NUM_PARTITIONS: il numero di partizioni.
Esempio:
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" }
Partizionamento basato su record
È possibile fornire l'opzione Spark aggiuntiva NUM_PARTITIONS se si desidera utilizzare la simultaneità in Spark. Con questo parametro, la query originale viene suddivisa in NUM_PARTITIONS query secondarie che possono essere eseguite contemporaneamente dalle attività Spark.
Nel partizionamento basato su record, il numero totale di record presenti viene interrogato dall'API di Oracle NetSuite e diviso per il numero NUM_PARTITIONS fornito, il numero di record risultante viene quindi recuperato contemporaneamente da ciascuna sottoquery.
NUM_PARTITIONS: il numero di partizioni.
Esempio:
netsuiteerp_read = glueContext.create_dynamic_frame.from_options( connection_type="netsuiteerp", connection_options={ "connectionName": "connectionName", "ENTITY_NAME": "deposit", "API_VERSION": "v1", "NUM_PARTITIONS": "3" }