

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Lettura da NetSuite entità Oracle
<a name="oracle-netsuite-reading-from-entities"></a>

**Prerequisito**

Un NetSuite oggetto Oracle da cui desideri 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 \$1 | 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ì | 
| Fornitori | 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 NetSuite dell'entità e dei campi Oracle**:

Oracle carica NetSuite 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, =, \$1= | 
| Data | BETWEEN, =, <, <=, >, >= | 
| DateTime | BETWEEN, <, <=, >, >= | 
| Numerico |  =, \$1=, <, <=, >, >= | 
| Booleano |  =, \$1= | 

**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
<a name="oracle-netsuite-reading-partitioning-queries"></a>

**Partizionamento basato sul campo**

Il NetSuite connettore Oracle dispone di metadati dinamici in modo che i campi supportati per il partizionamento basato sui campi vengano scelti dinamicamente. Il partizionamento basato sui campi è supportato nei campi con il tipo di dati Integer, Date o. BigInteger DateTime

Puoi fornire le opzioni Spark aggiuntive `PARTITION_FIELD`, `LOWER_BOUND`, `UPPER_BOUND` e `NUM_PARTITIONS` se desideri utilizzare la concorrenza 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 sui record, il numero totale di record presenti viene interrogato dall' NetSuite API Oracle e diviso per il `NUM_PARTITIONS` numero 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"
    }
```