

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

QuickBooks adalah aplikasi akuntansi terkemuka untuk usaha kecil dan menengah. QuickBooks Aplikasi akuntansi berasal dari tahun 1980-an sebagai salah satu produk pertama oleh Intuit, dan karenanya awalnya perangkat lunak desktop. Saat ini, QuickBooks menawarkan beberapa aplikasi akuntansi dan keuangan bisnis sebagai perangkat lunak yang dapat diinstal dan perangkat lunak SaaS berbasis cloud. Sebagai QuickBooks pengguna, Anda dapat terhubung AWS Glue ke QuickBooks akun Anda. Kemudian, Anda dapat menggunakan QuickBooks sebagai sumber data dalam pekerjaan ETL Anda. Jalankan pekerjaan ini untuk mentransfer data antara QuickBooks dan AWS layanan atau aplikasi lain yang didukung.

**Topics**
+ [AWS Glue dukungan untuk QuickBooks](quickbooks-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](quickbooks-configuring-iam-permissions.md)
+ [Mengkonfigurasi QuickBooks](quickbooks-configuring.md)
+ [Mengkonfigurasi koneksi QuickBooks](quickbooks-configuring-connections.md)
+ [Membaca dari QuickBooks entitas](quickbooks-reading-from-entities.md)
+ [QuickBooks opsi koneksi](quickbooks-connection-options.md)
+ [Keterbatasan dan catatan untuk QuickBooks konektor](quickbooks-connector-limitations.md)

# AWS Glue dukungan untuk QuickBooks
<a name="quickbooks-support"></a>

AWS Glue mendukung QuickBooks sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari QuickBooks.

**Didukung sebagai target?**  
Tidak.

**Versi QuickBooks API yang didukung**  
Versi QuickBooks API berikut didukung:
+ v3

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="quickbooks-configuring-iam-permissions"></a>

Kebijakan contoh berikut menjelaskan izin AWS IAM yang diperlukan untuk membuat dan menggunakan koneksi. Jika Anda membuat peran baru, buat kebijakan yang berisi hal-hal berikut:

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

****  

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

------

Jika Anda tidak ingin menggunakan metode di atas, gunakan kebijakan IAM terkelola berikut ini:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole)— Memberikan akses ke sumber daya yang diperlukan berbagai AWS Glue proses untuk dijalankan atas nama Anda. Sumber daya ini termasuk AWS Glue, Amazon S3, IAM, CloudWatch Log, dan Amazon. EC2 Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, AWS Glue proses memiliki izin yang diperlukan. Kebijakan ini biasanya dilampirkan pada peran yang ditentukan saat menentukan crawler, tugas, dan titik akhir pengembangan.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess)— Memberikan akses penuh ke AWS Glue sumber daya saat identitas yang dilampirkan kebijakan menggunakan Konsol AWS Manajemen. Jika Anda mengikuti konvensi penamaan untuk sumber daya yang ditentukan dalam kebijakan ini, maka pengguna memiliki kemampuan konsol penuh. Kebijakan ini biasanya dilampirkan ke pengguna AWS Glue konsol.

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

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari QuickBooks, Anda harus memenuhi persyaratan ini:

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

Berikut ini adalah persyaratan minimum:
+ Anda memiliki QuickBooks akun.
+  QuickBooks Akun Anda diaktifkan untuk akses API.

