Cómo extraer información de un archivo de activación de Print Command Script y reutilizarla para configurar una acción de impresión de documento
Pregunta
¿Cómo se elimina información de un archivo de activación que contiene instrucciones de Print Command Script y luego se utiliza para establecer datos variables y opciones de impresión en una acción de Imprimir documento?
Respuesta
Se pueden usar los siguientes métodos para extraer fuentes de datos nombradas del archivo de activación que contiene los parámetros del script de comandos y luego usar esos datos como si fuera un archivo csv normal. Para ambos métodos, necesitarás crear una Integración de Archivos que contenga un comando de Imprimir documento.
Usando expresiones regulares
El método más corto de los dos es usar expresiones regulares (regex). Todo el proceso a través de la acción Imprimir documento es el siguiente:
Las tres primeras acciones son acciones de Buscar y Eliminar. Estos son los datos de ejemplo usados en el ejemplo:
%BTW% /AF="C:\Users\framos\Desktop\TempFiles\PALLET-0.btw" /PRN="PFM_ADV_COP" /R=3 /P /D="%Trigger File Name%" /DD
%END%
AF1;AF2;AF3;AF4;AF5;A5;AF6;AF7;AF8;AF9;AF10;AF11;AF12;AF13;AF14;AF15;AF16;A16;AF17;AF18;AF19;AF20;A20;AF21;AF22;AF23;AF24;AF25;AF26;AF27;AF28;AF29;AF30;AF31;AF32;AF33;AF34;AF35;AF36;AF37;AF38;AF39;AF40;AF41;AF42;AF43;AF44;AF45;XF1;XF2;P1;END
;BLE-0230ABU;40000,00;;100000025;S;VERSEUR 29MM;BH0290ABU190I01;BLEDINA;69400;VILLEFRANCHE SUR SAONE;;111,38;BH0290ABU190I01;40000,00;PCE;170215;P;;1;100,00;OF000006;K;OF000006;;R;;PCE;Commission client;;40000,00;PCE;40000,00;PCE;UNITED CAPS MESSIA;39570 MESSIA SUR SORNE FRANCE;P01;;;;;CUS002474;;0;036610641000000258;0;63661064000055;02;4;2,00;TOTO est parti chez le boulanger pour acheter un croissant;END
1. Recupera el nombre del documento desde los Datos del Evento extraídos del archivo de activación
La expresión regular elimina todo lo que está antes e incluyendo /AF=" y todo lo que está después e incluyendo " /PRN. Aquí tienes la regex para copiar y usar:
(%BTW[\s\S]*\/AF=")|(" \/PRN[\s\S]*)
2. Recupera el nombre de la impresora desde los Datos del Evento
Al igual que la acción anterior, esta elimina y borra todo lo que no está entre las comillas del parámetro /PRN. Aquí tienes la regex para copiar y usar:
(%BTW[\s\S]*\/PRN=")|(" \/R[\s\S]*)
3. Elimina el script de comandos para que la acción Imprimir documento pueda usar los datos del archivo de activación como si fuera un archivo csv normal:
Esta expresión regular simplemente elimina las dos primeras filas y deja intactos los datos restantes. Aquí tienes la regex para copiar y usar:
(.BTW[\s\S]*END.)\u000D\u000A
Una nota al crear tu propio Regex
BarTender usa % para denotar variables en Integraciones. El script de comandos utiliza dos de estos, %BTW% y %END%. Si tu regex contiene dos %, BarTender interpreta lo que esté entre ellos como una variable y puede mostrar una advertencia: "Unable to apply transform because search criteria has one or more unresolved names."
Si es posible, trata de evitar usar dos %. Si necesitas usar ambos, como en la regex usada para eliminar el script de comandos arriba, puedes usar el carácter comodín punto en lugar del % o desmarcar la casilla de variable en la acción:
Imprimir el documento usando la información extraída
El último paso es colocar toda esta información en tu acción de Imprimir documento. Usando las variables que creaste, simplemente agrégalas en los campos de Documento e Impresora en la acción Imprimir documento:
Puedes usar aquí otra información extraída del script de comandos, como el número de copias o cualquier variable personalizada que hayas añadido. Puedes agregar una fuente de datos nombrada así, donde %NamedVariable1% contiene los datos que extrajiste del script de comandos:
Más información
Si tienes problemas con las expresiones regulares o no quieres trabajar con ellas, aquí tienes un método alternativo que puedes usar para extraer información.
Usando Buscar y Eliminar
Este método es el más largo de los dos. Es una buena opción si no quieres usar expresiones regulares ni modificarlas. Por cada elemento que quieras extraer del script de comandos, necesitarás esta serie de acciones de búsqueda:
1. El primer paso busca /AF=" y elimina todo lo que está antes de eso:
2. El segundo paso elimina el /AF=" que se usó para buscar en el primer paso:
3. Ahora necesitamos eliminar todo lo que está después del nombre real del archivo. Como no sabemos cuál será el nombre del archivo, podemos eliminar todo lo que está después de la comilla, ya que será la primera que encuentre la búsqueda:
4. Como antes, necesitamos eliminar la comilla.
Ahora ya tienes la ruta y el nombre del archivo BTW. Por cada elemento, como la impresora y cualquier otra información que quieras extraer del script de comandos, tendrás que hacer estos cuatro pasos.