

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

# Menghubungkan ke Oracle NetSuite
<a name="connecting-to-data-oracle-netsuite"></a>

Oracle NetSuite adalah solusi manajemen bisnis all-in-one cloud yang membantu organisasi beroperasi lebih efektif dengan mengotomatiskan proses inti dan memberikan visibilitas real-time ke kinerja operasional dan keuangan. Dengan satu rangkaian aplikasi terintegrasi untuk mengelola akuntansi, pemrosesan pesanan, manajemen inventaris, produksi, rantai pasokan, dan operasi gudang, Oracle NetSuite memberi perusahaan visibilitas yang jelas ke dalam data mereka dan kontrol yang lebih ketat atas bisnis mereka.

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

# AWS Glue Dukungan untuk Oracle NetSuite
<a name="oracle-netsuite-support"></a>

AWS Glue mendukung Oracle NetSuite sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk meminta data dari NetSuite Oracle.

**Didukung sebagai target?**  
Tidak.

**Versi Oracle NetSuite API yang didukung**  
Versi NetSuite API Oracle berikut didukung:
+ v1

Untuk dukungan entitas per versi tertentu, lihat Entitas yang didukung untuk Sumber.

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="oracle-netsuite-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 Oracle NetSuite
<a name="oracle-netsuite-configuring"></a>

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

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

