Um mehr über Trigger im Allgemeinen zu erfahren, siehe Abschnitt Informationen zu Triggern.
Ein Datenbank-Triggerereignis tritt ein, wenn eine Änderung an der überwachten Datenbanktabelle erkannt wird. Das kann der Fall sein, wenn neue Datensätze vorhanden sind oder vorhandene Datensätze aktualisiert wurden. Der Datenbank-Trigger wartet nicht auf Ereignisänderungen wie z. B. Datenlieferungen. Stattdessen ruft er Daten aus der Datenbank in vorgegebenen Zeitintervallen ab.
Typische Nutzung: Ein vorhandenes Geschäftssystem führt eine Transaktion durch, wodurch wiederum Daten in einer Datenbanktabelle aktualisiert werden. NiceLabel Automation erkennt die aktualisierten und neuen Datensätze und druckt ihren Inhalt auf Etiketten.
Allgemein
In diesem Bereich können Sie die wichtigsten Dateitrigger-Einstellungen vornehmen.
-
Name: Gibt den eindeutigen Namen des Triggers an. Die Namen helfen Ihnen dabei, zwischen verschiedenen Triggern zu unterscheiden, wenn Sie sie in Automation Builder konfigurieren und später in Automation Manager ausführen.
-
Beschreibung: Ermöglicht es Ihnen, die Rolle dieses Triggers zu beschreiben. Geben Sie für die Benutzer eine kurze Erklärung zur Funktionsweise des Triggers ein.
-
Datenbankverbindung: Gibt die Zeichenfolge für die Verbindung zur Datenbank an. Klicken Sie auf Definieren, um das Datenbank-Dialogfeld zu öffnen. Nutzen Sie es, um die Datenbankverbindung zu konfigurieren, einschließlich Datenbanktyp, Tabellenname und Benutzer-Zugangsdaten. Sie müssen eine Verbindung zu einer Datenbank herstellen, die Zugriff über SQL-Befehle unterstützt. Daher können Sie den Datenbank-Trigger nicht für die automatische Erkennung von Daten in CSV-Textdateien und Microsoft Excel Tabellenkalkulationen verwenden.
Anmerkung
Die Konfigurationsdetails hängen von der Art der ausgewählten Datenbank ab. Die Optionen im Dialogfeld hängen vom genutzten Datenbanktreiber ab. Konfigurationsdetails finden Sie im Benutzerhandbuch für Ihren Datenbanktreiber. Weitere Informationen zu Datenbankverbindungen finden Sie in Abschnitt Zugriff auf Datenbanken.
-
Datenbank in folgenden Zeitintervallen prüfen: Gibt die Zeitintervalle an, in denen die Datenbank auf Änderungen in Datensätzen abgefragt wird.
-
Erkennungsoptionen und Erweitert: Diese Optionen ermöglichen Ihnen eine Feinabstimmung des Erkennungsmechanismus für Datensätze. Nach Abruf der Datensätze aus der Datenbank wird automatisch die Aktionen-Registerkarte für die Aktion „Für jeden Datensatz“ angezeigt, mit der Sie Tabellenfelder zu Etikettenvariablen zuordnen können.
Alle auf dem einzigartigen Feldwert basierenden Datensätze übernehmen
Wenn diese Option aktiviert ist, überwacht der Trigger das angegebene autoinkrementelle numerische Feld in der Tabelle. NiceLabel Automation speichert den Feldwert für den letzten verarbeiteten Datensatz. Beim nächsten Abfrageintervall werden nur Datensätze abgerufen, deren Werte höher sind als der gespeicherte Wert.
Um diese Option zu konfigurieren, müssen Sie den Namen der Tabelle, in der sich die Datensätze befinden
(Tabellenname)
, das autoinkrementelle Feld(Schlüsselfeld)
sowie den Startwert für das Feld(Standardwert des Schlüsselfeldes)
auswählen. Die VariableKeyField
wird intern verwendet, um auf den letzten bekannten Wert des Schlüsselfelds zu verweisen.Anmerkung
Der letzte Wert des Schlüsselfelds wird intern gespeichert, aber in der Konfiguration nicht aktualisiert; daher ändert sich der Wert für
Standardwert des Schlüsselfeldes
in diesem Dialogfeld nicht. Sie können die Konfiguration sicher neu laden und/oder diesen Trigger im Automation Manager anhalten/starten, ohne dass der letzte bekannte Wert verloren geht. Wenn Sie jedoch die Konfiguration aus Automation Manager entfernen und wieder hinzufügen, wird der letzte bekannte Wert des Schlüsselfelds auf den Wert zurückgesetzt, den Sie unterStandardwert des Schlüsselfeldes
angegeben haben.Datensätze übernehmen und löschen
Wenn diese Option aktiviert ist, werden alle Datensätze aus der Tabelle abgerufen und gelöscht. Um diese Option zu konfigurieren, wählen Sie den Namen der Tabelle aus, in der sich die Datensätze befinden (
Tabellenname
), und geben den primären Schlüssel in der Tabelle (Schlüsselfelder
) an. Obwohl eine Tabelle in Automation nicht zwangsläufig über einen primären Schlüssel verfügen muss, ist es sehr empfehlenswert, einen solchen zu definieren. Ist ein primärer Schlüssel vorhanden, werden die Datensätze nacheinander gelöscht, sobald der jeweilige Datensatz in den Aktionen verarbeitet wird.Warnung
Ist kein primärer Schlüssel vorhanden, werden alle vom aktuellen Trigger empfangenen Datensätze auf einmal gelöscht. Dies ist in Ordnung, solange bei der Datensatzverarbeitung kein Fehler auftritt. Wenn jedoch bei einem Datensatz ein Verarbeitungsfehler auftritt, unterbricht Automation die Verarbeitung weiterer Datensätze. Da alle in diesem Abrufintervall erfassten Datensätze bereits gelöscht wurden, ohne zuvor verarbeitet worden zu sein, könnten Sie Daten verlieren. Daher empfiehlt sich die Definition eines primären Schlüssels in einer Tabelle.
Beispiele für SQL-Code
Anmerkung
Die folgenden SQL-Anweisungen können nur gelesen werden und werden ausschließlich zu Referenzzwecken angegeben. Um benutzerdefinierte SQL-Anweisungen bereitzustellen, wählen Sie die Erkennungsmethode Datensätze mit SQL Anweisung übernehmen und bearbeiten.
Beispiel für eine Tabelle:
ID
ProductID
CodeEAN
ProductDesc
AlreadyPrinted
1
CAS0006
8021228110014
CASONCELLI ALLA CARNE 250G
Y
2
PAS501
8021228310001
BIGOLI 250G
3
PAS502GI
8021228310018
TAGLIATELLE 250G
Beispiel einer SQL-Aktualisierungsanweisung, falls die Tabelle einen primären Index enthält:
DELETE FROM [Table] WHERE [ID] = :ID
Das
ID
Feld in der Tabelle ist als primärer Index definiert. Das Konstrukt:ID
im WHERE-Abschnitt enthält den Wert des ID-Felds in jeder Iteration. Für den ersten Datensatz ist der Wert vonID
gleich 1, für den zweiten Datensatz gleich 2 usw. Durch Verwendung des Doppelpunkts vor dem Feldnamen in der SQL-Anweisung wird vorgegeben, wie die Variable genutzt wird.Beispiel einer SQL-Aktualisierungsanweisung, falls für die Tabelle kein primärer Index definiert ist:
DELETE FROM [Table]
Wenn kein primärer Index für die Tabelle definiert ist, werden alle Datensätze daraus gelöscht, nachdem der erste Datensatz verarbeitet wurde.
Datensätze übernehmen und aktualisieren
Wenn diese Option aktiviert ist, werden alle Datensätze aus der Tabelle abgerufen und aktualisiert. Sie können einen individuellen Wert in ein Feld der Tabelle schreiben, um anzuzeigen, dass der jeweilige Datensatz bereits gedruckt wurde. Um diese Option zu konfigurieren, müssen Sie den Namen der Tabelle, in der sich die Datensätze befinden
(Tabellenname)
und das zu aktualisierende Feld(Aktualisierungsfeld)
auswählen und den im Feld zu speichernden Wert(Aktualisierungswert)
eingeben. Intern wird die VariableUpdateValue
in der SQL-Anweisung verwendet, um sich auf den aktuellen Wert des Felds zu beziehen (Aktualisierungswert
).Obwohl Automation eine Tabelle in nicht zwangsläufig über einen primären Schlüssel verfügen muss, ist es sehr empfehlenswert, einen solchen zu definieren. Ist ein primärer Schlüssel vorhanden, werden die Datensätze nacheinander aktualisiert, sobald der jeweilige Datensatz in den Aktionen verarbeitet wird.
Warnung
Ist kein primärer Schlüssel vorhanden, werden alle im Trigger empfangenen Datensätze auf einmal aktualisiert. Dies ist unproblematisch, solange keine Fehler bei der Verarbeitung der Datensätze auftreten. Tritt aber bei der Verarbeitung eines Datensatzes ein Fehler auf, beendet die Automation die Verarbeitung weiterer Datensätze. Da alle in diesem Abrufintervall erfassten Datensätze bereits aktualisiert wurden, ohne zuvor verarbeitet worden zu sein, könnten Sie Daten verlieren. Daher empfiehlt sich die Definition eines primären Schlüssels in einer Tabelle.
Beispiele für SQL-Code
Anmerkung
Die folgenden SQL-Anweisungen können nur gelesen werden und werden ausschließlich zu Referenzzwecken angegeben. Um benutzerdefinierte SQL-Anweisungen bereitzustellen, wählen Sie die Erkennungsmethode Datensätze mit SQL Anweisung übernehmen und bearbeiten.
Beispiel für eine Tabelle:
ID
ProductID
CodeEAN
ProductDesc
AlreadyPrinted
1
CAS0006
8021228110014
CASONCELLI ALLA CARNE 250G
Y
2
PAS501
8021228310001
BIGOLI 250G
3
PAS502GI
8021228310018
TAGLIATELLE 250G
Beispiel einer SQL-Aktualisierungsanweisung, wenn die Tabelle einen primären Index enthält:
UPDATE [Table] SET [AlreadyPrinted] = :UpdateValue WHERE [ID] = :ID
Das
ID
Feld in der Tabelle ist als primärer Index definiert. Das Konstrukt:ID
im WHERE-Abschnitt enthält den Wert des ID-Felds in jeder Iteration. Für den ersten Datensatz ist der Wert vonID
gleich 1, für den zweiten Datensatz gleich 2 usw. Durch Verwendung eines Doppelpunkts vor dem Feldnamen in der SQL-Anweisung wird die Nutzung einer Variablen vorgegeben. Das FeldUpdateValue
wird in der Trigger-Konfiguration anhand des Bearbeitungsfelds Aktualisierungswert definiert.Beispiel einer SQL-Aktualisierungsanweisung, wenn für die Tabelle kein primärer Index definiert ist:
UPDATE [Table] SET [AlreadyPrinted] = :UpdateValue
Wenn kein primärer Index für die Tabelle definiert ist, werden alle Datensätze daraus aktualisiert, nachdem der erste Datensatz verarbeitet wurde.
Datensätze mit SQL Anweisung übernehmen und bearbeiten
In diesem Fall ist die Erstellung von SQL-Anweisungen zur Datensatzextraktion und Feldaktualisierung vollständig Ihnen überlassen. Um diese Option zu konfigurieren, müssen Sie eine individuelle SQL-Anweisung für den Abruf von Datensätzen
(SQL-Suchanweisung)
und eine individuelle SQL-Anweisung für die Aktualisierung der Datensätze nach der Verarbeitung(SQL-Aktualisierungsanweisung)
angeben. Klicken Sie auf die Schaltfläche Test, um Ihre SQL-Anweisungen testweise auszuführen und das Ergebnis auf dem Bildschirm anzuzeigen.Sie können Tabellenfeldwerte oder Werte von Triggervariablen als Parameter im WHERE-Abschnitt der SQL-Anweisung verwenden. Dazu würden Sie dem Feld- oder Variablennamen einen Doppelpunkt voranstellen (:). Dadurch verwendet NiceLabel Automation den aktuellen Wert dieses Felds bzw. dieser Variablen.
Beispiele für SQL-Code
Beispiel für eine Tabelle:
ID
ProductID
CodeEAN
ProductDesc
AlreadyPrinted
1
CAS0006
8021228110014
CASONCELLI ALLA CARNE 250G
Y
2
PAS501
8021228310001
BIGOLI 250G
3
PAS502GI
8021228310018
TAGLIATELLE 250G
Beispiel für eine SQL-Suchanweisung:
Um die Datensätze abzurufen, die nicht bereits gedruckt wurden, führen Sie die folgenden Schritte aus. Das Feld
AlreadyPrinted
darf weder den WertY
noch einen leeren oder NULL-Wert enthalten.SELECT * FROM Table WHERE AlreadyPrinted <> 'Y' or AlreadyPrinted is NULL
Aus der oben genannten Beispieltabelle werden zwei Datensätze mit den ID-Werten 2 und 3 extrahiert. Der erste Datensatz wurde bereits gedruckt und wird ignoriert.
Beispiel einer SQL-Aktualisierungsanweisung:
So markieren Sie bereits gedruckte Datensätze mit dem Wert
Y
im FeldAlreadyPrinted
:UPDATE [Table] SET [AlreadyPrinted] = 'Y' WHERE [ID] = :ID
Sie müssen einen Doppelpunkt (
:
) vor den Variablennamen in Ihrer SQL-Anweisung setzen, damit die Variable als solche erkannt werden kann. Sie können für Parameter im WHERE-Abschnitt jedes beliebige Feld aus der Tabelle verwenden. In diesem Beispiel aktualisieren wir das FeldAlreadyPrinted
nur für den momentan verarbeiteten Datensatz (der Wert des FeldesID
muss mit dem Wert aus dem aktuellen Datensatz übereinstimmen). Auf ähnliche Weise können Sie auf andere Felder im Datensatz als:ProductID
oder:CodeEAN
verweisen, oder auch auf Variablen verweisen, die in diesem Datenbank-Trigger definiert sind.So löschen Sie den aktuellen Datensatz aus der Tabelle:
DELETE FROM [Table] WHERE [ID] = :ID
SQL Anweisung anzeigen: Erweitern Sie diesen Abschnitt, um die erzeugte SQL-Anweisung anzuzeigen und Ihre eigene Anweisung zu schreiben, wenn Sie die Option Datensätze mit SQL Anweisung übernehmen und bearbeiten ausgewählt haben.
Vorschau der SQL-Ausführung anzeigen
Um die Ausführung der SQL-Anweisungen zu testen und ihre Auswirkungen anzuzeigen, klicken Sie auf „Test“ in der Werkzeugleiste des SQL-Bearbeitungsbereichs. Der Abschnitt „Datenvorschau“ wird im rechten Bereich geöffnet. Klicken Sie auf die Schaltfläche Ausführen, um den SQL-Code auszuführen. Wenn Sie Werte aus einem Tabellenfeld in der SQL-Anweisung nutzen (mit einem Doppelpunkt (:) vor dem Feldnamen), müssen Sie Testwerte für sie angeben.
Anmerkung
Wenn Sie die Datenvorschau geöffnet und gerade einige Variablen zum Skript hinzugefügt haben, klicken Sie zweimal auf die Test-Schaltfläche. Dadurch wird der Datenvorschau-Bereich geschlossen und geöffnet und die Liste von Variablen in der Vorschau aktualisiert.
-
Ausführung simulieren: Gibt an, dass alle Änderungen an der Datenbank ignoriert werden. Die Datenbank-Transaktion wird rückgängig gemacht, sodass keine Aktualisierungen in die Datenbank geschrieben werden.
Ausführen
Die Optionen unter „Ausführen“ geben an, wann die Datenbankaktualisierung stattfinden soll. Die Art der Aktualisierung hängt von den Erkennungsoptionen für den Trigger ab.
-
Vor Ausführung der Aktionen: Gibt an, dass Datensätze vor Beginn der Ausführung der für diesen Trigger definierten Aktionen aktualisiert werden.
-
Nach Ausführung der Aktionen: Gibt an, dass Datensätze nach Ausführung der für diesen Trigger definierten Aktionen aktualisiert werden. Normalerweise wollen Sie die Datensätze nach erfolgreicher Verarbeitung aktualisieren.
Anmerkung
Falls nötig, können Sie die Datensätze aktualisieren, während die Aktionen noch ausgeführt werden. Weitere Informationen finden Sie im Abschnitt SQL-Anweisung ausführen.
Sonstiges
Die Optionen im Bereich Feedback von der Print Engine legen die Kommunikationsparameter fest, durch die Sie Feedback von der Druck-Engine erhalten können.
-
Überwachtes Drucken: Aktiviert den synchronen Druckmodus. Verwenden Sie ihn, wenn Sie den Status des Druckauftrags an die Drittanwendung zurücksenden wollen. Weitere Informationen finden Sie im Abschnitt Synchroner Druckmodus.
Die Optionen im Abschnitt Datenverarbeitung geben an, ob Sie die Daten kürzen möchten, damit sie in eine Variable passen, oder ob die fehlenden Etikettenvariablen ignoriert werden sollen. Standardmäßig meldet Fehler und unterbricht den Druckprozess, wenn Sie versuchen, zu lange Werte in Etikettenvariablen zu speichern oder Werte für nicht vorhandene Etikettenvariablen anzugeben.
-
Übermäßig lange Variableninhalte ignorieren: kürzt Datenwerte, die die Länge der Variable gemäß Definition im Etiketten-Designer überschreiten, um sie auf passende Länge zu bringen. Diese Option wird wirksam, wenn Sie Variablenwerte in Filtern oder aus Befehlsdateien festlegen und wenn Sie Werte von Triggervariablen den gleichnamigen Etikettenvariablen zuordnen.
Beispiel 21. Beispiel
Die Etikettenvariable akzeptiert maximal 5 Zeichen. Wenn diese Option aktiviert ist, wird jeder Wert über 5 Zeichen auf die ersten 5 Zeichen gekürzt. Wenn der Wert 1234567 lautet, ignoriert die 6. Und 7. Stelle.
-
Fehlende Etikettenvariablen ignorieren: Beim Drucken mit Befehlsdateien (z. B. JOB-Dateien), werden alle Variablen ignoriert, die:
-
in der Befehlsdatei angegeben sind (anhand des SET Befehls)
-
nicht auf dem Etikett definiert sind
Etwas Ähnliches geschieht, wenn Sie einen Zuweisungsbereich in einem Filter definieren, um alle Name-Wert-Paare zu extrahieren, Ihr Etikett jedoch weniger Variablen enthält.
Wenn Sie Werte von nicht vorhandenen Etikettenvariablen einstellen, gibt einen Fehler aus. Wenn diese Option aktiviert ist, wird der Druck fortgesetzt.
-
Die Optionen im Abschnitt Scripting geben die Scripting-Möglichkeiten an.
-
Scripting-Sprache: Wählt die Scripting-Sprache für den Trigger aus. Alle Script ausführen-Aktionen, die Sie innerhalb eines einzelnen Triggers nutzen, verwenden die ausgewählte Scripting-Sprache.
Die Optionen im Abschnitt Empfangene Daten speichern legen die Befehle fest, die für vom Trigger empfangene Daten zur Verfügung stehen.
-
Vom Trigger empfangene Daten speichern in Datei: Aktivieren Sie diese Option, um vom Trigger empfangene Daten zu speichern. Die Option Variable aktiviert einen variablen Dateinamen. Wählen Sie eine Variable aus, die den Pfad und den Dateinamen enthält.
-
Bei Fehler vom Trigger empfangene Daten speichern in Datei: Aktivieren sie diese Option, um die vom Trigger empfangenen Daten nur dann zu speichern, wenn ein Fehler bei der Ausführung der Aktion auftritt. Sie könnten diese Option beispielsweise aktivieren, um die Daten zu behalten, die das Problem hervorgerufen haben, um die Lösungsfindung zu erleichtern.
Anmerkung
Stellen Sie sicher, dass Sie die Unterstützung für Überwachtes Drucken aktivieren. Ist sie nicht aktiviert, kann Fehler bei der Ausführung nicht erkennen. Weitere Informationen finden Sie im Abschnitt Synchroner Druckmodus.
Anmerkung
speichert die empfangenen Daten in einer temporären Datei. Diese temporäre Datei wird sofort nach Abschluss der Trigger-Ausführung gelöscht. Die interne Variable
DataFileName
verweist auf diesen Dateinamen. Weitere Informationen finden Sie in den Abschnitten Interne Variablen.