v7
Applies to Campaign Classic v7 only

Gestione dati SQL sql-data-management

Il Gestione dati SQL Activity consente di scrivere script SQL personalizzati per creare e popolare tabelle di lavoro.

Prerequisiti prerequisites

Prima di configurare l’attività, assicurati di soddisfare i seguenti prerequisiti:

  • L’attività è disponibile solo per le origini dati remote. Il FDA Il pacchetto (Federated Data Access) deve pertanto essere installato nell’istanza. Ulteriori informazioni.

    Per ulteriori informazioni, a seconda della versione di Campaign in uso, consulta le sezioni seguenti:

    Documentazione di Campaign v7

    Documentazione di Campaign v8

  • Lo schema in uscita deve esistere nel database ed essere collegato a un database FDA.

  • L’operatore che esegue il flusso di lavoro deve disporre del USE SQL DATA MANAGEMENT ACTIVITY (useSqlDmActivity) denominato right. Ulteriori informazioni.

Configurazione dell'attività di gestione dati SQL configuring-the-sql-data-management-activity

  1. Specificare l’attività Label.

  2. Seleziona la External account da utilizzare, quindi selezionare Outbound schema collegato a questo account esterno.

    note caution
    CAUTION
    Lo schema In uscita è fisso e non può essere modificato.
  3. Aggiungere lo script SQL.

    note caution
    CAUTION
    È responsabilità dell'autore dello script SQL verificare che lo script SQL sia funzionale e che i relativi riferimenti (nomi dei campi, ecc.) sono conformi allo schema In uscita.

    Per caricare un codice SQL esistente, selezionare The SQL script is contained in an entity stored in the database opzione. Gli script SQL devono essere creati e memorizzati nel Administration / Configuration / SQL scripts menu.

    In caso contrario, digitare o copiare e incollare lo script SQL nell'area dedicata.

    L’attività ti consente di utilizzare le seguenti variabili nello script:

    • activity.tableName: nome SQL della tabella di lavoro in uscita.

    • task.incomingTransitionByName("name").tableName: nome SQL della tabella di lavoro trasportata dalla transizione in ingresso da utilizzare (la transizione è identificata dal relativo nome).

      note note
      NOTE
      Il valore ('name') corrisponde al Name dalle proprietà della transizione.
  4. Se lo script SQL contiene già comandi per creare una tabella di lavoro in uscita, deselezionare Automatically create work table opzione. In caso contrario, una tabella di lavoro viene creata automaticamente una volta eseguito il flusso di lavoro.

  5. Clic Ok per confermare la configurazione dell’attività.

L’attività è ora configurata. È pronto per essere eseguito nel flusso di lavoro.

CAUTION
Una volta eseguita l’attività, il conteggio dei record di transizione in uscita è solo indicativo. Può variare in base al livello di complessità dello script SQL.
Se l’attività viene riavviata, l’intero script viene eseguito dal suo inizio, indipendentemente dallo stato di esecuzione.

Esempi di script SQL sql-script-samples

NOTE
Gli esempi di script in questa sezione devono essere eseguiti in PostgreSQL.

Lo script sottostante consente di creare una tabella di lavoro e di inserire dati nella stessa tabella di lavoro:

CREATE UNLOGGED TABLE <%= activity.tableName %> (
  iRecipientId INTEGER DEFAULT 0,
  sFirstName VARCHAR(100),
  sMiddleName VARCHAR(100),
  sLastName VARCHAR(100),
  sEmail VARCHAR(100)
);

INSERT INTO <%= activity.tableName %>
SELECT iRecipientId, sFirstName, sMiddleName, sLastName, sEmail
FROM nmsRecipient
GROUP BY iRecipientId, sFirstName, sMiddleName, sLastName, sEmail;

Lo script seguente consente di eseguire un'operazione CTAS (CREATE TABLE AS SELECT) e di creare un indice della tabella di lavoro:

CREATE TABLE <%= activity.tableName %>
AS SELECT iRecipientId, sEmail, sFirstName, sLastName, sMiddleName
FROM nmsRecipient
WHERE sEmail IS NOT NULL
GROUP BY iRecipientId, sEmail, sFirstName, sLastName, sMiddleName;

CREATE INDEX ON <%= activity.tableName %> (sEmail);

ANALYZE <%= activity.tableName %> (sEmail);

Lo script sottostante consente di unire due tabelle di lavoro:

CREATE TABLE <%= activity.tableName %>
AS SELECT i1.sFirstName, i1.sLastName, i2.sEmail
FROM <%= task.incomingTransitionByName('input1').tableName %> i1
JOIN <%= task.incomingTransitionByName('input2').tableName %> i2 ON (i1.id = i2.id)
recommendation-more-help
601d79c3-e613-4db3-889a-ae959cd9e3e1