Per ulteriori informazioni sui trigger in generale, vedere la sezione I trigger.
L’evento Trigger database si verifica quando viene rilevato un cambiamento nella tabella del database monitorato. Potrebbero esserci nuovi record oppure i record esistenti sono stati aggiornati. Il trigger del database non aspetta alcun cambiamento dell'evento, come la consegna dei dati. Al contrario, estrae dati dal database negli intervalli di tempo definiti.
Uso tipico: Uso tipico: un sistema di business esistente esegue una transazione, la quale di fatto aggiorna i dati in una tabella di database. NiceLabel Automation rileva i record aggiornati e i nuovi record e stampa il loro contenuto sulle etichette.
Generale
Questa sezione consente di configurare le impostazioni dei trigger di file più importanti.
-
Nome: specifica il nome univoco del trigger. I nomi consentono di distinguere tra i vari trigger quando essi vengono configurati in Automation Builder , ed eseguiti successivamente in Automation Manager.
-
Descrizione: consente di descrivere il ruolo di questo trigger. Aiutare gli utenti con una breve spiegazione sulle funzioni del trigger.
-
Connessione al database: specifica la stringa di connessione al database. Fare clic su Definisci per aprire la finestra di dialogo Database. Usarla per configurare la connessione al database, compreso il tipo di database, il nome della tabella e le credenziali dell'utente. È necessario connettersi a un database che supporti l’accesso con i comandi SQL. Per questo motivo, non è possibile usare il trigger del database per rilevare automaticamente le modifiche ai dati nei file di testo CSV o nei fogli di calcolo Microsoft Excel.
Nota
I dettagli della configurazione dipendono dal tipo di database selezionato. Le opzioni disponibili nella finestra di dialogo dipendono dal driver di database usato. Per informazioni sulla configurazione, consultare la guida dell'utente del driver del database. Per ulteriori informazioni sulla connettività del database, vedere la sezione Accesso ai database.
-
Verifica database negli intervalli di tempo: specifica l’intervallo di tempo nel quale il database viene consultato per verificare se sono state apportate modifiche ai record.
-
Opzioni di rilevamento e Avanzate. Queste opzioni consentono di definire il meccanismo di rilevamento dei record. Dopo che i record vengono acquisiti dal database, la scheda Azioni visualizza automaticamente l'azione Per ogni record Azione, la quale consente di mappare i campi delle tabelle sulle variabili di etichetta.
Ottieni i record basati su un valore di campo incrementale univoco
Con questa opzione attivata, il trigger monitora il campo numerico a incremento automatico specificato nella tabella. NiceLabel Automation ricorda il valore del campo per l'ultimo record elaborato. Nell'intervallo di polling successivo, vengono acquisiti solo record con valori superiori al valore memorizzato.
Per configurare questa opzione, selezionare il nome di tabella in cui risiedono i record
(nome tabella)
, il campo a incremento automatico(campo chiave)
e il valore iniziale per il campo(valore predefinito campo chiave)
. Internamente, la variabileKeyField
viene usata per fare riferimento all'ultimo valore memorizzato del campo chiave.Nota
L'ultimo valore del campo chiave viene memorizzato internamente, ma non viene riaggiornato nella configurazione, quindi il valore relativo a
valore predefinito campo chiave
non cambia in questa finestra di dialogo. È possibile ricaricare in sicurezza la configurazione e/o avviare/interrompere questo trigger in Automation Manager e mantenere comunque l'ultimo valore memorizzato. Tuttavia, se si rimuove la configurazione da Automation Manager e la si riaggiunge, il valore dell'ultimo campo chiave ricordato viene reimpostato su quello definito nelvalore predefinito campo chiave
.Ottieni i record ed eliminali
Con questa opzione selezionata, tutti i record vengono acquisiti dalla tabella ed eliminati. Per configurare questa opzione, selezionare il nome della tabella in cui si trovano i record (
nome tabella
) e specificare la chiave primaria nella tabella (campi chiave
). Anche se Automation consente di avere una tabella senza chiave primaria, si consiglia vivamente di definire la chiave primaria. Se la chiave primaria esiste, i record vengono eliminati uno ad uno, se un record particolare viene elaborato nelle azioni.Avvertimento
Se la chiave primaria non esiste, tutti i record ottenuti dal trigger corrente vengono eliminati immediatamente. Non si presenta alcun problema, se durante l’elaborazione dei record non si verifica nessun errore. Tuttavia, con alcuni record, si verifica un errore di elaborazione Automation interrompe di elaborare altri record. Poiché tutti i record catturati in questo intervallo di polling sono già stati eliminati senza essere elaborati, è possibile perdere dati. Pertanto, è consigliabile avere una chiave primaria in una tabella.
Esempi di codice SQL
Nota
Queste istruzioni SQL sono di sola lettura e vengono fornite solo come riferimento. Per fornire istruzioni SQL personalizzate, selezionare il metodo di rilevamento Ottieni e gestisci i record con SQL personalizzato.
Tabella di esempi:
ID
ProductID
CodeEAN
ProductDesc
AlreadyPrinted
1
CAS0006
8021228110014
CASONCELLI ALLA CARNE 250G
Y
2
PAS501
8021228310001
BIGOLI 250G
3
PAS502GI
8021228310018
TAGLIATELLE 250G
Esempio di Aggiorna statement SQL nel caso in cui la tabella contenga un indice primario:
DELETE FROM [Table] WHERE [ID] = :ID
Il campo
ID
nella tabella è definito indice primario. La struttura:ID
nella clausola WHERE contiene il valore dell'ID di campo in ciascuna iterazione. Per il primo record, il valore diID
è 1, per il secondo record 2, ecc. Specificando i due punti davanti al nome di campo nell'istruzione SQL si specifica come viene usata la variabile.Esempio di Aggiorna statement SQL nel caso in cui la tabella non contenga un indice primario definito:
DELETE FROM [Table]
Se nella tabella non è definito alcun indice primario, dopo che viene elaborato il primo record, tutti i record vengono eliminati dalla tabella.
Ottieni i record e aggiornali
In questo caso, tutti i record vengono acquisiti dalla tabella e aggiornati. È possibile scrivere un valore personalizzato nel campo della tabella, a indicare che “questi record sono già stati stampati”. Per configurare questa opzione è necessario selezionare il nome della tabella in cui si trovano i record
(nome tabella)
, selezionare il campo da aggiornare(campo aggiornamento)
e immettere il valore che sarà memorizzato nel campo(valore aggiornamento)
. Internamente, la variabileUpdateValue
viene usata nell'istruzione SQL per fare riferimento al valore corrente del campo (valore aggiornamento
).Anche se Automation consente di avere una tabella senza chiave primaria, si consiglia vivamente di definire una chiave primaria. Se la chiave primaria esiste, i record vengono aggiornati uno ad uno, quando un record particolare viene elaborato nelle azioni.
Avvertimento
Se la chiave primaria non esiste, tutti i record ottenuti nel trigger corrente vengono aggiornati immediatamente. Questa soluzione è ottimale se durante l'elaborazione dei record non vengono rilevati errori. Tuttavia, se verifica un errore di elaborazione di un record, Automation interrompe l'elaborazione di altri record. Poiché tutti i record catturati in questo intervallo di polling sono già stati aggiornati senza essere elaborati nelle azioni, è possibile perdere dati. Pertanto, avere una chiave primaria in una tabella può risultare utile.
Esempi di codice SQL
Nota
Queste istruzioni SQL sono di sola lettura e vengono fornite solo come riferimento. Per fornire istruzioni SQL personalizzate, selezionare il metodo di rilevamento Ottieni e gestisci i record con SQL personalizzato.
Tabella di esempi:
ID
ProductID
CodeEAN
ProductDesc
AlreadyPrinted
1
CAS0006
8021228110014
CASONCELLI ALLA CARNE 250G
Y
2
PAS501
8021228310001
BIGOLI 250G
3
PAS502GI
8021228310018
TAGLIATELLE 250G
Esempio di Aggiorna statement SQL, se la tabella contiene un indice primario:
UPDATE [Table] SET [AlreadyPrinted] = :UpdateValue WHERE [ID] = :ID
Il campo
ID
nella tabella è definito indice primario. L'ID
della struttura nella clausola WHERE contiene il valore dell'ID di campo in ciascuna iterazione. Per il primo record, il valore diID
è 1, per il secondo record 2, ecc. Aggiungendo due punti davanti al nome di campo nell'istruzione SQL viene specificato l’uso di una variabile. Il campoUpdateValue
è definito nella configurazione del trigger usando il campo di modifica Valore di aggiornamento.Esempio di Aggiorna statement SQL, quando la tabella non contiene un indice primario definito:
UPDATE [Table] SET [AlreadyPrinted] = :UpdateValue
Se nella tabella non è definito alcun indice primario, dopo che viene elaborato il primo record, tutti i record della tabella vengono aggiornati.
Ottieni e gestisci i record con SQL personalizzato
In questo caso, la creazione di istruzioni SQL per l'estrazione dei record e gli aggiornamenti dei campi dipende completamente dall’utente. Per configurare questa opzione è necessario specificare un'istruzione SQL personalizzata per acquisire i record
(istruzione SQL ricerca)
e l'istruzione SQL personalizzata per aggiornare i record dopo l'elaborazione(istruzione SQL aggiornamento)
. Fare clic sul pulsante Prova per provare l'esecuzione delle istruzioni SQL e vedere il risultato sullo schermo.È possibile usare i valori di campo della tabella o i valori delle variabili di trigger come parametri nella clausola WHERE dell'istruzione SQL. Il nome del campo o della variabile deve essere preceduto da due punti (:). Questo indica a NiceLabel Automation di usare il valore corrente di tale campo o variabile.
Esempi di codice SQL
Tabella di esempi:
ID
ProductID
CodeEAN
ProductDesc
AlreadyPrinted
1
CAS0006
8021228110014
CASONCELLI ALLA CARNE 250G
Y
2
PAS501
8021228310001
BIGOLI 250G
3
PAS502GI
8021228310018
TAGLIATELLE 250G
Esempio di istruzione SQL ricerca:
per ottenere i record che non sono stati ancora stampati, procedere come segue. Il campo
AlreadyPrinted
non deve contenere il valoreY
e non deve avere un valore vuoto o NULL.SELECT * FROM Table WHERE AlreadyPrinted <> 'Y' or AlreadyPrinted is NULL
Nella tabella di esempio precedente, saranno estratti due record con valori di ID 2 e 3. Il primo record è già stato stampato e verrà ignorato.
Esempio di Aggiorna statement SQL:
Per contrassegnare i record già stampati con il valore
Y
nel campoAlreadyPrinted
, procedere come segue.UPDATE [Table] SET [AlreadyPrinted] = 'Y' WHERE [ID] = :ID
Inserire i due punti (
:
) davanti al nome della variabile nell'istruzione SQL, per identificarla come variabile. È possibile usare qualsiasi campo della tabella per parametri nella clausola WHERE. Nell'esempio, il campoAlreadyPrinted
viene aggiornato solo per il record elaborato correntemente (l'ID
del valore di campo deve essere identico al valore del record corrente). Allo stesso modo si deve fare riferimento ad altri campi del record, come:ProductID
o:CodeEAN
o addirittura alle variabili definite all'interno di questo trigger di database.Per eliminare il record corrente dalla tabella, procedere come segue:
DELETE FROM [Table] WHERE [ID] = :ID
Mostra istruzione SQL: espandere questa sezione per vedere l'istruzione SQL generata e scrivere un'istruzione personalizzata se si è selezionata l'opzione Ottieni e gestisci i record con SQL personalizzato.
Anteprima dell'esecuzione SQL
Per provare l'esecuzione delle istruzioni SQL e vederne l’effetto, fare clic su Prova nella barra degli strumenti dell'area di modifica SQL. Nel riquadro destro si apre la sezione Anteprima dati. Fare clic sul pulsante Esegui per avviare il codice SQL. Se si usano i valori del campo di tabella nell'istruzione SQL (con i due punti (:) davanti al nome di campo), è necessario specificare i relativi valori di prova.
Nota
Se è aperta l’anteprima dati e sono state appena aggiunte alcune variabili allo script, fare clic due volte sul pulsante Prova. Così facendo, si chiude e si apre la sezione Anteprima dati e l'elenco di variabili nell’anteprima viene aggiornato.
-
Simula esecuzione: Specifica che tutte le modifiche apportate al database vengono ignorate. La transazione del database viene invertita in modo tale che nessun aggiornamento venga scritto al suo interno.
Esecuzione
Le opzioni in Esecuzione specificano quando verrà eseguito l'aggiornamento del database. Il tipo di aggiornamento dipende dalle opzioni di rilevamento per il trigger.
-
Azioni pre-elaborazione: specifica che i record vengono aggiornati prima che abbia inizio l'esecuzione delle azioni definite per questo trigger.
-
Azioni post elaborazione: specifica che i record vengono aggiornati dopo l'esecuzione delle azioni definite per questo trigger. Di solito è opportuno aggiornare i record dopo che sono stati elaborati con successo.
Nota
Se necessario, è possibile aggiornare i record mentre le azioni sono ancora in esecuzione. Per ulteriori informazioni, vedere la sezione Esegui istruzione SQL.
Altro
Le opzioni nella sezione Feedback dal motore di stampa specificano i parametri di comunicazione che consentono di ricevere feedback dal motore di stampa.
-
Stampa supervisionata: attiva la modalità di stampa sincrona. Usarla ogni volta che si desidera reinviare lo stato del processo di stampa all'applicazione di terzi. Per ulteriori informazioni, vedere la sezione Modalità di stampa sincrona.
Le opzioni nella sezione Elaborazione dati specificano se si desidera tagliare i dati in modo tale che si inseriscano in una variabile, oppure ignorare le variabili di etichetta mancanti. Per impostazione predefinita, segnala gli errori e interrompe il processo di stampa se si tenta di conservare valori troppo a lungo nelle variabili di etichetta oppure di impostare valori per variabili di etichetta inesistenti.
-
Ignora contenuti di variabili eccessivi: tronca i valori dei dati che superano la lunghezza della variabile come definito nel progettista di etichette per renderli idonei. Questa opzione è attiva se i valori delle variabili vengono impostati nei filtri, dai file di comando e quando vengono impostati i valori delle variabili di trigger sulle variabili di etichetta con lo stesso nome.
Esempio 21. Esempio
La variabile di etichetta accetta al massimo 5 caratteri. Con questa opzione attivata, qualsiasi valore superiore a 5 caratteri viene troncato ai primi 5 caratteri. Se il valore è 1234567 ignora le cifre 6 e 7.
-
Ignora le variabili dell'etichetta mancanti: quando si stampa con i file di comando (come il file JOB), il processo di stampa ignora tutte le variabili che sono:
-
specificati nel file di comando (usando il comando SET)
-
non definiti sull'etichetta
Lo stesso accade se si definisce l'area di assegnazione in un filtro per estrarre tutte le coppie name-value, ma l'etichetta contiene meno variabili.
Quando si impostano i valori di variabili di etichetta inesistenti, segnala un errore. Se questa opzione è attivata, la stampa continua.
-
Le opzioni nella sezione Scripting specificano le possibilità di esecuzione di script.
-
Linguaggio di script: seleziona il linguaggio di script per il trigger. Tutte le azioni Esegui script usate all'interno di un singolo trigger usano il linguaggio di script selezionato.
Le opzioni presenti nella sezione Salva dati ricevuti specificano i comandi disponibili per i dati ricevuti dal trigger.
-
Salva su file i dati ricevuti dal trigger: Attivare questa opzione per salvare i dati ricevuti dal trigger. L'opzione Variabile consente di usare il nome di file di variabile. Selezionare una variabile contenente il percorso e il nome del file.
-
Quando si verifica un errore, salva su file i dati ricevuti dal trigger: attivare questa opzione per salvare i dati nel trigger solo se si verifica un errore durante l'esecuzione dell'azione. Potrebbe essere opportuno attivare questa opzione per tenere pronti i dati alla risoluzione dei problemi.
Nota
Assicurarsi di attivare il supporto di stampa supervisionato. In caso contrario, non può rilevare errori durante l’esecuzione. Per ulteriori informazioni, vedere la sezione Modalità di stampa sincrona.
Nota
salva i dati ricevuti in un file temporaneo. Questo file temporaneo viene eliminato subito dopo il completamento dell'esecuzione del trigger. La variabile interna
DataFileName
fa riferimento al nome di tale file. Per ulteriori informazioni, vedere l'argomento Variabili interne.