Show Menu
SUJETS×

Gestion des données SQL

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

Prérequis

Avant de configurer l'activité, vérifiez que les prérequis suivants sont remplis :
  • L'activité est disponible pour les sources de données distantes uniquement. Le package FDA (Federated Data Access) doit donc être installé sur votre instance (voir cette section ).
  • Le schéma sortant doit exister dans la base de données et être associé à une base de données FDA (pour plus d'informations sur les schémas de données, reportez-vous à cette section ).
  • L'opérateur exécutant le workflow doit disposer du droit nommé USE SQL DATA MANAGEMENT ACTIVITY (useSqlDmActivity) . Pour plus d'informations sur les droits nommés, reportez-vous à cette section .

Configuration de l'activité Gestion des données SQL

  1. Indiquez le Libellé de l'activité.
  2. Sélectionnez le Compte externe à utiliser, puis le Schéma sortant associé à ce compte externe.
    Le schéma sortant est fixe et ne peut pas être édité.
  3. Ajoutez le script SQL.
    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).
      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.
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

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)