

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

# Menghubungkan ke Blackbaud Raiser's Edge NXT
<a name="connecting-to-data-blackbaud"></a>

Blackbaud Raiser's Edge NXT adalah solusi perangkat lunak penggalangan dana dan manajemen donor berbasis cloud yang komprehensif yang dibangun khusus untuk organisasi nirlaba dan seluruh komunitas sosial yang baik. Konektor ini dibangun di atas SKY API Blackbaud Raiser Edge NXT dan menyediakan operasi untuk membantu mengelola entitas yang ditemukan dalam Raisers Edge NXT.

**Topics**
+ [AWS Glue dukungan untuk Blackbaud Raiser's Edge NXT](blackbaud-support.md)
+ [Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi](blackbaud-configuring-iam-permissions.md)
+ [Mengkonfigurasi Blackbaud Raiser's Edge NXT](blackbaud-configuring.md)
+ [Mengkonfigurasi koneksi Edge NXT Blackbaud Raiser](blackbaud-configuring-connections.md)
+ [Membaca dari entitas Edge NXT Blackbaud Raiser](blackbaud-reading-from-entities.md)
+ [Opsi koneksi Edge NXT Blackbaud Raiser](blackbaud-connection-options.md)
+ [Batasan NXT Edge Blackbaud Raiser](blackbaud-connection-limitations.md)

# AWS Glue dukungan untuk Blackbaud Raiser's Edge NXT
<a name="blackbaud-support"></a>

AWS Glue mendukung Blackbaud Raiser's Edge NXT sebagai berikut:

**Didukung sebagai sumber?**  
Ya. Anda dapat menggunakan pekerjaan AWS Glue ETL untuk menanyakan data dari Blackbaud Raiser's Edge NXT.

**Didukung sebagai target?**  
Tidak.

**Versi API Edge NXT Blackbaud Raiser yang didukung**  
Versi API Edge NXT Blackbaud Raiser berikut didukung:
+ v1

# Kebijakan yang berisi operasi API untuk membuat dan menggunakan koneksi
<a name="blackbaud-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 Blackbaud Raiser's Edge NXT
<a name="blackbaud-configuring"></a>

Sebelum Anda dapat menggunakan AWS Glue untuk mentransfer data dari Blackbaud Raiser's Edge NXT, Anda harus memenuhi persyaratan ini:

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

Berikut ini adalah persyaratan minimum:
+ Anda memiliki akun Edge NXT Blackbaud Raiser.
+ Anda telah membuat Token Akses di akun NXT Edge Blackbaud Raiser Anda dengan read/write cakupan yang sesuai yang ditetapkan untuk mengakses. APIs Untuk informasi selengkapnya, lihat [Otorisasi](https://developer.blackbaud.com/skyapi/docs/authorization).

Jika Anda memenuhi persyaratan ini, Anda siap untuk terhubung AWS Glue ke akun Edge NXT Blackbaud Raiser Anda.

# Mengkonfigurasi koneksi Edge NXT Blackbaud Raiser
<a name="blackbaud-configuring-connections"></a>

Blackbaud Raiser's Edge NXT mendukung jenis hibah AUTHORIZATION\$1CODE untuk. OAuth2
+ 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. AWS Glue Konsol akan mengarahkan pengguna ke Blackbaud Raiser's Edge NXT di mana pengguna harus masuk dan mengizinkan AWS Glue izin yang diminta untuk mengakses instance Edge NXT Blackbaud Raiser mereka.
+ Pengguna dapat memilih untuk membuat aplikasi mereka sendiri yang terhubung di Blackbaud Raiser's Edge NXT dan memberikan ID Klien, Kunci Langganan, dan URL Instance mereka sendiri saat membuat koneksi melalui konsol. AWS Glue Dalam skenario ini, mereka masih akan diarahkan ke Blackbaud Raiser's Edge NXT untuk masuk dan memberi wewenang untuk mengakses sumber daya mereka. AWS Glue 
+ 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 dokumentasi Edge NXT Blackbaud Raiser publik tentang membuat aplikasi yang terhubung untuk alur Kode Otorisasi, lihat Otorisasi. OAuth ](https://developer.blackbaud.com/skyapi/docs/authorization)

Untuk mengonfigurasi koneksi Edge NXT Blackbaud Raiser:

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

   1. Untuk aplikasi tersambung yang dikelola pelanggan, Secret harus berisi kunci API aplikasi yang terhubung dengan `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` sebagai kunci.

   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 **Sumber Data**, pilih Blackbaud Raiser's Edge NXT.

   1. Berikan akun Blackbaud Raiser's Edge NXT yang ingin Anda sambungkan. `INSTANCE_URL`

   1. Menyediakan aplikasi klien yang dikelola pengguna`clientId`.

   1. Berikan kunci berlangganan yang terkait dengan akun Anda.

   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 Edge NXT Blackbaud Raiser
<a name="blackbaud-reading-from-entities"></a>

**Prasyarat**

Objek Blackbaud Raiser's Edge NXT yang ingin Anda baca. Anda akan membutuhkan nama objek.

**Entitas yang didukung untuk sumber**:


| Entitas | Dapat disaring | Mendukung batas | Mendukung Pesanan oleh | Mendukung Pilih \$1 | Mendukung partisi | 
| --- | --- | --- | --- | --- | --- | 
| Alamat Konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Pendidikan Konstituante | Ya | Ya | Tidak | Ya | Ya | 
| Alamat Email Konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Telepon Konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Catatan Konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Hubungan Konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Kehadiran online konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Peluang | Ya | Ya | Tidak | Ya | Ya | 
| Banding | Ya | Ya | Tidak | Ya | Ya | 
| Kampanye | Ya | Ya | Tidak | Ya | Ya | 
| Dana | Ya | Ya | Tidak | Ya | Ya | 
| Paket | Ya | Ya | Tidak | Ya | Ya | 
| Hadiah Batch | Ya | Ya | Tidak | Ya | Tidak | 
| Peserta Acara | Ya | Ya | Ya | Ya | Ya | 
| Penugasan Penggalangan Dana Konstituen | Tidak | Tidak | Tidak | Ya | Tidak | 
| Hadiah | Ya | Ya | Ya | Ya | Ya | 
| Keanggotaan | Ya | Ya | Tidak | Ya | Ya | 
| Tindakan | Ya | Ya | Tidak | Ya | Tidak | 
| Konstituen | Ya | Ya | Ya | Ya | Ya | 
| Barang Konstituen | Ya | Ya | Tidak | Ya | Ya | 
| Peristiwa | Ya | Ya | Ya | Ya | Ya | 
| Bidang kustom hadiah | Ya | Ya | Tidak | Ya | Ya | 

**Contoh:**

```
blackbaud_read = glueContext.create_dynamic_frame.from_options(
    connection_type="BLACKBAUD",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v1",
        "SUBSCRIPTION_KEY": <Subscription key associated with one's developer account>
    }
```

## Entitas dan detail bidang Edge NXT Blackbaud Raiser
<a name="blackbaud-reading-entity-field-details"></a>

Untuk informasi selengkapnya tentang entitas dan detail bidang, lihat:
+ [Tindakan](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Action)
+ [Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Constituent)
+ [Alamat Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Address)
+ [Keanggotaan Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Membership)
+ [Penugasan Penggalangan Dana Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#FundraiserAssignment)
+ [Pendidikan Konstituante](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Education)
+ [Alamat Email Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#EmailAddress)
+ [Telepon Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Phone)
+ [Catatan Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Note)
+ [Kehadiran Online Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#OnlinePresence)
+ [Hubungan Konstituen](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Relationship)
+ [Peristiwa](https://developer.blackbaud.com/skyapi/renxt/event/entities#Event)
+ [Peserta Acara](https://developer.blackbaud.com/skyapi/renxt/event/entities#Participant)
+ [Banding](https://developer.blackbaud.com/skyapi/renxt/fundraising/entities#Appeal)
+ [Kampanye](https://developer.blackbaud.com/skyapi/renxt/fundraising/entities#Campaign)
+ [Dana](https://developer.blackbaud.com/skyapi/renxt/fundraising/entities#Fund)
+ [Package](https://developer.blackbaud.com/skyapi/renxt/fundraising/entities#Package)
+ [Hadiah](https://developer.blackbaud.com/skyapi/renxt/gift/entities#Gift)
+ [Bidang Kustom Hadiah](https://developer.blackbaud.com/skyapi/renxt/gift/entities#CustomField)
+ [Hadiah Batch](https://developer.blackbaud.com/skyapi/renxt/gift-batch/entities#GiftBatch)
+ [Kesempatan](https://developer.blackbaud.com/skyapi/renxt/opportunity/entities#Opportunity)
+ [Kode Konstituen](https://developer.sky.blackbaud.com/api#api=56b76470069a0509c8f1c5b3)

**catatan**  
Tipe data Struct dan List dikonversi ke tipe data String, dan tipe DateTime data dikonversi ke Timestamp sebagai respons konektor.

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

**Partisi berbasis lapangan**:

Blackbaud Raiser's Edge NXT tidak mendukung partisi berbasis bidang atau berbasis rekaman.

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 Blackbaud Raiser's Edge NXT API, dan dibagi dengan nomor yang disediakan. `NUM_PARTITIONS` Jumlah catatan yang dihasilkan kemudian diambil secara bersamaan oleh setiap sub-kueri.
+ `NUM_PARTITIONS`: jumlah partisi.

Contoh:

```
blackbaud_read = glueContext.create_dynamic_frame.from_options(
    connection_type="BLACKBAUD",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "entityName",
        "API_VERSION": "v1",
        "NUM_PARTITIONS": "2",
        "SUBSCRIPTION_KEY": <Subscription key associated with one's developer account>
    }
```

# Opsi koneksi Edge NXT Blackbaud Raiser
<a name="blackbaud-connection-options"></a>

Berikut ini adalah opsi koneksi untuk Blackbaud Raiser's Edge NXT:
+ `ENTITY_NAME`(String) - (Diperlukan) Digunakan untuk Baca. Nama objek Anda di Blackbaud Raiser's Edge NXT.
+ `API_VERSION`(String) - (Diperlukan) Digunakan untuk Baca. Versi API Blackbaud Raiser Edge NXT Rest yang ingin Anda gunakan.
+ `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.
+ `NUM_PARTITIONS`(Integer) - Default: 1. Digunakan untuk Baca. Jumlah partisi untuk dibaca. Nilai contoh: 10.
+ `SUBSCRIPTION_KEY`(String) - (Diperlukan) Default: kosong. Digunakan untuk Baca. Kunci berlangganan yang terkait dengan akun pengembang seseorang.

# Batasan NXT Edge Blackbaud Raiser
<a name="blackbaud-connection-limitations"></a>

Berikut ini adalah batasan atau catatan untuk Blackbaud Raiser's Edge NXT:
+ SaaS hanya mendukung `EQUAL_TO` operator, yang mengembalikan hasil yang dibuat atau dimodifikasi pada atau setelah tanggal yang ditentukan. Selain itu, bidang “id” adalah tipe data String. Juga tidak ada identifikasi bidang yang tidak dapat dibatalkan. Oleh karena itu, partisi berbasis lapangan tidak didukung.
+ Incremental pull hanya didukung oleh `Event` entitas dengan frekuensi harian, bulanan dan mingguan.
+ Entitas Penugasan Penggalangan Dana Konstituen mengembalikan maksimal 20 catatan.
+ Partisi berbasis rekaman:
  + Tidak didukung oleh`Action`, `Constituent Fundraiser Assignment` atau `Gift Batch` entitas.
  + Partisi berbasis rekaman dengan predikat filter hanya didukung oleh entitas dan. `Event` `Event Participant` Jika predikat filter digunakan dengan entitas lain yang didukung berbasis rekaman, pengecualian akan dilemparkan.
+ Dalam `Gift Custom Field` entitas, bidang 'nilai' harus digunakan bersama dengan bidang 'kategori', yang jika tidak mengarah ke respons tanpa filter. Jadi, untuk memaksa pengguna memasukkan bidang 'kategori' sambil memfilter dengan bidang 'nilai', pengecualian akan dilemparkan jika persyaratan yang disebutkan di atas belum diikuti.
+ `last_modified`Bidang `date_added` dan untuk semua entitas yang berlaku tidak mendukung operator komparatif apa pun. Mereka hanya mendukung yang setara dengan operator. Juga, tidak ada bidang yang dapat dipasangkan dengan bidang yang disebutkan di atas untuk menyediakan berbagai catatan. Oleh karena itu, bidang ini hanya dapat dikueri dan tidak dapat mendukung transfer tambahan.
+ `added_by`Bidang dalam `Gift Batch` entitas tidak akan dianggap dapat disaring karena mungkin tidak memancarkan hasil yang benar.
+ Ada latensi sekitar 30 menit untuk catatan yang akan diambil melalui `/GET Gift List` titik akhir setelah penyisipan data dalam entitas. `Gift`
+ Support untuk transfer tambahan telah dibatalkan untuk entitas Hadiah karena keterbatasan dari ujung sumber data. 
+ Ada latensi 10 menit untuk bidang status di entitas Peluang.
+ `Fundraiser Assignment`Entitas memiliki `Constituent` entitas dependen. Konektor memuat paling banyak 5.000 IDs untuk dipilih, untuk menghindari ukuran respons melebihi ukuran muatan maksimum yang diizinkan.