Pour en savoir plus sur les déclencheurs en général, consulter l'article Comprendre les déclencheurs.
L'événement de déclenchement de base de données survient quand un changement est détecté dans la base de données surveillée. Il peut s'agir de nouveaux enregistrements ou d'enregistrements existants qui ont été mis à jour. Le déclencheur de base de données n'attend pas un événement de changement, tel que l'arrivée de données. En fait, il extrait les données de la base de données à des intervalles de temps définis.
Utilisation typique : Un système existant dans l'entreprise exécute une transaction qui a pour effet de mettre à jour certaines données dans une table de la base de données. NiceLabel Automation va détecter les enregistrements mis à jour ou nouveaux et va imprimer leurs contenus sur les étiquettes.
Général
Cette section permet de configurer les principaux paramètres de ce déclencheur.
-
Nom : Spécifie le nom unique du déclencheur. Les noms permettent de distinguer les différents déclencheurs lors de la configuration dans Automation Builder puis quand vous les exécutez dans Automation Manager.
-
Description : Vous permet de décrire le rôle de ce déclencheur. Aide les utilisateurs avec une explication courte sur ce que fait le déclencheur.
-
Connexion à la base de données : Spécifie la chaîne de connexion à la base de données. Cliquer sur Définir pour ouvrir la boîte de dialogue Base de données. L'utiliser pour configurer la connexion à la base de données, y compris le type de base de données, le nom de la table et les informations d'identification de l'utilisateur. Il faut pour cela se connecter à une base de données prenant en charge les commandes SQL. Pour cette raison, il n'est pas possible d'utiliser le déclencheur de base de données pour détecter les changements de données dans les fichiers texte CSV ou feuilles de calcul Microsoft Excel.
Note
Les détails de configuration dépendent du type de base de données sélectionné. Les options de la boîte de dialogue dépendent des pilotes de base de données utilisés. Pour les détails de configuration, consulter le guide du pilote de la base de données. Pour plus d'informations concernant la connexion à la base de données, lire l'article Accéder aux bases de données.
-
Vérifier la base de données dans des intervalles de temps : Spécifie l'intervalle de temps pendant lequel la base de données est sondée pour des changements d'enregistrements.
-
Options de détection et avancées : Ces options permettent d'affiner le mécanisme de détection d'enregistrements. Quand les enregistrements sont récupérés de la base de données, l'onglet Action affiche automatiquement l'action Pour Chaque Enregistrement, dans laquelle on peut relier les champs des tables aux variables des étiquettes.
Trouver les enregistrements en fonction de la valeur de champ incrémental unique
Lorsque cette option est activée, le déclencheur surveille le champ numérique auto-incrémental dans la table. NiceLabel Automation mémorise la valeur du champ pour le dernier enregistrement. Lors du sondage suivant, seules les valeurs plus grandes que celles mémorisées sont collectées.
Pour configurer cette option, sélectionner le nom de la table où les enregistrements résident
(nom de table)
, le champ auto-incrémental(champ clé)
et la valeur de départ du champ(valeur par défaut du champ clé)
. En interne, la variableKeyField
(champ clé) est utilisée pour se référer à la valeur actuelle du champ clé.Note
La dernière valeur du champ clé est mémorisée en interne, mais n'est pas remise à jour dans la configuration, donc la valeur pour
valeur par défaut du champ clé
ne change pas dans cette boîte de dialogue. La configuration et/ou démarrer/arrêter ce déclencheur peut être chargée en toute sécurité dans Automation Manager tout en conservant la dernière valeur mémorisée. Toutefois, si vous enlevez la configuration de Automation Manager et la remettez, la valeur du dernier champ clé mémorisé sera réinitialisée à lavaleur par défaut du champ clé
.Trouver les enregistrements et les supprimer
Avec cette option sélectionnée, tous les enregistrements sont obtenus à partir de la table puis supprimés. Pour configurer cette option, sélectionner le nom de la table où résident les enregistrements (
nom de table
) et spécifier la clé primaire dans la table (champs clés
). Même si Automation vous permet d'avoir une table sans clé primaire, il est toutefois fortement recommandé de d'en définir une. S'il existe une clé, les enregistrements sont effacés un par un au fur et à mesure du traitement des enregistrements dans les actions.Avertissement
Si la clé primaire n'existe pas, tous les enregistrements collectés dans le déclencheur actuel sont effacés en même temps. C'est bien quand il n'y a pas d'erreurs de traitement des enregistrements. Toutefois, en cas d'erreur de traitement d'un enregistrement, Automation arrête de traiter les autres enregistrements. Comme tous les enregistrements récupérés durant cet intervalle de sondage ont déjà été effacés sans avoir été traités, cela peut causer une perte de données. C'est pourquoi il est conseillé idée d'avoir une clé primaire.
Exemples de Code SQL
Note
Ces requêtes SQL sont en lecture seule et sont fournies uniquement en tant que référence. Pour fournir les requêtes SQL personnalisées, sélectionner la méthode de détection Trouver et gérer les enregistrements avec une requête SQL personnalisée.
Table d'exemple :
ID
ProductID
CodeEAN
ProductDesc
AlreadyPrinted
1
CAS0006
8021228110014
CASONCELLI ALLA CARNE 250G
Y
2
PAS501
8021228310001
BIGOLI 250G
3
PAS502GI
8021228310018
TAGLIATELLE 250G
Exemple de mise à jour d'une requête SQL quand la table contient l'index primaire :
DELETE FROM [Table] WHERE [ID] = :ID
Le champ
ID
dans la table est défini comme index primaire. La construction:ID
dans la clause WHERE contient la valeur du champ ID dans chaque itération. Pour le premier enregistrement, la valeur deID
est 1, pour le deuxième enregistrement 2, etc. L'utilisation de la variable est spécifiée par les deux points devant le nom de champ dans la requête SQL.Exemple de mise à jour d'une requête SQL quand la table n'a pas d'index primaire :
DELETE FROM [Table]
Quand l'index primaire n'est pas défini dans la table, tous les enregistrements sont effacés de la table quand le premier enregistrement a été traité.
Trouver les enregistrements et les mettre à jour
Dans ce cas, tous les enregistrements sont obtenus à partir de la table et mis à jour. Une valeur personnalisée peut être placée dans un champ de la table pour indiquer que 'ces enregistrements ont déjà été imprimés'. Pour configurer cette option, il faut sélectionner le nom de la table où résident les enregistrements
(nom table)
, sélectionner le champ à mettre à jour(champ de mise à jour)
et saisir la valeur qui sera enregistrée dans le champ(valeur mise à jour)
. En interne, la variableUpdateValue
est utilisée dans la requête SQL pour référencer la valeur actuelle du champ (Valeur de mise à jour
).Même si Automation vous permet d'avoir une table sans clé primaire, il est toutefois fortement recommandé d'en définir une. S'il existe une clé, les enregistrements sont mis à jour un par un au fur et à mesure du traitement des enregistrements dans les actions.
Avertissement
Si la clé primaire n'existe pas, tous les enregistrements obtenus dans le déclencheur actuel sont mis à jour en même temps. C'est bien quand il n'y a pas d'erreurs de traitement des enregistrements. Mais si une erreur survient pendant le traitement des enregistrements, l'Automation arrête de traiter les autres enregistrements. Comme tous les enregistrements récupérés durant cet intervalle de sondage ont déjà été effacés sans avoir été traités, cela peut causer une perte de données. C'est pourquoi il est conseillé d'avoir une clé primaire.
Exemples de Code SQL
Note
Ces requêtes SQL sont en lecture seule et sont fournies uniquement en tant que référence. Pour fournir les requêtes SQL personnalisées, sélectionner la méthode de détection Trouver et gérer les enregistrements avec une requête SQL personnalisée.
Table d'exemple :
ID
ProductID
CodeEAN
ProductDesc
AlreadyPrinted
1
CAS0006
8021228110014
CASONCELLI ALLA CARNE 250G
Y
2
PAS501
8021228310001
BIGOLI 250G
3
PAS502GI
8021228310018
TAGLIATELLE 250G
Exemple de mise à jour d'une requête SQL si la table contient l'index primaire :
UPDATE [Table] SET [AlreadyPrinted] = :UpdateValue WHERE [ID] = :ID
Le champ
ID
dans la table est défini comme index primaire. La construction:ID
dans la clause WHERE contient la valeur du champ ID dans chaque itération. Pour le premier enregistrement, la valeur deID
est 1, pour le deuxième enregistrement 2, etc. L'utilisation de la variable est spécifiée par les deux points devant le nom de champ dans la requête SQL. Le champUpdateValue
est défini dans la configuration de déclencheur, dans le champ d'édition Valeur de mise à jour.Exemple de mise à jour d'une requête SQL quand l'index primaire n'est pas défini dans la table :
UPDATE [Table] SET [AlreadyPrinted] = :UpdateValue
Quand l'index primaire n'est pas défini dans la table, tous les enregistrements de la table sont mis à jour quand le premier enregistrement a été traité.
Trouver et gérer les enregistrements avec une requête SQL personnalisée
Dans ce cas, la création de requêtes SQL pour l'extraction des enregistrements et la mise à jour des champs ne tiennent qu'à vous. Pour configurer cette option, il faut donner une requête SQL personnalisée pour trouver les enregistrements
(requête de recherche SQL)
et une requête SQL personnalisée pour mettre à jour l'enregistrement après le traitement(mettre à jour la requête SQL)
. Cliquer sur le bouton Test pour exécuter la requête SQL et visualiser le résultat à l'écran.Utiliser les champs de la table ou les valeurs de variables du déclencheur comme paramètres dans la clause WHERE de la requête SQL. Mettre le caractère deux points (:) devant le nom de champ ou de variable. Ceci signale à NiceLabel Automation d'utiliser la valeur actuelle de ce champ ou variable.
Exemples de Code SQL
Table d'exemple :
ID
ProductID
CodeEAN
ProductDesc
AlreadyPrinted
1
CAS0006
8021228110014
CASONCELLI ALLA CARNE 250G
Y
2
PAS501
8021228310001
BIGOLI 250G
3
PAS502GI
8021228310018
TAGLIATELLE 250G
Exemple de requête de recherche SQL :
Pour obtenir les enregistrements que vous n'avez pas encore imprimé, effectuer les opérations suivantes. Le champ
AlreadyPrinted
(déjà imprimé) ne peut pas contenir la valeurY
et avoir une valeur vide ou NULLE.SELECT * FROM Table WHERE AlreadyPrinted <> 'Y' or AlreadyPrinted is NULL
À partir de la table d'exemple ci-dessus, les enregistrements avec les valeurs d'ID 2 et 3 seront extraits. Le premier enregistrement a déjà été imprimé et sera ignoré.
Exemple de requête de mise à jour SQL :
Pour marquer les enregistrements déjà imprimés par un
Y
dans le champAlreadyPrinted
(déjà imprimé), effectuer les opérations suivantes :UPDATE [Table] SET [AlreadyPrinted] = 'Y' WHERE [ID] = :ID
Mettre deux points (
:
) devant le nom de variable dans la requête SQL pour l'identifier comme une variable. Vous pouvez utiliser n'importe quel champ de la table pour les paramètres de la clause WHERE. Dans l'exemple, nous mettons à jour le champAlreadyPrinted
(déjà imprimé) seulement pour les enregistrements traités actuellement (la valeur du champID
doit être la même que la valeur de l'enregistrement actuel). De façon similaire, on peut référencer les autres champs de l'enregistrement comme:ProductID
ou:CodeEAN
, ou même référencer les variables définies dans le déclencheur de base de données.Pour effacer l'enregistrement actuel de la table, effectuer les opérations suivantes :
DELETE FROM [Table] WHERE [ID] = :ID
Afficher la requête SQL : Élargir cette section pour afficher la requête SQL générée et écrire votre propre requête, si vous avez sélectionné l'option Trouver et gérer les enregistrements avec une requête SQL personnalisée.
Aperçu d'exécution SQL
Pour tester l'exécution des requêtes SQL et visualiser les effets, cliquer sur le bouton Test dans la barre d'outils de la zone d'édition SQL. La section d'Aperçu des données s'ouvre dans le panneau de droite. Cliquer sur le bouton Exécuter pour démarrer le code SQL. Pour utiliser les valeurs de champs de la table (avec le signe (:) devant le nom de champ) dans la requête SQL, il faudra leur fournir les valeurs de test.
Note
Si l'Aperçu des données s'ouvre et que vous avez ajouté quelques variables au script, cliquer deux fois sur le bouton Test. Cette action ferme et rouvre l'Aperçu des données et met à jour la liste des variables dans l'aperçu.
-
Simuler l'exécution : Spécifie que tous les changements effectués dans la base de données sont ignorés. Les transactions dans la base de données sont annulées, donc aucune mise à jour n'est inscrite dans la base de données.
Exécution
Les options dans Exécution spécifient quand les mises à jour de la base de données s'effectuent. Le type de mise à jour dépend des Options de détection du déclencheur.
-
Avant le traitement des actions : Spécifie que les enregistrements sont mis à jour avant que les actions définies pour ce déclencheur soient exécutées.
-
Après le traitement des actions : Spécifie que les enregistrements sont mis à jour après que les actions définies pour ce déclencheur soient exécutées. Généralement, les enregistrements sont mis à jour après leur traitement.
Note
Mais si nécessaire, elles peuvent être mises à jour pendant l'exécution des actions. Pour plus d'informations, voir l'article Exécution des requêtes SQL.
Autre
Les options de la section Commentaires du moteur d'impression spécifient les paramètres de communication qui vous permettent de recevoir un retour d'informations du moteur d'impression.
-
Impression supervisée : Active le mode d'impression synchrone. Utiliser cette option pour renvoyer les informations sur l'état du travail d'impression à une application tierce. Pour plus d'informations, consulter l'article Mode d'impression synchrone.
Les options de la section Traitement de données permettent de préciser s'il faut couper les données pour les ajuster à la variable, ou ignorer les variables manquantes dans l'étiquette. Par défaut, va dire qu'il y a une erreur et interrompre le processus d'impression en cas d'enregistrement de valeurs trop longues dans les variables d'étiquettes, ou de paramétrage de valeurs dans des variables inexistantes.
-
Ignorer le contenu variable excessif : tronque les valeurs des données qui dépassent la longueur de la variable telle que définie dans l'éditeur d'étiquettes pour qu'elles s'adaptent. Cette option s'applique lors du paramétrage de valeurs de variables dans les filtres des fichiers de commande et au paramétrage de valeurs de variables de déclencheurs dans les variables d'étiquette ayant le même nom.
Exemple 21. Exemple
La variable de l'étiquette accepte un maximum de 5 caractères. Avec cette option activée, toute valeur plus longue que 5 caractères est tronquée aux 5 premiers caractères. Si la valeur est 1234567, ignore les chiffres 6 et 7.
-
Ignorer les variables d'étiquettes manquantes : Lors de l'impression de fichiers de commande (tels qu'un fichier JOB), le processus d'impression ignore toutes les variables qui sont :
-
spécifiées dans le fichier de commande (en utilisant la commande SET)
-
non définies sur l'étiquette
La même chose se produit si vous définissez une zone d'assignation dans un filtre pour extraire toutes les paires nom-valeur, mais votre étiquette contient moins de variables.
Lorsque vous paramétrez des valeurs dans des variables d'étiquettes inexistantes, signale une erreur. Si cette option est activée, l'impression continue.
-
Les options dans la section Script spécifient les possibilités de script.
-
Langage de script : Sélectionne le langage de script pour le déclencheur. Toutes les actions Exécuter le script d'un même déclencheur utilisent le même langage.
Les options de la section Enregistrer les données reçues spécifient les commandes disponibles pour les données reçues par le déclencheur.
-
Enregistrer les données reçues par le déclencheur vers le fichier : Activer cette option pour enregistrer les données reçues par le déclencheur. L'option Variable active le nom de fichier variable. Sélectionner une variable qui contient le chemin et le nom du fichier.
-
En cas d'erreur, enregistrer les données reçues par le déclencheur vers le fichier : Activer cette option pour enregistrer les données dans le déclencheur si une erreur survient lors de l'action d'exécution. Activer cette option pour récupérer les données qui ont causé l'erreur et résoudre le problème.
Note
Il faut activer la prise en charge de l'impression supervisée. Autrement, ne peut pas détecter d'erreurs lors de l'exécution. Pour plus d'informations, consulter l'article Mode d'impression synchrone.
Note
enregistre les données reçues dans un fichier temporaire. Le fichier temporaire est supprimé immédiatement après la fin de l'exécution du déclencheur. La variable interne
DataFileName
pointe vers ce fichier. Pour plus d'informations, consulter l'article Variables internes.