

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à.

# Connessione a QuickBooks
<a name="connecting-to-data-quickbooks"></a>

QuickBooks è un'applicazione di contabilità leader per le piccole e medie imprese. QuickBooks le applicazioni di contabilità risalgono agli anni '80 come uno dei primi prodotti di Intuit e, di conseguenza, erano originariamente software desktop. Oggi QuickBooks offre diverse applicazioni contabili e finanziarie aziendali sia come software installabile che come software SaaS basato su cloud. Come QuickBooks utente, puoi AWS Glue connetterti al tuo account. QuickBooks Quindi, puoi utilizzarlo QuickBooks come fonte di dati nei tuoi lavori ETL. Esegui questi processi per trasferire dati tra QuickBooks AWS servizi o altre applicazioni supportate.

**Topics**
+ [AWS Glue supporto per QuickBooks](quickbooks-support.md)
+ [Policy contenenti le operazioni API per creare e utilizzare le connessioni](quickbooks-configuring-iam-permissions.md)
+ [Configurazione QuickBooks](quickbooks-configuring.md)
+ [Configurazione delle connessioni QuickBooks](quickbooks-configuring-connections.md)
+ [Lettura da QuickBooks entità](quickbooks-reading-from-entities.md)
+ [QuickBooks opzioni di connessione](quickbooks-connection-options.md)
+ [Limitazioni e note per il QuickBooks connettore](quickbooks-connector-limitations.md)

# AWS Glue supporto per QuickBooks
<a name="quickbooks-support"></a>

AWS Glue supporta QuickBooks quanto segue:

**Supportato come origine?**  
Sì. È possibile utilizzare i job AWS Glue ETL da QuickBooks cui interrogare i dati.

**Supportato come destinazione?**  
No.

**Versioni QuickBooks API supportate**  
Sono supportate le seguenti versioni QuickBooks API:
+ v3

# Policy contenenti le operazioni API per creare e utilizzare le connessioni
<a name="quickbooks-configuring-iam-permissions"></a>

La seguente policy di esempio descrive le autorizzazioni AWS IAM richieste per la creazione e l'utilizzo delle connessioni. Se si sta creando un nuovo ruolo, creare una policy che contenga quanto segue:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

In alternativa, se non desideri utilizzare il metodo precedente, utilizza le seguenti policy IAM gestite:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Garantisce l'accesso alle risorse che AWS Glue i vari processi richiedono per l'esecuzione per conto dell'utente. Queste risorse includono AWS Glue Amazon S3, IAM, CloudWatch Logs e Amazon. EC2 Se segui la convenzione di denominazione delle risorse specificata in questa politica, AWS Glue i processi dispongono delle autorizzazioni richieste. Questa policy è in genere collegata ai ruoli specificati quando si definiscono crawler, processi ed endpoint di sviluppo.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Concede l'accesso completo alle AWS Glue risorse quando un'identità a cui è allegata la policy utilizza la AWS console di gestione. Se si segue la convenzione per la denominazione per le risorse specificate nella policy, gli utenti hanno la piena funzionalità della console. Questa policy è in genere associata agli utenti della AWS Glue console.

# Configurazione QuickBooks
<a name="quickbooks-configuring"></a>

Prima di poter AWS Glue utilizzare il trasferimento di dati da QuickBooks, è necessario soddisfare i seguenti requisiti:

## Requisiti minimi
<a name="quickbooks-configuring-min-requirements"></a>

I requisiti minimi sono i seguenti:
+ Hai un QuickBooks account.
+ Il tuo QuickBooks account è abilitato all'accesso all'API.