Untuk informasi selengkapnya, lihat topik berikut dalam QuickBooks dokumentasi:
+ [Buat Akun Intuit](https://quickbooks.intuit.com/learn-support/en-us/help-article/account-management/create-intuit-user-account/L62kSFEOM_US_en_US)
+ [Membuat dan mulai mengembangkan aplikasi Anda](https://developer.intuit.com/app/developer/qbo/docs/get-started/start-developing-your-app)

Jika memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke QuickBooks akun Anda. Untuk koneksi biasa, Anda tidak perlu melakukan hal lain QuickBooks.

# Mengkonfigurasi koneksi QuickBooks
<a name="quickbooks-configuring-connections"></a>

QuickBooks mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2 Jenis hibah menentukan cara AWS Glue berkomunikasi dengan QuickBooks meminta akses ke data Anda.
+ Jenis hibah ini dianggap “berkaki tiga” OAuth karena bergantung pada pengalihan pengguna ke server otorisasi pihak ketiga untuk mengautentikasi pengguna. Ini digunakan saat membuat koneksi melalui AWS Glue konsol.
+ Pengguna masih dapat memilih untuk membuat aplikasi terhubung mereka sendiri QuickBooks dan memberikan ID klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke login dan memberi wewenang QuickBooks AWS Glue untuk mengakses sumber daya mereka.
+ Jenis hibah ini menghasilkan token penyegaran dan token akses. Token akses berumur pendek, dan dapat disegarkan secara otomatis tanpa interaksi pengguna menggunakan token penyegaran.
+ Untuk QuickBooks dokumentasi publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat [Menyiapkan OAuth 2.0](https://developer.intuit.com/app/developer/qbo/docs/develop/authentication-and-authorization/oauth-2.0).

Untuk mengkonfigurasi QuickBooks koneksi:

1. Di AWS Glue Glue Studio, buat koneksi di bawah **Koneksi Data** dengan mengikuti langkah-langkah di bawah ini:

   1. Saat memilih **jenis Koneksi**, pilih QuickBooks.

   1. Berikan URL instance dan ID perusahaan dari QuickBooks instance yang ingin Anda sambungkan.

   1. Pilih peran AWS IAM yang AWS Glue dapat mengasumsikan dan memiliki izin untuk tindakan berikut:

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

****  

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

------

   1. Pilih `secretName` yang ingin Anda gunakan untuk koneksi ini AWS Glue untuk memasukkan token.

   1. Pilih opsi jaringan jika Anda ingin menggunakan jaringan Anda.

1. Berikan peran IAM yang terkait dengan izin AWS Glue pekerjaan Anda untuk membaca`secretName`.

# Membaca dari QuickBooks entitas
<a name="quickbooks-reading-from-entities"></a>

**Prasyarat**

 QuickBooks Objek yang ingin Anda baca.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih\$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Akun | Ya | Ya | Ya | Ya | Ya | 
| Tagihan | Ya | Ya | Ya | Ya | Ya | 
| Info Perusahaan | Tidak | Tidak | Tidak | Ya | Tidak | 
| Pelanggan | Ya | Ya | Ya | Ya | Ya | 
| Karyawan | Ya | Ya | Ya | Ya | Ya | 
| Estimasi | Ya | Ya | Ya | Ya | Ya | 
| Faktur | Ya | Ya | Ya | Ya | Ya | 
| Item | Ya | Ya | Ya | Ya | Ya | 
| Pembayaran | Ya | Ya | Ya | Ya | Ya | 
| Preferensi | Tidak | Tidak | Tidak | Ya | Tidak | 
| Untung dan Rugi | Ya | Tidak | Tidak | Ya | Tidak | 
| Agen Pajak | Ya | Ya | Ya | Ya | Ya | 
| Vendor | Ya | Ya | Ya | Ya | Ya | 

**Contoh:**

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

**QuickBooks detail entitas dan bidang**:

Untuk informasi selengkapnya tentang entitas dan detail bidang, lihat:
+ [Akun](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/account)
+ [Tagihan](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)
+ [Pelanggan](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/customer)
+ [Karyawan](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/employee)
+ [Estimasi](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/estimate)
+ [Faktur](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/invoice)
+ [Barang](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/item)
+ [Pembayaran](https://developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/payment)
+ [Preferensi](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)

## Mempartisi kueri
<a name="quickbooks-reading-partitioning-queries"></a>

**Partisi berbasis lapangan**:

Di QuickBooks, bidang Integer dan DateTime tipe data mendukung partisi berbasis bidang.

Anda dapat memberikan opsi Spark tambahan`PARTITION_FIELD`,, `LOWER_BOUND``UPPER_BOUND`, dan `NUM_PARTITIONS` jika Anda ingin memanfaatkan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.
+ `PARTITION_FIELD`: nama bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`: nilai batas bawah **inklusif** dari bidang partisi yang dipilih.

  Untuk bidang Datetime, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai valid:

  ```
  "2024-05-07T02:03:00.00Z"
  ```
+ `UPPER_BOUND`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

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

Partisi **berbasis rekaman**:

Kueri asli dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan:
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

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

Berikut ini adalah opsi koneksi untuk QuickBooks:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di QuickBooks.
+ `INSTANCE_URL`(String) - (Diperlukan) URL QuickBooks contoh yang valid.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. QuickBooks Rest versi API yang ingin Anda gunakan.
+ `REALM_ID`(String) - ID yang mengidentifikasi perusahaan QuickBooks Online individu tempat Anda mengirim permintaan.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Kolom yang ingin Anda pilih untuk objek.
+ `FILTER_PREDICATE`(String) - Default: kosong. Digunakan untuk Baca. Itu harus dalam format Spark SQL.
+ `QUERY`(String) - Default: kosong. Digunakan untuk Baca. Kueri SQL Spark penuh.
+ `PARTITION_FIELD`(String) - Digunakan untuk Baca. Bidang yang akan digunakan untuk mempartisi kueri.
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca.

# Keterbatasan dan catatan untuk QuickBooks konektor
<a name="quickbooks-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk QuickBooks konektor:
+ Di `taxAgency` API, urutan berdasarkan pemfilteran tidak berfungsi seperti yang diharapkan.