

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 Edge NXT di Blackbaud Raiser
<a name="connecting-to-data-blackbaud"></a>

Edge NXT di Blackbaud Raiser è una soluzione software completa basata su cloud per la raccolta fondi e la gestione dei donatori, creata appositamente per le organizzazioni no-profit e per tutta la comunità impegnata nel sociale. Questo connettore si basa sull'API SKY di Blackbaud Raiser Edge NXT e fornisce operazioni che aiutano a gestire le entità presenti all'interno di Edge NXT di Raiser.

**Topics**
+ [AWS Glue supporto per Blackbaud Raiser's Edge NXT](blackbaud-support.md)
+ [Policy contenenti le operazioni API per creare e utilizzare le connessioni](blackbaud-configuring-iam-permissions.md)
+ [Configurazione di Edge NXT di Blackbaud Raiser](blackbaud-configuring.md)
+ [Configurazione delle connessioni Edge NXT di Blackbaud Raiser](blackbaud-configuring-connections.md)
+ [Lettura dalle entità Edge NXT di Blackbaud Raiser](blackbaud-reading-from-entities.md)
+ [Opzioni di connessione Edge NXT di Blackbaud Raiser](blackbaud-connection-options.md)
+ [Limitazioni di Edge NXT di Blackbaud Raiser](blackbaud-connection-limitations.md)

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

AWS Glue supporta Edge NXT di Blackbaud Raiser come segue:

**Supportato come origine?**  
Sì. È possibile utilizzare i job AWS Glue ETL per interrogare i dati da Edge NXT di Blackbaud Raiser.

**Supportato come destinazione?**  
No.

**Versioni supportate dell'API Edge NXT di Blackbaud Raiser**  
Sono supportate le seguenti versioni dell'API Edge NXT di Blackbaud Raiser:
+ v1

# Policy contenenti le operazioni API per creare e utilizzare le connessioni
<a name="blackbaud-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 di Edge NXT di Blackbaud Raiser
<a name="blackbaud-configuring"></a>

Prima di poter utilizzare il trasferimento AWS Glue di dati da Edge NXT di Blackbaud Raiser, devi soddisfare questi requisiti:

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

I requisiti minimi sono i seguenti:
+ Avere un account Edge NXT di Blackbaud Raiser.
+ Hai generato un token di accesso nel tuo account Edge NXT di Blackbaud Raiser con l'ambito appropriato assegnato per accedere a. read/write APIs Per ulteriori informazioni, consultare [Autorizzazione](https://developer.blackbaud.com/skyapi/docs/authorization).

Se soddisfi questi requisiti, sei pronto per connetterti all'account Edge NXT AWS Glue di Blackbaud Raiser.

# Configurazione delle connessioni Edge NXT di Blackbaud Raiser
<a name="blackbaud-configuring-connections"></a>

Edge NXT di Blackbaud Raiser supporta il tipo di concessione AUTHORIZATION\$1CODE per. OAuth2
+ 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 La AWS Glue console reindirizzerà l'utente a Edge NXT di Blackbaud Raiser, dove l'utente deve effettuare il login e consentire AWS Glue le autorizzazioni richieste per accedere alla propria istanza Edge NXT di Blackbaud Raiser.
+ Gli utenti possono scegliere di creare la propria app connessa in Edge NXT di Blackbaud Raiser e fornire il proprio ID client, chiave di sottoscrizione e URL di istanza durante la creazione di connessioni tramite la console. AWS Glue In questo scenario, verranno comunque reindirizzati a Edge NXT di Blackbaud Raiser per accedere e autorizzare l'accesso alle proprie risorse. AWS Glue 
+ 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 documentazione pubblica di Edge NXT di Blackbaud Raiser sulla creazione di un'app connessa per il flusso del codice di autorizzazione, vedi Autorizzazione. OAuth ](https://developer.blackbaud.com/skyapi/docs/authorization)

Per configurare una connessione Edge NXT di Blackbaud Raiser:

1. In AWS Secrets Manager, crea un segreto con i seguenti dettagli:

   1. Per le app connesse gestite dal cliente, il segreto deve contenere la chiave API dell'app connessa con `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` come chiave.

   1. Nota: devi creare un segreto per le tue connessioni in AWS Glue.

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

   1. Quando selezioni un'**origine dati**, scegli Edge NXT di Blackbaud Raiser.

   1. Fornisci il `INSTANCE_URL` dell'account Edge NXT di Blackbaud Raiser a cui desideri connetterti.

   1. Fornisci il `clientId` dell'applicazione client gestita dall'utente.

   1. Fornisci la chiave di sottoscrizione associata al tuo account.

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

**Prerequisito**

Un oggetto Edge NXT di Blackbaud Raiser da cui si desidera leggere. È necessario il nome dell'oggetto.

**Entità supportate come origine**:


| Entità | Può essere filtrato | Supporta limite | Supporta Ordina per | Supporta Seleziona \$1 | Supporta partizionamento | 
| --- | --- | --- | --- | --- | --- | 
| Indirizzo del costituente | Sì  | Sì | No | Sì | Sì | 
| Istruzione del costituente | Sì  | Sì | No | Sì | Sì | 
| Indirizzo e-mail del costituente | Sì  | Sì | No | Sì | Sì | 
| Numero di telefono del costituente | Sì  | Sì | No | Sì | Sì | 
| Nota del costituente | Sì  | Sì | No | Sì | Sì | 
| Relazione del costituente | Sì  | Sì | No | Sì | Sì | 
| Presenza online del costituente | Sì  | Sì | No | Sì | Sì | 
| Opportunità | Sì  | Sì | No | Sì | Sì | 
| Contestazione | Sì  | Sì | No | Sì | Sì | 
| Campagna | Sì  | Sì | No | Sì | Sì | 
| Fondi | Sì  | Sì | No | Sì | Sì | 
| Pacchetto | Sì  | Sì | No | Sì | Sì | 
| Batch Gift | Sì  | Sì | No | Sì | No | 
| Partecipante dell'evento | Sì  | Sì | Sì | Sì | Sì | 
| Entità che si occupa della raccolta fondi del costituente | No | No | No | Sì | No | 
| Gift | Sì  | Sì | Sì | Sì | Sì | 
| Appartenenza | Sì  | Sì | No | Sì | Sì | 
| Azione | Sì  | Sì | No | Sì | No | 
| Costituente | Sì  | Sì | Sì | Sì | Sì | 
| Beni del costituente | Sì  | Sì | No | Sì | Sì | 
| Event | Sì  | Sì | Sì | Sì | Sì | 
| Campo personalizzato Gift | Sì  | Sì | No | Sì | Sì | 

**Esempio**:

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

## Dettagli dell'entità e del campo Edge NXT di Blackbaud Raiser
<a name="blackbaud-reading-entity-field-details"></a>

Per ulteriori informazioni sui dettagli dell'entità e del campo, consultare:
+ [Azione](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Action)
+ [Costituente](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Constituent)
+ [Indirizzo del costituente](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Address)
+ [Iscrizione del costituente](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Membership)
+ [Entità che si occupa della raccolta fondi del costituente](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#FundraiserAssignment)
+ [Istruzione del costituente](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Education)
+ [Indirizzo e-mail del costituente](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#EmailAddress)
+ [Numero di telefono del costituente](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Phone)
+ [Nota del costituente](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Note)
+ [Presenza online del costituente](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#OnlinePresence)
+ [Relazione del costituente](https://developer.blackbaud.com/skyapi/renxt/constituent/entities#Relationship)
+ [Evento](https://developer.blackbaud.com/skyapi/renxt/event/entities#Event)
+ [Partecipante dell'evento](https://developer.blackbaud.com/skyapi/renxt/event/entities#Participant)
+ [Contestazione](https://developer.blackbaud.com/skyapi/renxt/fundraising/entities#Appeal)
+ [Campagna](https://developer.blackbaud.com/skyapi/renxt/fundraising/entities#Campaign)
+ [Fondi](https://developer.blackbaud.com/skyapi/renxt/fundraising/entities#Fund)
+ [Pacchetto](https://developer.blackbaud.com/skyapi/renxt/fundraising/entities#Package)
+ [Gift](https://developer.blackbaud.com/skyapi/renxt/gift/entities#Gift)
+ [Campo personalizzato Gift](https://developer.blackbaud.com/skyapi/renxt/gift/entities#CustomField)
+ [Batch Gift](https://developer.blackbaud.com/skyapi/renxt/gift-batch/entities#GiftBatch)
+ [Opportunità](https://developer.blackbaud.com/skyapi/renxt/opportunity/entities#Opportunity)
+ [Codici del costituente](https://developer.sky.blackbaud.com/api#api=56b76470069a0509c8f1c5b3)

**Nota**  
I tipi di dati Struct e List vengono convertiti in tipo di dati String e il tipo di DateTime dati viene convertito in Timestamp nella risposta dei connettori.

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

**Partizionamento basato sul campo**:

Edge NXT di Blackbaud Raiser non supporta il partizionamento basato sul campo o basato su record.

**Partizionamento basato su record**:

Puoi fornire l'opzione Spark aggiuntiva `NUM_PARTITIONS` se desideri utilizzare la concorrenza in Spark. Con questo parametro, la query originale viene suddivisa in `NUM_PARTITIONS` query secondarie che possono essere eseguite contemporaneamente dalle attività Spark.

Nel partizionamento basato su record, l'API Edge NXT di Blackbaud Raiser esegue query sul numero totale di record presenti e lo divide per il numero `NUM_PARTITIONS` fornito. Il numero di record risultante viene quindi recuperato contemporaneamente da ciascuna sotto-query.
+ `NUM_PARTITIONS`: il numero di partizioni.

Esempio:

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

# Opzioni di connessione Edge NXT di Blackbaud Raiser
<a name="blackbaud-connection-options"></a>

Di seguito sono riportate le opzioni di connessione per Edge NXT di Blackbaud Raiser:
+ `ENTITY_NAME`(String): (obbligatorio) utilizzato per la lettura. Il nome del tuo oggetto in Edge NXT di Blackbaud Raiser.
+ `API_VERSION`(String): (obbligatorio) utilizzato per la lettura. La versione dell'API Rest Edge NXT di Blackbaud Raiser che si desidera utilizzare.
+ `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.
+ `NUM_PARTITIONS`(Integer): predefinito: 1. Utilizzato per la lettura. Numero di partizioni da leggere. Valore di esempio: 10.
+ `SUBSCRIPTION_KEY`(String): (obbligatorio) predefinito, vuoto. Utilizzato per la lettura. Chiave di sottoscrizione associata al proprio account sviluppatore.

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

Di seguito sono riportate le limitazioni o le note relative a Edge NXT di Blackbaud Raiser:
+ Il SaaS supporta solo l'operatore `EQUAL_TO`, che restituisce i risultati creati o modificati nella o dopo la data specificata. Inoltre, il campo “id” è un tipo di dati String. Non è possibile identificare i campi che non ammettono valori null. Pertanto, il partizionamento basato sul campo non è supportato.
+ Il pull incrementale è supportato solo dall'entità `Event` con frequenze giornaliere, mensili e settimanali.
+ L'entità che si occupa della raccolta fondi di un costituente restituisce un massimo di 20 record.
+ Partizionamento basato su record:
  + Non supportato dalle entità `Action`, `Constituent Fundraiser Assignment` o `Gift Batch`.
  + Il partizionamento basato sui record con il predicato del filtro è supportato solo dalle entità `Event` e `Event Participant`. Se il predicato di un filtro viene utilizzato con qualsiasi altra entità supportata dai record, verrà generata un'eccezione.
+ Nell'entità `Gift Custom Field`, il campo 'value' deve essere usato insieme al campo 'category', altrimenti si ottiene una risposta non filtrata. Pertanto, per obbligare l'utente a inserire il campo 'category' durante il filtraggio con il campo 'value', verrà generata un'eccezione in caso di non osservanza del requisito.
+ I campi `date_added` e `last_modified` per tutte le entità applicabili non supportano gli operatori comparativi. Supportano solo l'operatore equal to. Inoltre, non esiste alcun campo che possa essere abbinato a quelli sopra menzionati per fornire una serie di record. Pertanto, questi campi possono essere solo soggetti a query e non possono supportare il trasferimento incrementale.
+ Il campo `added_by` dell'entità `Gift Batch` non sarà considerato filtrabile in quanto potrebbe non emettere i risultati corretti.
+ È presente una latenza di circa 30 minuti per il recupero dei record tramite l'endpoint `/GET Gift List` al momento dell'inserimento dei dati nell'entità `Gift`.
+ Il supporto per il trasferimento incrementale è stato interrotto per l'entità Gift a causa delle limitazioni dell'origine dati. 
+ È presente una latenza di 10 minuti per il campo di stato nell'entità Opportunity.
+ L'entità `Fundraiser Assignment` ha `Constituent` come entità dipendente. Il connettore ne carica al massimo 5.000 tra cui IDs scegliere, per evitare che la dimensione della risposta superi la dimensione massima consentita del carico utile.