Per ulteriori informazioni, consulta i seguenti argomenti nella QuickBooks documentazione:
+ [Creare un account Intuit](https://quickbooks.intuit.com/learn-support/en-us/help-article/account-management/create-intuit-user-account/L62kSFEOM_US_en_US)
+ [Creare e iniziare a sviluppare la propria app](https://developer.intuit.com/app/developer/qbo/docs/get-started/start-developing-your-app)

Se soddisfi questi requisiti, sei pronto per connetterti AWS Glue al tuo QuickBooks account. Per le connessioni tipiche, non è necessario fare nient'altro QuickBooks.

# Configurazione delle connessioni QuickBooks
<a name="quickbooks-configuring-connections"></a>

QuickBooks supporta il tipo di concessione AUTHORIZATION\$1CODE per. OAuth2 Il tipo di concessione determina la modalità di AWS Glue comunicazione con cui richiedere l'accesso QuickBooks ai dati.
+ Questo tipo di concessione è considerato «a tre gambe» in OAuth quanto si basa sul reindirizzamento degli utenti a un server di autorizzazione di terze parti per autenticare l'utente. Viene utilizzato durante la creazione di connessioni tramite la console. AWS Glue 
+ Gli utenti possono comunque scegliere di creare la propria app connessa QuickBooks e fornire il proprio ID client e il segreto del client durante la creazione di connessioni tramite la AWS Glue console. In questo scenario, verranno comunque reindirizzati all'accesso e QuickBooks all'autorizzazione ad accedere AWS Glue alle proprie risorse.
+ Questo tipo di concessione genera un token di aggiornamento e un token di accesso. Il token di accesso dura poco tempo e può essere aggiornato automaticamente senza l'interazione dell'utente utilizzando il token di aggiornamento.
+ Per la QuickBooks documentazione pubblica sulla creazione di un'app connessa per il OAuth flusso del codice di autorizzazione, vedi [ OAuth Configurazione](https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0) 2.0.

Per configurare una QuickBooks connessione:

1. In AWS Glue Glue Studio, crea una connessione in **Connessioni dati** seguendo i passaggi seguenti:

   1. Quando si seleziona un **tipo di connessione**, selezionare QuickBooks.

   1. Fornisci l'URL dell'istanza e l'ID aziendale dell' QuickBooks istanza a cui desideri connetterti.

   1. Seleziona il ruolo AWS IAM che AWS Glue può assumere e dispone delle autorizzazioni per le seguenti azioni:

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Seleziona quello `secretName` che desideri utilizzare per questa connessione per AWS Glue inserire i token.

   1. Selezionare le opzioni di rete se si desidera utilizzare la propria rete.

1. Concedi il permesso di lettura `secretName` al ruolo IAM associato al tuo AWS Glue lavoro.

# Lettura da QuickBooks entità
<a name="quickbooks-reading-from-entities"></a>

**Prerequisito**

Un QuickBooks oggetto da cui vorresti leggere.

**Entità supportate come origine**:


| Entità | Può essere filtrato | Supporta limite | Supporta Ordina per | Supporta Seleziona \$1 | Supporta Partizionamento | 
| --- | --- | --- | --- | --- | --- | 
| Account | Sì  | Sì | Sì | Sì | Sì | 
| Conto | Sì  | Sì | Sì | Sì | Sì | 
| Informazioni aziendali | No | No | No | Sì | No | 
| Cliente | Sì  | Sì | Sì | Sì | Sì | 
| Dipendente | Sì  | Sì | Sì | Sì | Sì | 
| Stima | Sì  | Sì | Sì | Sì | Sì | 
| Fattura | Sì  | Sì | Sì | Sì | Sì | 
| Elemento | Sì  | Sì | Sì | Sì | Sì | 
| Pagamento  | Sì  | Sì | Sì | Sì | Sì | 
| Preferenze | No | No | No | Sì | No | 
| Profitti e perdite | Sì | No | No | Sì | No | 
| Agenzia fiscale | Sì  | Sì | Sì | Sì | Sì | 
| Fornitori | Sì  | Sì | Sì | Sì | Sì | 

**Esempio**:

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

**QuickBooks dettagli dell'entità e del campo**:

Per ulteriori informazioni sui dettagli dell'entità e del campo, consultare:
+ [Account](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/account)
+ [Conto](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)
+ [Dipendente](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/employee)
+ [Stima](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/estimate)
+ [Fattura](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)
+ [Pagamento](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/payment)
+ [Preferenze](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)
+ [Fornitori](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/vendor)

## Query di partizionamento
<a name="quickbooks-reading-partitioning-queries"></a>

**Partizionamento basato sul campo**:

In QuickBooks, i campi Integer e DateTime datatype supportano il partizionamento basato sul campo.

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 Datetime accettiamo il formato di timestamp Spark utilizzato nelle query SQL di Spark.

  Esempi di valori validi:

  ```
  "2024-05-07T02:03:00.00Z"
  ```
+ `UPPER_BOUND`: un valore limite superiore **esclusivo** del campo di partizione scelto.
+ `NUM_PARTITIONS`: il numero di partizioni.

Esempio:

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

**Partizionamento basato su record**:

La query originale viene suddivisa in `NUM_PARTITIONS` query secondarie che possono essere eseguite contemporaneamente dalle attività Spark.
+ `NUM_PARTITIONS`: il numero di partizioni.

Esempio:

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

# QuickBooks opzioni di connessione
<a name="quickbooks-connection-options"></a>

Di seguito sono elencate le opzioni di connessione per QuickBooks:
+ `ENTITY_NAME`(String): (obbligatorio) utilizzato per la lettura. Il nome dell'oggetto in QuickBooks.
+ `INSTANCE_URL`(String) - (Obbligatorio) Un URL di QuickBooks istanza valido.
+ `API_VERSION`(String) - (Obbligatorio) Usato per la lettura. QuickBooks Versione dell'API Rest che desideri utilizzare.
+ `REALM_ID`(Stringa): un ID che identifica una singola società QuickBooks online a cui si inviano richieste.
+ `SELECTED_FIELDS`(List<String>): predefinito: vuoto (SELECT \$1). Utilizzato per la lettura. Colonne da selezionare per l'oggetto.
+ `FILTER_PREDICATE`(Stringa): predefinito: vuoto. Utilizzato per la lettura. Dev'essere in formato Spark SQL.
+ `QUERY`(Stringa): predefinito: vuoto. Utilizzato per la lettura. Query Spark SQL completa.
+ `PARTITION_FIELD`(Stringa): utilizzato per la lettura. Campo da utilizzare per partizionare la query.
+ `LOWER_BOUND`(Stringa): utilizzato per la lettura. Un valore limite inferiore inclusivo del campo di partizione scelto.
+ `UPPER_BOUND`(Stringa): utilizzato per la lettura. Un valore limite superiore esclusivo del campo di partizione scelto.
+ `NUM_PARTITIONS`(Numero intero): predefinito: 1. Utilizzato per la lettura. Numero di partizioni da leggere.

# Limitazioni e note per il QuickBooks connettore
<a name="quickbooks-connector-limitations"></a>

Di seguito sono riportate le limitazioni o le note relative al QuickBooks connettore:
+ Nell'API `taxAgency`, il filtraggio “Ordina per” non funziona come previsto.