

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Verbindung herstellen zu QuickBooks
<a name="connecting-to-data-quickbooks"></a>

QuickBooks ist eine führende Buchhaltungsanwendung für kleine und mittlere Unternehmen. QuickBooks Buchhaltungsanwendungen stammen aus den 1980er Jahren als eines der ersten Produkte von Intuit und waren daher ursprünglich Desktop-Software. Heute QuickBooks bietet es mehrere Buchhaltungs- und Geschäftsfinanzanwendungen sowohl als installierbare Software als auch als Cloud-basierte SaaS-Software an. Als QuickBooks Benutzer können Sie eine Verbindung AWS Glue zu Ihrem QuickBooks Konto herstellen. Anschließend können Sie es QuickBooks als Datenquelle für Ihre ETL-Jobs verwenden. Führen Sie diese Jobs aus, um Daten QuickBooks zwischen AWS Diensten oder anderen unterstützten Anwendungen zu übertragen.

**Topics**
+ [AWS Glue Unterstützung für QuickBooks](quickbooks-support.md)
+ [Richtlinien, welche die API-Vorgänge für die Erstellung und Verwendung von Verbindungen enthalten](quickbooks-configuring-iam-permissions.md)
+ [Konfiguration QuickBooks](quickbooks-configuring.md)
+ [QuickBooks Verbindungen konfigurieren](quickbooks-configuring-connections.md)
+ [Aus QuickBooks Entitäten lesen](quickbooks-reading-from-entities.md)
+ [QuickBooks Verbindungsoptionen](quickbooks-connection-options.md)
+ [Einschränkungen und Hinweise für QuickBooks Connector](quickbooks-connector-limitations.md)

# AWS Glue Unterstützung für QuickBooks
<a name="quickbooks-support"></a>

AWS Glue unterstützt QuickBooks wie folgt:

**Als Quelle unterstützt?**  
Ja. Sie können AWS Glue ETL-Jobs verwenden, um Daten von abzufragen QuickBooks.

**Als Ziel unterstützt?**  
Nein.

**Unterstützte QuickBooks API-Versionen**  
Die folgenden QuickBooks API-Versionen werden unterstützt:
+ v3

# Richtlinien, welche die API-Vorgänge für die Erstellung und Verwendung von Verbindungen enthalten
<a name="quickbooks-configuring-iam-permissions"></a>

Die folgende Beispielrichtlinie beschreibt die erforderlichen AWS IAM-Berechtigungen für das Erstellen und Verwenden von Verbindungen. Wenn Sie eine neue Rolle erstellen, erstellen Sie eine Richtlinie, die Folgendes enthält:

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

****  

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

------

Wenn Sie die oben genannte Methode nicht verwenden möchten, verwenden Sie alternativ die folgenden verwalteten IAM-Richtlinien:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Gewährt Zugriff auf Ressourcen, die verschiedene AWS Glue Prozesse benötigen, um in Ihrem Namen ausgeführt zu werden. Zu diesen Ressourcen gehören AWS Glue Amazon S3, IAM, CloudWatch Logs und Amazon EC2. Wenn Sie die in dieser Richtlinie angegebene Benennungskonvention für Ressourcen einhalten, verfügen AWS Glue Prozesse über die erforderlichen Berechtigungen. Diese Richtlinie wird typischerweise mit Rollen verknüpft, die bei der Definition von Crawlern, Aufträgen und Entwicklungsendpunkten angegeben werden.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Gewährt vollen Zugriff auf AWS Glue Ressourcen, wenn eine Identität, der die Richtlinie zugeordnet ist, die AWS Managementkonsole verwendet. Wenn Sie die Namenskonvention für Ressourcen befolgen, die in dieser Richtlinie angegeben sind, haben Benutzer alle Konsolenfunktionalitäten. Diese Richtlinie wird normalerweise Benutzern der AWS Glue Konsole zugewiesen.

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

Bevor Sie Daten von AWS Glue übertragen können QuickBooks, müssen Sie die folgenden Anforderungen erfüllen:

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

Die folgenden Anforderungen sind Mindestanforderungen:
+ Sie haben ein QuickBooks Konto.
+ Ihr QuickBooks Konto ist für den API-Zugriff aktiviert.

