v7
S’applique uniquement à Campaign Classic v7

Gestion des données SQL sql-data-management

L'activité Gestion des données SQL permet d'écrire vos requêtes SQL pour créer et remplir les tables de travail.

Conditions préalables requises prerequisites

Avant de configurer l'activité, vérifiez que les prérequis suivants sont remplis :

  • L'activité est disponible uniquement pour les sources de données distantes. Le package FDA (Federated Data Access) doit donc être installé sur votre instance. En savoir plus.

    Pour plus d'informations à ce sujet, en fonction de la version de Campaign, reportez-vous aux sections suivantes :

    Documentation de Campaign v7

    Documentation de Campaign v8

  • Le schéma sortant doit exister dans la base de données et être lié à une base de données FDA.

  • L'opérateur qui exécute le workflow doit disposer du droit nommé USE SQL DATA MANAGEMENT ACTIVITY (useSqlDmActivity) En savoir plus.

Configuration de l'activité Gestion des données SQL configuring-the-sql-data-management-activity

  1. Indiquez le Libellé de l'activité.

  2. Sélectionnez le Compte externe à utiliser, puis le Schéma sortant associé à ce compte externe.

    note caution
    CAUTION
    Le schéma sortant est fixe et ne peut pas être édité.
  3. Ajoutez le script SQL.

    note caution
    CAUTION
    Il incombe à la personne chargée de l'écriture du script SQL de s'assurer que celui-ci est fonctionnel et que ses références (noms de champs, etc.) sont conformes au schéma sortant.

    Si vous souhaitez charger un code SQL existant, sélectionnez l'option Le code SQL est contenu dans une entité stockée dans la base. Les scripts SQL doivent être créés et stockés dans le menu Administration / Paramétrage / Scripts SQL.

    Sinon, saisissez ou effectuez un copier-coller du script SQL dans la zone dédiée.

    L'activité permet d'utiliser les variables suivantes dans le script :

    • activity.tableName  : nom SQL de la table de travail sortante.

    • task.incomingTransitionByName(‘nom’).tableName  : nom SQL de la table de travail associée à la transition entrante à utiliser (la transition est identifiée par son nom).

      note note
      NOTE
      La valeur ('nom') correspond au champ Nom des propriétés de la transition.
  4. Si le script SQL contient déjà des commandes pour créer une table de travail sortante, désélectionnez l'option Créer automatiquement une table de travail. Sinon, une table de travail est automatiquement créée lorsque le workflow est exécuté.

  5. Cliquez sur OK pour valider la configuration de l'activité.

L'activité est maintenant configurée. Elle est prête à être exécutée dans le workflow.

CAUTION
Une fois l'activité exécutée, le nombre d'enregistrements de la transition sortante est fourni à titre indicatif uniquement. Il peut varier en fonction du niveau de complexité du script SQL.
Si l'activité est redémarrée, l'intégralité du script est exécutée depuis le début, quel que soit le statut d'exécution.

Exemples de script SQL sql-script-samples

NOTE
Les exemples de script présentés dans cette section sont destinés à être exécutés sous PostgreSQL.

Le script suivant permet de créer une table de travail et d'y insérer des données :

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;

Le script suivant permet d'effectuer une opération CTAS (CREATE TABLE AS SELECT) et de créer un index de table de travail :

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);

Le script suivant permet de fusionner deux tables de travail :

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