Impresión de registros de base de datos a través de una integración de servicio web en un solo trabajo de impresión
Descripción general
Es probable que estés buscando crear una Integración de Servicio Web para aprovechar la comunicación bidireccional que nos permite informar más detalles sobre cómo se recibe el archivo de activación. Además, puede que estés enviando datos variables para que BarTender los utilice en cada una de las etiquetas que deseas imprimir. Sin embargo, quizás no te guste que por cada registro de datos que envías se genere un trabajo de impresión individual. Algunos clientes también tienen situaciones en las que la impresora necesita realizar una tarea entre trabajos de impresión, lo que aumentaría significativamente el tiempo total de impresión al obtener la cantidad deseada de etiquetas.
Este método de ejemplo nos permite aprovechar el procesamiento de activadores de una Integración de Servicio Web, pero también toma los registros que deseas imprimir y crea un solo trabajo de impresión para ellos mediante el uso de Print Command Script.
Implementación
La mejor manera de pensar en cualquier integración es dividir los eventos que ocurren en al menos dos partes: el evento que activa la integración y los eventos que ocurren después de recibir el activador. El artículo ¿Puedo enviar varios registros en una integración de servicio web? habla sobre la primera parte de la integración. Como se indica, puedes configurar una integración de servicio web tipo POST y enviar varios registros, tal como muestra la imagen:
Ten en cuenta que este es simplemente un método donde el usuario decidió incluir no solo los datos relevantes, sino también definir la etiqueta y la impresora para cada registro. Puedes explorar otra alternativa si lo prefieres. Por ejemplo, así estructuré mis datos para enviarlos a la integración:
La parte complicada (y sinceramente lo que hace que Integration Builder sea una herramienta tan potente) es qué hacer después de haber enviado la información a la integración. En este punto, la integración de servicio web no sabe qué son estos datos ni para qué se usan. Queremos de alguna manera agrupar los registros enviados en un conjunto de registros. Si logramos esto, podemos imprimir nuestro documento deseado usando nuestra base de datos creada dinámicamente.
Archivos de ejemplo
Aquí tienes los archivos de ejemplo que puedes usar para seguir este tutorial, o puedes crear los tuyos propios:
- ShippingLabel.btw
- TESTDB.txt - base de datos de ejemplo para usar en la etiqueta
- Multi-RecordSinglePrintJobExample.btin
Crear un archivo de base de datos de ejemplo
Para comenzar, crea una base de datos de ejemplo que refleje cómo enviarás tus datos desde la integración. En este ejemplo, enviaré dos datos por cada etiqueta que quiero imprimir: el número de seguimiento y el número de serie. Así que creé una base de datos de texto delimitada por comas como esta y la guardé como TESTDB.txt:
TrackingNumber,SerialNumber,
T456826,S956845
Crear el documento de BarTender
Necesitamos preparar la etiqueta para que acepte el número de seguimiento y el número de serie que enviaremos a través de la integración, asociando la conexión de la base de datos a los objetos correspondientes.
- Abre ShippingLabel.btw.
- Conecta tu base de datos (TESTDB.txt) a BarTender usando la opción Configuración de conexión de base de datos en BarTender (puedes usar esto como referencia: Introducción a las conexiones de bases de datos (Video - 5:20))
- Asocia los campos de encabezado de tu registro a los objetos deseados en tu plantilla de etiqueta (también cubierto en el artículo de soporte referenciado)
- Guarda la etiqueta.
Crear la integración
Ahora necesitamos crear la integración. Como este ejemplo usará el método de solicitud POST, queremos crear una Integración de Servicio Web.
- Abre Integration Builder
- Selecciona Crear nueva integración
- Selecciona Servicio web como la opción de integración deseada y haz clic en OK.
- En Datos de entrada, asegúrate de que el formato de datos de entrada esté configurado como No estructurado.
- En Respuesta, escribe cualquier respuesta que desees enviar de vuelta. Aquí tienes un ejemplo de respuesta que puedes usar:
Print Job Status = %PrintJobStatus%
Print Job Messages = %PrintJobMessages% - En Acciones, elimina la acción Imprimir documento haciendo clic en la X roja a la derecha de la acción. Luego, haz clic en el botón azul de suma para acceder a las diferentes acciones que puedes realizar en cualquier integración:
- Agrega tres acciones:
Transformar texto en conjunto de registros
Escribir archivo
Print Command Script - En el comando Transformar texto en conjunto de registros, ajusta lo siguiente:
En la opción Configuración de conexión de base de datos de texto, conecta TESTDB.txt a la integración.
Asegúrate de que la Fuente de texto esté configurada como Variable y %EventData%
Asegúrate de que la Salida esté configurada para guardar el registro en la variable %EventData% - En el comando Escribir archivo, ajusta lo siguiente:
Configura la Fuente como Variable %EventData%
Configura el Destino del archivo de base de datos que vamos a escribir en la ubicación deseada. Asegúrate de que donde guardes este archivo, tu integración tenga permisos de usuario suficientes para acceder a esa ubicación. Este ejemplo coloca el archivo en C:\test.
Ponle el nombre que quieras al archivo. El siguiente paso necesitará ese nombre.
Elige qué hacer si el archivo de base de datos que escribes ya existe. En este ejemplo se eligió Reemplazar el archivo si ya existe. - En el comando Print Command Script, ajusta lo siguiente:
Elige la Fuente como Script incrustado.
En la ventana de Script, escribe lo siguiente:
Para las Opciones de impresión avanzadas, marca la casilla para Solicitar entrada de datos.%BTW% /AF="C:\test\ShippingLabelMod.btw" /D="C:\test\TestResult.txt" /P
%END%
Probar la integración
Antes de implementar tu integración, ¡debes asegurarte de que funcione! Usa la opción Probar integración en Integration Builder haciendo clic en el ícono en el menú Inicio o en la pestaña Prueba junto a Propiedades en la parte inferior de la ventana de Integration Builder.
Configuración del cliente REST
- Necesitaremos usar un cliente REST para probar el envío de una solicitud POST a BarTender. Puedes usar el cliente REST que prefieras. En este ejemplo, elegimos usar Insomnia, que puedes descargar aquí: Insomnia Rest Client
- Una vez que tengas instalado el cliente REST, crea una nueva solicitud POST, usando "other" como opción de formato de texto.
- Introduce los siguientes datos. De alguna manera, nuestra solicitud está estructurada como si fuera una base de datos, donde cada registro está en su propia línea. En este ejemplo, imprimiremos cinco etiquetas donde cada línea representa el número de seguimiento y el número de serie, respectivamente, igual que la base de datos de ejemplo representada en TESTDB.txt.
T456826,S956845,
T456827,S956846,
T456828,S956847,
T456829,S956848,
T456820,S956849 - Edita la dirección web para usar la dirección que hará referencia y activará la integración. Debería decir algo como esto:
http://<host>/Integration/WebServiceIntegration/Execute
Puedes encontrar esto dentro de la pestaña Servicio en la integración. El <host> será el nombre de tu equipo. Si no sabes cuál es, abre la consola de comandos, escribe "hostname" sin comillas y presiona Enter.
Aquí es donde debes ingresar la ruta URL completa con el nombre de tu equipo:
Probar la integración
- Haz clic en la opción Probar integración en el menú Inicio.
- Haz clic en el botón Iniciar en la parte superior derecha de la ventana de prueba. Tu integración debería comenzar ahora.
- En tu cliente REST, haz clic en Enviar. Tomará unos segundos, pero pronto verás no solo una respuesta en tu cliente REST, sino también dentro de la ventana de prueba de integraciones:
Implementar la integración
- Desde la barra de herramientas de Integration Builder, haz clic en
Implementar integración para abrir el cuadro de diálogo Nueva implementación. - En el cuadro de diálogo Nueva implementación, ingresa un nombre y una descripción para tu implementación.
- Asegúrate de que la configuración de Archivo de integración muestre IntegrationFile.btin (o el nombre que hayas guardado para tu integración).
- Para Servidores de destino, agrega el/los servidor(es) donde deseas implementar el archivo de integración.
- Especifica la configuración de Manejo de errores que desees.
- Haz clic en OK para cerrar el cuadro de diálogo e implementar el archivo de integración.
- La Consola de administración se abrirá en el nodo Integraciones, mostrando tu integración.