Weitere Informationen finden Sie in der QuickBooks Dokumentation zu den folgenden Themen:
+ [Erstellen eines Intuit-Kontos](https://quickbooks.intuit.com/learn-support/en-us/help-article/account-management/create-intuit-user-account/L62kSFEOM_US_en_US)
+ [Erstellen und Starten der Entwicklung Ihrer App](https://developer.intuit.com/app/developer/qbo/docs/get-started/start-developing-your-app)

Wenn Sie diese Anforderungen erfüllen, können Sie eine Verbindung AWS Glue zu Ihrem QuickBooks Konto herstellen. Für typische Verbindungen müssen Sie nichts weiter tun QuickBooks.

# QuickBooks Verbindungen konfigurieren
<a name="quickbooks-configuring-connections"></a>

QuickBooks unterstützt den Grant-Typ AUTHORIZATION\$1CODE für. OAuth2 Der Grant-Typ bestimmt, wie mit Ihnen AWS Glue kommuniziert wird, um Zugriff QuickBooks auf Ihre Daten anzufordern.
+ Diese Art der Gewährung wird als „dreibeiniges“ angesehen, OAuth da sie darauf beruht, dass Benutzer zur Authentifizierung des Benutzers an einen Autorisierungsserver eines Drittanbieters weitergeleitet werden. Er wird verwendet, wenn Verbindungen über die Konsole hergestellt werden. AWS Glue 
+ Benutzer können sich weiterhin dafür entscheiden, ihre eigene verbundene App in zu erstellen QuickBooks und ihre eigene Client-ID und ihr eigenes Client-Geheimnis anzugeben, wenn sie Verbindungen über die AWS Glue Konsole herstellen. In diesem Szenario werden sie weiterhin weitergeleitet, QuickBooks um sich anzumelden und den Zugriff auf ihre Ressourcen AWS Glue zu autorisieren.
+ Dieser Gewährungstyp führt zu einem Aktualisierungstoken und einem Zugriffstoken. Das Zugriffstoken ist kurzlebig und kann mithilfe des Aktualisierungstokens automatisch ohne Benutzerinteraktion aktualisiert werden.
+ Öffentliche QuickBooks Dokumentation zur Erstellung einer verbundenen App für den Authorization Code OAuth Flow finden Sie unter [Setup OAuth 2.0](https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0).

So konfigurieren Sie eine QuickBooks Verbindung:

1. Erstellen Sie in AWS Glue Glue Studio eine Verbindung unter **Datenverbindungen**, indem Sie die folgenden Schritte ausführen:

   1. Wählen Sie bei der Auswahl eines **Verbindungstyps** QuickBooks.

   1. Geben Sie die Instanz-URL und die Firmen-ID der QuickBooks Instanz an, zu der Sie eine Verbindung herstellen möchten.

   1. Wählen Sie die AWS IAM-Rolle aus, die die folgenden Aktionen übernehmen AWS Glue kann und über Berechtigungen verfügt:

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

****  

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

------

   1. Wählen Sie `secretName` die aus, in die Sie für diese Verbindung die Token einfügen AWS Glue möchten.

   1. Wählen Sie die Netzwerkoptionen aus, wenn Sie Ihr Netzwerk verwenden möchten.

1. Erteilen Sie der mit Ihrem AWS Glue Job verknüpften IAM-Rolle `secretName` Leserechte.

# Aus QuickBooks Entitäten lesen
<a name="quickbooks-reading-from-entities"></a>

**Voraussetzung**

Ein QuickBooks Objekt, aus dem Sie lesen möchten.

**Unterstützte Entitäten für Quelle**:


| Entität | Kann gefiltert werden | Unterstützt Limit | Unterstützt „Sortieren nach“ | Unterstützt „\$1 auswählen“ | Unterstützt Partitionierung | 
| --- | --- | --- | --- | --- | --- | 
| Account | Ja | Ja | Ja | Ja | Ja | 
| Rechnung | Ja | Ja | Ja | Ja | Ja | 
| Unternehmensinformationen | Nein | Nein | Nein | Ja | Nein | 
| Customer | Ja | Ja | Ja | Ja | Ja | 
| Mitarbeiter | Ja | Ja | Ja | Ja | Ja | 
| Schätzen | Ja | Ja | Ja | Ja | Ja | 
| Rechnung | Ja | Ja | Ja | Ja | Ja | 
| Item | Ja | Ja | Ja | Ja | Ja | 
| Zahlung | Ja | Ja | Ja | Ja | Ja | 
| Präferenzen | Nein | Nein | Nein | Ja | Nein | 
| Gewinn und Verlust | Ja | Nein | Nein | Ja | Nein | 
| Steuerbehörde | Ja | Ja | Ja | Ja | Ja | 
| Anbieter | Ja | Ja | Ja | Ja | Ja | 

**Beispiel:**

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

**QuickBooks Entitäts- und Felddetails**:

Weitere Informationen zu den Entitäten und Felddetails finden Sie unter:
+ [Account](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/account)
+ [Rechnung](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)
+ [Kunde](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/customer)
+ [Mitarbeiter](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/employee)
+ [Schätzen](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/estimate)
+ [Rechnung](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/invoice)
+ [Item](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/item)
+ [Zahlung](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/payment)
+ [Präferenzen](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)
+ [Vendor](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/vendor)

## Partitionierung von Abfragen
<a name="quickbooks-reading-partitioning-queries"></a>

**Feldbasierte Partitionierung**:

In unterstützen QuickBooks die Felder Integer und DateTime Datatype feldbasierte Partitionierung.

Sie können die zusätzlichen Spark-Optionen `PARTITION_FIELD`,`LOWER_BOUND`, `UPPER_BOUND` und `NUM_PARTITIONS` angeben, wenn Sie Parallelität in Spark nutzen möchten. Mit diesen Parametern wird die ursprüngliche Abfrage in `NUM_PARTITIONS` Unterabfragen aufgeteilt, die von Spark-Aufgaben gleichzeitig ausgeführt werden können.
+ `PARTITION_FIELD`: der Name des Feldes, das zur Partitionierung der Abfrage verwendet werden soll.
+ `LOWER_BOUND`: ein **inklusiver** Untergrenzwert des ausgewählten Partitionsfelds.

  Für das DateTime-Feld akzeptieren wir das Spark-Zeitstempelformat, das in Spark-SQL-Abfragen verwendet wird.

  Beispiele für gültigen Wert:

  ```
  "2024-05-07T02:03:00.00Z"
  ```
+ `UPPER_BOUND`: ein **exklusiver** Obergrenzwert des ausgewählten Partitionsfelds.
+ `NUM_PARTITIONS`: Die Anzahl an Partitionen.

Beispiel:

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

**Datensatzbasierte Partitionierung**:

Die ursprüngliche Abfrage ist in `NUM_PARTITIONS` Unterabfragen aufgeteilt, die von Spark-Aufgaben gleichzeitig ausgeführt werden können.
+ `NUM_PARTITIONS`: Die Anzahl an Partitionen.

Beispiel:

```
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 Verbindungsoptionen
<a name="quickbooks-connection-options"></a>

Im Folgenden finden Sie Verbindungsoptionen für QuickBooks:
+ `ENTITY_NAME` (Zeichenfolge) – (Erforderlich) Zum Lesen verwendet. Der Name Ihres Objekts in QuickBooks.
+ `INSTANCE_URL`(String) — (Erforderlich) Eine gültige QuickBooks Instanz-URL.
+ `API_VERSION`(String) — (Erforderlich) Wird zum Lesen verwendet. QuickBooks Rest-API-Version, die Sie verwenden möchten.
+ `REALM_ID`(Zeichenfolge) — Eine ID, die ein einzelnes QuickBooks Online-Unternehmen identifiziert, an das Sie Anfragen senden.
+ `SELECTED_FIELDS` (Liste<Zeichenfolge>) – Standard: leer(SELECT \$1). Zum Lesen verwendet. Spalten, die Sie für das Objekt auswählen möchten.
+ `FILTER_PREDICATE`(Zeichenfolge) – Standard: leer. Zum Lesen verwendet. Muss das Spark-SQL-Format aufweisen.
+ `QUERY`(Zeichenfolge) – Standard: leer Zum Lesen verwendet. Vollständige Spark-SQL-Abfrage.
+ `PARTITION_FIELD`(Zeichenfolge) – Zum Lesen verwendet. Feld, das zur Partitionierung der Abfrage verwendet werden soll.
+ `LOWER_BOUND`(Zeichenfolge) – Zum Lesen verwendet. Ein inklusiver Untergrenzwert des ausgewählten Partitionsfelds.
+ `UPPER_BOUND`(Zeichenfolge) – Zum Lesen verwendet. Ein exklusiver Obergrenzwert des ausgewählten Partitionsfelds.
+ `NUM_PARTITIONS`(Ganzzahl) – Standard: 1. Zum Lesen verwendet. Anzahl der zu lesenden Partitionen.

# Einschränkungen und Hinweise für QuickBooks Connector
<a name="quickbooks-connector-limitations"></a>

Im Folgenden finden Sie Einschränkungen oder Hinweise für den QuickBooks Konnektor:
+ In der `taxAgency`-API funktioniert das Sortieren durch Filtern nicht wie erwartet.