Règles de création des déclencheurs pour les tables personnalisées

Fichier SQL de création d'un déclencheur

Dans le Utility server Docker container, ajouter des instructions SQL pour créer des déclencheurs dans le fichier utilities_root/schema/9.0.0.0/db2/wcs.stage.trigger.sql.

Insérez les instructions SQL pour créer des déclencheurs pour les tables personnalisées dans ce fichier.

Fichier SQL de suppression d'un déclencheur

Dans le Utility server Docker container, ajouter des instructions SQL pour supprimer des déclencheurs dans le fichier utilities_root/schema/9.0.0.0/db2/wcs.droptrigger.sql.

Placez les instructions SQL de suppression de déclencheurs pour des tables personnalisées dans ces fichiers.

Convention d'attribution de nom de déclencheur

La convention d'attribution de nom des déclencheurs permet de s'assurer que les nouveaux déclencheurs des tables personnalisées sont dotés de noms uniques.

DB2 HCL Commerce nomme un déclencheur en incrémentant le dernier numéro du dernier déclencheur dans le fichier db2/wcs.stage.trigger.sql. Vous ne devez pas utiliser cette convention d'attribution de nom pour les nouveaux déclencheurs car cela risquerait de provoquer un conflit entre vos noms de déclencheurs personnalisés et les nouveaux déclencheurs éventuellement introduits par HCL Commerce dans des groupes de correctifs ou des éditions ultérieures.

Oracle Vérifiez que le nom de vos nouveaux déclencheurs est conforme au modèle contenu dans le fichier oracle/wcs.stage.trigger.sql :

  • Insérer un déclencheur : ISTG_ CustomTableName
  • Mettre à jour le déclencheur : USTG_ CustomTableName
  • Supprimer le déclencheur : DSTG_ CustomTableName

Conditions requises pour la création de déclencheurs

Vous devez créer trois déclencheurs pour la table de données personnalisée :

  • Un déclencheur d'insertion (INSERT) permettant de capturer les opérations d'insertion sur la table personnalisée.
  • Un déclencheur de mise à jour (UPDATE) permettant de capturer les opérations de mise à jour sur la table personnalisée.
  • Un déclencheur de suppression (DELETE) permettant de capturer les opérations de suppression sur la table personnalisée.
Remarque : Les déclencheurs de transfert journalisent les enregistrements de base de données dans la table STAGLOG. L'enregistrement spécifique qui est modifié est indiqué par la valeur de la clé primaire et de l'index à entrées uniques. Ces valeurs sont les seules informations journalisées dans la table STAGLOG. Pour que l'utilitaire de transfert puisse fonctionner, les valeurs de la clé primaire et de l'index à entrées uniques ne doivent pas être mises à jour via une opération UPDATE. Les deux autres opérations, INSERT et DELETE, ne modifient pas la valeur de clé primaire ou d'index à entrées uniques.
Vos déclencheurs doivent insérer des enregistrements dans la table de base de données STAGLOG avec les informations suivantes dans les colonnes de cette table :
  • DB2Pour la valeur de la colonne STAGLOG.STGRFNBR, il est recommandé d'utiliser la fonction NEXTVAL FOR STAGESEQ afin de la générer. Si vous utilisez un autre compteur, des collisions de clés peuvent se produire dans la table STAGLOG.
  • OracleUtilisez la fonction STAGESEQ.NEXTVAL pour générer la valeur de colonne STAGLOG.STGRFNBR. Lorsque vous insérez une valeur pour la colonne STAGLOG.STGSTMP, utilisez la fonction SYSDATE pour générer la valeur d'horodatage. Si vous utilisez d'autres fonctions pour générer cette valeur, la valeur générée peut ne pas correspondre au format de données approprié attendu par l'utilitaire de transfert. Si le format de données de la valeur générée n'est pas approprié, des données peuvent être exclues de l'utilitaire de transfert.
  • Pour les colonnes STAGLOG qui ne sont pas définies directement dans cette table, utilisez une valeur NULL.

Insertions de valeur de clé primaire

Lorsque vous insérez des valeurs de clé primaire dans les tables de transfert, insérez toujours les valeurs dans les colonnes à plus faible valeur numérique qui correspondent au type de données. Les données générées par les déclencheurs de transfert sont stockées dans la table de base de données STAGLOG. Ces données sont lues par l'utilitaire stagingprop qui requiert que des valeurs de clé primaire soient placées dans les colonnes à plus faible valeur numérique.

Conventions de dénomination de table de base de données

Lorsque vous insérez des noms de colonne et de table de base de données dans les tables de transfert, utilisez des minuscules pour les noms de colonne et de table de base de données.