Berikut ini adalah persyaratan minimum:
+ Anda memiliki NetSuite akun Oracle. Untuk informasi selengkapnya, lihat [Membuat akun Oracle NetSuite](#oracle-netsuite-configuring-creating-oracle-netsuite-account).
+  NetSuite Akun Oracle Anda diaktifkan untuk akses API.
+ Anda telah membuat integrasi OAuth 2.0 API di akun NetSuite pengembang Oracle Anda. Integrasi ini menyediakan kredensi klien yang AWS Glue digunakan untuk mengakses data Anda dengan aman saat melakukan panggilan yang diautentikasi ke akun Anda. Untuk informasi selengkapnya, lihat [Membuat aplikasi NetSuite klien Oracle dan kredensi OAuth 2.0](#oracle-netsuite-configuring-creating-oracle-netsuite-client-app).

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke NetSuite akun Oracle Anda.

## Membuat akun Oracle NetSuite
<a name="oracle-netsuite-configuring-creating-oracle-netsuite-account"></a>

Arahkan ke [Oracle NetSuite](https://www.netsuite.com/portal/home.shtml), dan pilih **Tur Produk Gratis**. Isi detail yang diperlukan untuk mendapatkan tur produk gratis, di mana Anda dapat menghubungi vendor. Proses pengadaan akun adalah sebagai berikut:
+ Pengadaan NetSuite akun dilakukan melalui vendor, yang menyediakan form/quote yang harus ditinjau secara hukum.
+ Akun yang akan dibeli untuk NetSuite konektor Oracle adalah Layanan **Cloud Standar**.
+ Akun ini dibuat oleh vendor dan kredensi sementara dibagikan oleh mereka. Anda akan menerima surat selamat datang dari NetSuite < billing@notification.netsuite.com > < system@sent-via.netsuite.com > dengan rincian seperti nama pengguna Anda, dan tautan untuk mengatur kata sandi Anda.
+ Gunakan tautan **Atur kata sandi Anda** untuk mengatur kata sandi untuk nama pengguna yang disediakan oleh vendor.

## Membuat aplikasi NetSuite klien Oracle dan kredensi OAuth 2.0
<a name="oracle-netsuite-configuring-creating-oracle-netsuite-client-app"></a>

Untuk mendapatkan Client ID dan Client Secret Anda membuat aplikasi NetSuite klien Oracle:

1. Masuk ke NetSuite akun Anda melalui [login NetSuite pelanggan](https://system.netsuite.com/pages/customerlogin.jsp).

1. Pilih **Pengaturan** > **Perusahaan** > **Aktifkan fitur**.

1. Arahkan ke **SuiteCloud**bagian dan pilih kotak centang **REST WEB SERVICES** di bawah **SuiteTalk (Layanan Web)**.

1. **Pilih kotak centang **OAUTH 2.0** di bawah Kelola Otentikasi.** Klik **Simpan**.

1. Buka **Setup** > **Integration** > **Manage Integrations** dan pilih **New** untuk membuat OAuth2 aplikasi.0.

1. Masukkan nama pilihan Anda dan pertahankan **STATE** sebagai Diaktifkan.

1. **Jika dicentang, hapus centang pada kotak centang **TBA: AUTHORIZATION FLOW dan TOKEN-BASED AUTHENTICATION** **yang ditampilkan di bawah Otentikasi Berbasis Token**.**

1. **Pilih kotak centang **PEMBERIAN KODE OTORISASI** dan **KLIEN PUBLIK** di bawah OAuth 2.0.**

1. Di bawah Auth, catat ID Klien dan Rahasia Klien.

1. Masukkan **URI REDIRECT**. Misalnya, https://us-east-1.console.aws.amazon.com/gluestudio/ oauth

1. Pilih kotak centang **REST WEB SERVICES** di bawah **SCOPE**.

1. **Pilih kotak centang **USER CREDENTIALS di bawah User Credentials**.** Pilih **Simpan**.

1. Perhatikan KEY/CLIENT ID KONSUMEN dan SECRET/CLIENT RAHASIA KONSUMEN di bawah **Kredensial Klien**. Nilai-nilai ini hanya ditampilkan sekali.

1. **Buat peran ADMINISTRATOR jika diperlukan dengan menavigasi ke **Pengguna/Peran > **Kelola** Peran** > Baru.**

1. Saat membuat peran khusus, tambahkan akses penuh di bawah tab **Izin** untuk entitas/fungsi berikut:
   + “Setoran”, “Item”, “Pemenuhan Item”, “Buat Entri Jurnal”, “Pesanan Pembelian”, “Anak Perusahaan”, “Vendor”, “Tagihan”, “Otorisasi Pengembalian Vendor”, “Waktu Lacak”, “Pembayaran Pelanggan”, “Entri Catatan Kustom”, “Jenis Catatan Kustom”, “Layanan Web REST”, “Manajemen Aplikasi Resmi OAuth 2.0”, “Bidang Entitas Kustom”, “Masuk menggunakan 2.0 Token Akses”. OAuth 

Untuk informasi selengkapnya lihat [OAuth 2.0](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/chapter_157769826287.html) di dokumentasi NetSuite Applications Suite.

# Mengkonfigurasi koneksi Oracle NetSuite
<a name="oracle-netsuite-configuring-connections"></a>

Oracle NetSuite mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2 Jenis hibah menentukan cara AWS Glue berkomunikasi dengan Oracle NetSuite untuk 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 yang membuat koneksi mungkin secara default mengandalkan aplikasi terhubung yang AWS Glue dimiliki (aplikasi klien AWS Glue terkelola) di mana mereka tidak perlu memberikan informasi OAuth terkait apa pun kecuali untuk URL instance Oracle NetSuite mereka. AWS Glue Konsol akan mengarahkan pengguna ke Oracle NetSuite di mana pengguna harus masuk dan mengizinkan AWS Glue izin yang diminta untuk mengakses instance Oracle mereka. NetSuite 
+ Pengguna masih dapat memilih untuk membuat aplikasi terhubung mereka sendiri di Oracle NetSuite dan memberikan id klien dan rahasia klien mereka sendiri saat membuat koneksi melalui AWS Glue konsol. Dalam skenario ini, mereka masih akan diarahkan ke Oracle untuk masuk dan memberi wewenang NetSuite 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 NetSuite dokumentasi Oracle publik tentang cara membuat aplikasi yang terhubung untuk OAuth alur Kode Otorisasi, lihat Aplikasi [publik](https://developers.oracle-netsuite.com/docs/api/creating-an-app).

Untuk mengkonfigurasi NetSuite koneksi Oracle:

1. Di AWS Secrets Manager, buat rahasia dengan detail berikut:

   1. Untuk aplikasi terhubung yang dikelola pelanggan, Rahasia harus berisi aplikasi yang terhubung Rahasia Konsumen dengan kunci `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai.

   1. Catatan: Anda harus membuat rahasia untuk koneksi Anda di AWS Glue.

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 Oracle NetSuite.

   1. Menyediakan NetSuite lingkungan Oracle.

   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 entitas Oracle NetSuite
<a name="oracle-netsuite-reading-from-entities"></a>

**Prasyarat**

 NetSuite Objek Oracle yang ingin Anda baca. Anda akan membutuhkan nama objek seperti `deposit` atau`timebill`. Tabel berikut menunjukkan entitas yang didukung.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung Order By | Mendukung Batas | Mendukung SELECT \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Setoran | Ya | Tidak | Ya | Ya | Ya | 
| Keterangan Barang | Ya | Tidak | Ya | Ya | Ya | 
| Barang Inventaris | Ya | Tidak | Ya | Ya | Ya | 
| Pemenuhan Item | Ya | Tidak | Ya | Ya | Ya | 
| Grup Barang | Ya | Tidak | Ya | Ya | Ya | 
| Entri Jurnal | Ya | Tidak | Ya | Ya | Ya | 
| Item Pembelian Non-Inventaris | Ya | Tidak | Ya | Ya | Ya | 
| Barang Penjualan Kembali Non-Inventaris | Ya | Tidak | Ya | Ya | Ya | 
| Barang Penjualan Non-Inventaris | Ya | Tidak | Ya | Ya | Ya | 
| Pesanan Pembelian | Ya | Tidak | Ya | Ya | Ya | 
| Anak Perusahaan | Ya | Tidak | Ya | Ya | Ya | 
| Vendor | Ya | Tidak | Ya | Ya | Ya | 
| Tagihan Vendor | Ya | Tidak | Ya | Ya | Ya | 
| Otorisasi Pengembalian Vendor | Ya | Tidak | Ya | Ya | Ya | 
| Tagihan Waktu | Ya | Tidak | Ya | Ya | Ya | 
| Pembayaran Pelanggan | Ya | Tidak | Ya | Ya | Ya | 
| Permintaan Pemenuhan | Ya | Tidak | Ya | Ya | Ya | 
| Item | Ya | Ya | Ya | Ya | Ya | 
| Jalur Transaksi | Ya | Ya | Ya | Ya | Ya | 
| Jalur Akuntansi Transaksi | Ya | Ya | Ya | Ya | Ya | 
| Jenis Rekaman Kustom (Dinamis) | Ya | Ya | Ya | Ya | Ya | 

**Contoh:**

```
netsuiteerp_read = glueContext.create_dynamic_frame.from_options(
    connection_type="netsuiteerp",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "deposit",
        "API_VERSION": "v1"
    }
)
```

** NetSuite Entitas Oracle dan detail bidang**:

Oracle NetSuite secara dinamis memuat bidang yang tersedia di bawah entitas yang dipilih. Tergantung pada tipe data bidang, ini mendukung operator filter berikut.


| Tipe data bidang | Operator filter yang didukung | 
| --- | --- | 
| String | SEPERTI, =,\$1 = | 
| Date | ANTARA, =, <, <=, >, >= | 
| DateTime | ANTARA, <, <=, >, >= | 
| Numerik |  =, \$1=, <, <=, >, >= | 
| Boolean |  =, \$1= | 

**Format input yang diharapkan untuk nilai Boolean di Ekspresi Filter**:


| Entitas | Format nilai “benar” Boolean | Format nilai “palsu” Boolean | Contoh | 
| --- | --- | --- | --- | 
| Barang, Jalur Transaksi, Jalur Akuntansi Transaksi, dan entitas Jenis Rekaman Kustom | T atau t | F atau f | isinactive = “T” atau isinactive = “t” | 
| Semua entitas lainnya | true | SALAH | isinaktif = benar | 

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

**Partisi berbasis lapangan**

 NetSuite Konektor Oracle memiliki metadata dinamis sehingga bidang yang didukung untuk partisi berbasis bidang dipilih secara dinamis. Partisi berbasis bidang didukung pada bidang yang memiliki tipe data Integer, BigInteger, Tanggal atau. DateTime

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 timestamp, kami menerima format stempel waktu Spark yang digunakan dalam kueri Spark SQL.

  Contoh nilai yang valid:

  ```
  "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`: nilai batas atas **eksklusif** dari bidang partisi yang dipilih.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

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

**Partisi berbasis rekaman**

Anda dapat memberikan opsi Spark tambahan `NUM_PARTITIONS` jika Anda ingin menggunakan konkurensi di Spark. Dengan parameter ini, kueri asli akan dibagi menjadi `NUM_PARTITIONS` sejumlah sub-kueri yang dapat dijalankan oleh tugas Spark secara bersamaan.

Dalam partisi berbasis rekaman, jumlah total catatan yang ada ditanyakan dari Oracle NetSuite API, dan dibagi dengan jumlah yang disediakan, `NUM_PARTITIONS` jumlah catatan yang dihasilkan kemudian diambil secara bersamaan oleh setiap sub-kueri.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
netsuiteerp_read = glueContext.create_dynamic_frame.from_options(
    connection_type="netsuiteerp",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "deposit",
        "API_VERSION": "v1",
        "NUM_PARTITIONS": "3"
    }
```

# Opsi NetSuite koneksi Oracle
<a name="oracle-netsuite-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Oracle NetSuite:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama NetSuite entitas Oracle. Contoh: setoran.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi Oracle NetSuite Rest API yang ingin Anda gunakan. Nilainya akan menjadi v1, karena Oracle NetSuite saat ini hanya mendukung versi v1.
+ `SELECTED_FIELDS`(Daftar<String>) - Default: kosong (SELECT \$1). Digunakan untuk Baca. Daftar kolom yang dipisahkan koma yang ingin Anda pilih untuk entitas yang dipilih.
+ `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 (partisi berbasis bidang).
+ `LOWER_BOUND`(String) - Digunakan untuk Baca. Nilai batas bawah inklusif dari bidang partisi yang dipilih, digunakan dalam partisi berbasis lapangan.
+ `UPPER_BOUND`(String) - Digunakan untuk Baca. Nilai batas atas eksklusif dari bidang partisi yang dipilih, digunakan dalam partisi berbasis lapangan. 
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. Digunakan dalam partisi berbasis bidang dan catatan.
+ `INSTANCEE_URL`(String) - Sebuah NetSuite contoh URL yang valid dengan format https://\$1account-id\$1.suitetalk.api.netsuite.com.

# Keterbatasan dan catatan untuk konektor Oracle NetSuite
<a name="oracle-netsuite-connector-limitations"></a>

Berikut ini adalah batasan atau catatan untuk NetSuite konektor Oracle:
+ Nilai parameter access\$1token dan refresh\$1token dalam format JSON Web Token (JWT). Token akses berlaku selama 60 menit sedangkan refresh\$1token berlaku selama tujuh hari.
+ Selama pembuatan ID klien dan rahasia klien, jika Anda memilih “KLIEN PUBLIK” bersama dengan “PEMBERIAN KODE OTORISASI”, maka token penyegaran hanya berlaku selama tiga jam dan hanya untuk penggunaan satu kali.
+ Anda dapat mengambil paling banyak 1.00.000 catatan menggunakan konektor. Untuk informasi selengkapnya, lihat [Mengeksekusi Kueri SuiteQL Melalui Layanan Web](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_157909186990.html) REST.
+ Partisi dibuat sedemikian rupa sehingga setiap partisi akan mengambil catatan dalam kelipatan 1000, kecuali mungkin yang terakhir yang akan mengambil catatan yang tersisa.
+ Untuk objek Item, Jalur Transaksi dan Jalur Akuntansi Transaksi, konektor tidak akan mendukung beberapa operator karena alasan berikut:
  + Menerapkan`EQUAL_TO`, `NOT_EQUAL_TO` filter operator ke bidang jenis Tanggal memberikan hasil yang tidak dapat diandalkan.
  + Menerapkan operator `LESS_THAN_OR_EQUAL_TO` filter ke bidang tipe Tanggal memberikan hasil yang tidak dapat diandalkan dan berperilaku mirip dengan operator. `LESS_THAN`
  + Menerapkan operator `GREATER_THAN` filter ke bidang tipe Date= memberikan hasil yang tidak dapat diandalkan dan berperilaku mirip dengan operator. `GREATER_THAN_OR_EQUAL_TO`
+ Untuk objek Item, Transaction Line, Transaction Accounting Line, dan Custom Record Type, nilai boolean datang dalam format T/F bukan standar true/false. The connector maps the t/f values to true/false untuk memastikan konsistensi dalam data.