Para saber más sobre los desencadenadores en general, consulte el tema Comprender los desencadenadores.
El evento de desencadenador de base de datos se produce cuando se detecta un cambio en la tabla de la base de datos monitoreada. Puede haber registros nuevos, o registros existentes que se han actualizado. El desencadenador de base de datos no espera a que se produzca ningún cambio de evento, como la entrega de datos. Por el contrario, extrae datos de la base de datos en intervalos de tiempo definidos.
Uso típico: El sistema de negocio existente ejecuta una transacción, que en efecto actualiza los datos en alguna tabla de base de datos. NiceLabel Automation detectará los registros actualizados y nuevos, e imprimirá su contenido en las etiquetas.
General
Esta sección le permite configurar los parámetros más importantes del desencadenador de archivo.
-
Nombre: Especifica el nombre único del desencadenador. El nombre lo ayuda a distinguir los diferentes desencadenadores cuando los configura en Automation Builder y luego cuando los ejecuta en Automation Manager.
-
Descripción: Le permite describir el rol de este desencadenador. Ingrese una breve explicación acerca de lo que hace el desencadenador para ayudar a los usuarios.
-
Conexión a la base de datos: Especifica la cadena de conexión con la base de datos. Haga clic en Definir para abrir el cuadro de diálogo de la base de datos. Úselo para configurar la conexión de la base de datos, incluido el tipo de bases de datos, el nombre de tabla y las credenciales de usuario. Debe conectarse a la base de datos que permita el acceso con comandos SQL. Por ello, no puede utilizar el desencadenador de base de datos para detectar automáticamente cambios de datos en archivos de texto CSV y en hojas de cálculo de Microsoft Excel.
Nota
Los detalles de la configuración dependen del tipo de base de datos seleccionada. Las opciones del cuadro de diálogo dependen del controlador de la base de datos que utilice. Para ver los detalles de configuración, consulte la guía del usuario del controlador de la base de datos. Para obtener más información sobre conectividad de base de datos, consulte la sección Acceso a bases de datos.
-
Comprobar base de datos en los intervalos de tiempo: Especifica el intervalo de tiempo en el cual se sondea la base de datos para detectar cambios en los registros.
-
Opciones de detección y avanzadas: Estas opciones le permiten ajustar el mecanismo de detección de registros. Cuando se adquieren registros de la base de datos, la pestaña Acción muestra automáticamente el objeto Para cada registro, donde puede asignar campos de la tabla a variables de etiqueta.
Obtener registros basados en el valor único del campo incremental
Con esta opción habilitada, el desencadenador monitorea los campos numéricos autoincrementales especificados en la tabla. NiceLabel Automation recordará el valor del campo para el último registro procesado. En el siguiente intervalo de sondeo, solo se adquirirán los registros con valores mayores que el valor recordado.
Para configurar esta opción, debe seleccionar el nombre de la tabla donde residen los registros
(nombre de tabla)
, el campo con incremento automático(campo clave)
y el valor de inicio para el campo(valor predeterminado del campo clave)
. Internamente, la variableKeyField
se utiliza para hacer referencia al último valor recordado del campo clave.Nota
El último valor del campo clave se recuerda internamente, pero no se actualiza en la configuración, de modo que el
valor predeterminado del campo clave
no cambia en este cuadro de diálogo. Puede volver a cargar de manera segura la configuración o detener/iniciar el desencadenador en Automation Manager y, aun así, mantener el último valor recordado. Sin embargo, si elimina la configuración desde Automation Manager y la vuelve a agregar, el valor del último campo clave recordado volverá a ser el que definió comovalor predeterminado del campo clave
.Obtener registros y borrarlos
Con esta opción seleccionada, todos los registros se adquieren de la tabla y se eliminan. Para configurar esta opción, debe seleccionar el nombre de la tabla en la que residen los registros (
nombre de tabla
) y especificar la clave principal en la tabla (campos clave
). Si bien Automation permite tener una tabla sin una clave principal, es muy recomendable definir una. Si la clave principal existe, los registros se eliminarán de a uno cuando cada uno se procese en las acciones.Aviso
Si la clave principal no existe, todos los registros obtenidos en el desencadenador actual se eliminarán a la vez. Eso no es problema si no se produce ningún error durante el procesamiento de registros. Sin embargo, si se produce un error de procesamiento con algún registro, Automation deja de procesar otros registros. Como todos los registros capturados en ese intervalo de sondeo ya se han eliminado sin procesarse, puede perder datos. Por lo tanto, es recomendable tener una clave principal en una tabla.
Ejemplos de código SQL
Nota
Estas instrucciones SQL son de solo lectura y se presentan únicamente a modo de referencia. Para proporcionar instrucciones SQL personalizadas, seleccione el método de detección Obtener y administrar registros con SQL personalizadas.
Tabla de ejemplo:
ID
ProductID
CódigoEAN
DescDeProducto
YaImpreso
1
CAS0006
8021228110014
CASONCELLI ALLA CARNE 250G
Y
2
PAS501
8021228310001
BIGOLI 250G
3
PAS502GI
8021228310018
TAGLIATELLE 250G
Ejemplo de Actualización de instrucción SQL cuando la tabla contiene el índice principal:
DELETE FROM [Table] WHERE [ID] = :ID
ID
en la tabla se define como el índice principal. La construcción:ID
en la cláusula WHERE contiene el valor de campo ID en cada iteración. Para el primer registro, el valor deID
es 1, para el segundo registro es 2, etc. Al colocar dos puntos delante del nombre de campo en la instrucción SQL, se especifica el uso de la variable.Ejemplo de Actualización de instrucción SQL cuando la tabla no tiene el índice principal definido:
DELETE FROM [Table]
Cuando no haya un índice principal definido en la tabla, todos los registros se eliminan de la tabla cuando el primer registro se haya procesado.
Obtener registros y actualizarlos
Con esta opción seleccionada, todos los registros se adquieren de la tabla y se actualizan. Puede escribir un valor personalizado en el campo en la tabla para indicar "estos registros ya están impresos". Para configurar esta opción, debe seleccionar el nombre de la tabla en la que residen los registros
(nombre de tabla)
, seleccionar el campo que desea actualizar(actualizar campo)
e ingresar el valor que se almacenará en el campo(actualizar valor)
. Internamente, la variableUpdateValue
se utiliza en la instrucción SQL para hacer referencia al valor actual del campo (actualizar valor
).Si bien Automation permite tener una tabla sin una clave principal, es muy recomendable definir una. Si la clave principal existe, los registros se actualizarán de a uno cuando cada uno se procese en las acciones.
Aviso
Si la clave principal no existe, todos los registros obtenidos en el desencadenador actual se actualizarán a la vez. Eso está bien si no hay ningún error de procesamiento de los registros. Pero si hay algún error al procesar un registro, la Automatización detendrá el procesamiento de los demás registros. Como todos los registros capturados en ese intervalo de sondeo ya se han actualizado sin procesarse en acciones, puede perder datos. Por lo tanto, es una buena idea tener una clave principal en una tabla.
Ejemplos de código SQL
Nota
Estas instrucciones SQL son de solo lectura y se presentan únicamente a modo de referencia. Para proporcionar instrucciones SQL personalizadas, seleccione el método de detección Obtener y administrar registros con SQL personalizadas.
Tabla de ejemplo:
ID
ProductID
CódigoEAN
DescDeProducto
YaImpreso
1
CAS0006
8021228110014
CASONCELLI ALLA CARNE 250G
Y
2
PAS501
8021228310001
BIGOLI 250G
3
PAS502GI
8021228310018
TAGLIATELLE 250G
Ejemplo de Actualización de instrucción SQL cuando la tabla contiene el índice principal:
UPDATE [Table] SET [AlreadyPrinted] = :UpdateValue WHERE [ID] = :ID
ID
en la tabla se define como el índice principal. La construcción:ID
en la cláusula WHERE contiene el valor de campo ID en cada iteración. Para el primer registro, el valor deID
es 1, para el segundo registro es 2, etc. Al agregar dos puntos delante del nombre de campo en la instrucción SQL, se especifica el uso de la variable. El campoUpdateValue
se define en la configuración del desencadenador en el campo de edición Actualizar valor.Ejemplo de Actualización de instrucción SQL cuando la tabla no tiene el índice principal definido:
UPDATE [Table] SET [AlreadyPrinted] = :UpdateValue
Cuando no haya un índice principal definido en la tabla, todos los registros de la tabla se actualizarán cuando el primer registro se haya procesado.
Obtener y administrar registros con SQL personalizado
En este caso, la creación de instrucciones SQL para la extracción de registros y actualización de campos depende completamente de usted. Para configurar esta opción, debe proporcionar una instrucción SQL personalizada para adquirir registros
(buscar instrucción SQL)
y para actualizar los registros después del procesamiento(actualizar instrucción SQL)
. Haga clic en el botón Probar para hacer una ejecución de prueba de sus instrucciones SQL y ver el resultado en pantalla.Puede utilizar valores de campos de tabla o valores de variables de desencadenador como parámetros en la cláusula WHERE de la instrucción SQL. Debe colocar dos puntos (:) delante del nombre de campo o variable. Esto indica a NiceLabel Automation que utilice el valor actual de ese campo o variable.
Ejemplos de código SQL
Tabla de ejemplo:
ID
ProductID
CódigoEAN
DescDeProducto
YaImpreso
1
CAS0006
8021228110014
CASONCELLI ALLA CARNE 250G
Y
2
PAS501
8021228310001
BIGOLI 250G
3
PAS502GI
8021228310018
TAGLIATELLE 250G
Ejemplo de Buscar instrucción SQL:
Para obtener los registros que aún no han sido impresos, haga lo siguiente. El campo
AlreadyPrinted
no debe contener el valorY
, y tener un valor en blanco o NULO.SELECT * FROM Table WHERE AlreadyPrinted <> 'Y' or AlreadyPrinted is NULL
Desde la tabla de muestra a continuación, se extraerán dos registros con valores de ID 2 y 3. El primer registro ya se imprimió y se ignorará.
Ejemplo de instrucción Actualizar SQL:
Para marcar los registros ya impresos con el valor
Y
en el campoAlreadyPrinted
haga lo siguiente:UPDATE [Table] SET [AlreadyPrinted] = 'Y' WHERE [ID] = :ID
Coloque dos puntos (
:
) delante del nombre de variable en la instrucción SQL para identificarla como variable. Puede utilizar cualquier campo de la tabla para los parámetros en la cláusula WHERE. En el ejemplo, estamos actualizando el campoAlreadyPrinted
únicamente para el registro que se está procesando actualmente (el valor de campoID
debe ser el mismo que el valor del registro actual). Al igual que haría referencia a otros campos en el registro como:ProductID
o:CodeEAN
, o incluso a las variables definidas dentro de este desencadenador de base de datos.Para eliminar el registro actual de la tabla, haga lo siguiente:
DELETE FROM [Table] WHERE [ID] = :ID
Mostrar instrucción SQL: Expanda esta sección para ver la instrucción SQL generada y escribir su propia instrucción, si ha seleccionado la opción Obtener y administrar registros con SQL personalizadas.
Vista previa de ejecución de SQL
Para probar la ejecución de las sentencias SQL y ver qué efecto tendrían, haga clic en el botón Probar en la barra de herramientas del área de edición SQL. Se abrirá la sección Vista previa de los datos en el panel de la derecha. Haga clic en el botón Ejecutar para iniciar el código SQL. Cuando utiliza valores de campo de tabla en la instrucción SQL (con dos puntos [:] delante del nombre de campo), debe proporcionar los valores de prueba para ellos.
Nota
Si tiene abierta la sección Vista previa de los datos y recientemente ha agregado algunas variables a la secuencia, haga clic en el botón Probar dos veces. Así se cierra y se abre la sección Vista previa de los datos y se actualiza la lista de variables en la vista previa.
-
Simular ejecución: Especifica que se ignoren todos los cambios realizados a la base de datos. La transacción de la base de datos se revierte para que no se escriban datos en ella.
Ejecución
Las opciones en Ejecución especifican cuándo se realizará la actualización de la base de datos. El tipo de actualización depende de las Opciones de detección para el desencadenador.
-
Antes de procesar acciones: Especifica que los registros se actualizarán antes de que se inicie la ejecución de las acciones definidas para ese desencadenador.
-
Después de procesar acciones: Especifica que los registros se actualizarán después de que se inicie la ejecución de las acciones definidas para ese desencadenador. Por lo general, conviene actualizar los registros después de que se hayan procesado correctamente.
Nota
De ser necesario, puede también actualizar los registros mientras aún se están ejecutando las acciones. Para obtener más información, consulte el tema Ejecutar instrucción SQL.
Otros
Las opciones en la sección Comentarios del motor de impresión especifican los parámetros de comunicación que le permiten recibir comentarios del motor de impresión.
-
Impresión supervisada: Activa el modo de impresión sincronizada. Utilícela siempre que quiera enviar el estado del trabajo de impresión a una aplicación de terceros. Para obtener más información, consulte el tema Modo de impresión sincronizada.
Las opciones en la sección Procesamiento de datos especifican si quiere recortar los datos para que entren en la variable o ignorar las variables de las etiquetas faltantes. En forma predeterminada, notificará los errores e interrumpirá el proceso de impresión si intenta guardar valores muy largos en la variable de la etiqueta o intenta configurar valores para variables de etiquetas no existentes.
-
Ignorar exceso de contenido de variables: trunca los valores de datos que exceden la longitud de la variable tal lo definido en el diseñador de etiquetas para que se ajusten. Esta opción está en efecto cuando se configuran valores de variables en los filtros, desde los archivos de comandos y cuando se configuran valores de variables de desencadenadores para las variables de etiquetas del mismo nombre.
Ejemplo 21. Ejemplo
La variable de la etiqueta acepta 5 caracteres como máximo. Con esta opción habilitada, cualquier valor de más de cinco caracteres se trunca a los primeros cinco caracteres. Si el valor es 1234567 ignora los dígitos 6 y 7.
-
Ignorar variables de etiquetas faltantes: Al imprimir con archivos de comandos (como un archivo JOB), el proceso de impresión ignora todas las variables que están:
-
especificadas en el archivo de comandos (que usan el comando SET)
-
no definidas en la etiqueta
Lo mismo sucede si define el área de asignación en un filtro para que extraiga todos los pares nombre-valor, pero su etiqueta contiene menos variables.
Al configurar valores de variables de etiquetas no existentes, informo un error. Si esta opción está habilitada la impresión continúa.
-
Las opciones en la sección Secuencia de comandos especifican las posibilidades de las secuencias de comandos.
-
Idioma de secuencias: Selecciona el idioma de secuencias para el desencadenador. Todas las acciones Ejecutar secuencia de comandos que utiliza dentro de un solo desencadenador usan el idioma de secuencia de comandos. seleccionado.
Las opciones en la sección Guardar datos recibidos especifican los comandos disponibles para los datos recibidos por el desencadenador.
-
Guardar datos recibidos por el desencadenador en el archivo: Habilite esta opción y guarde los datos recibidos por el desencadenador. La opción Variable habilita un nombre de archivo variable. Seleccione una variable que contenga la ruta y el nombre de archivo.
-
Al guardar datos recibidos por el desencadenador en el archivo: Habilite esta opción para guardar los datos en el desencadenador sólo si se produce un error durante la ejecución de la acción. Puede activar esta opción para mantener los datos que causaron el problema listos para resolver el problema más adelante.
Nota
Asegúrese de habilitar el soporte para impresión supervisada. De lo contrario, no puede detectar errores durante la ejecución. Para obtener más información, consulte el tema Modo de impresión sincronizada.
Nota
guarda los datos recibidos en un archivo temporal. Este archivo temporal se elimina inmediatamente después de que se completa la ejecución del desencadenador. La variable interna
DataFileName
hace referencia a ese nombre de archivo. Para obtener más información, consulte el tema Variables internas.