Tratamiento dinámico del contenido de los documentos


eSignatureOffice ofrece la opción de procesar dinámicamente el contenido del documento, por ejemplo, nombres, ID de cliente, direcciones de correo u otra información en varios puntos de su funcionalidad. Todo esto puede ayudarle a la hora de informar al firmante, de asignar nombres dinámicos a los archivos firmados al guardarlos o enviarlos por correo, por nombrar sólo algunos.

Esta función de procesamiento de contenidos funciona siempre de la misma manera, independientemente de para qué la utilices o desde dónde la estés llamando, y puedes utilizarla en cualquier lugar en el que encuentres el icono de la lupa .

La forma más utilizada para utilizar esta función es posiblemente renombrar el documento dinámicamente al guardarlos y es por eso que este ejemplo se utiliza principalmente para esta guía.


Renombrado dinámico al guardar el documento

Al igual que se ha explicado anteriormente, puede generar el nombre del archivo leyendo y utilizando el contenido del archivo PDF cargado. Puede ser un nombre o un ID de cliente escrito dentro del propio documento PDF. Para crear un nombre de carpeta dinámicamente, tiene que crear una macro (Automatizar procesos complejos: Trabajar con macros), seleccionar la opción de guardado «Guardar archivo como...» y en el siguiente cuadro de diálogo elegir «Enviar archivo automáticamente». Para crear además el nombre del archivo de forma dinámica, active también la casilla «Renombrar el archivo después de copiarlo:»



A continuación, puede abrir el cuadro de diálogo para el tratamiento dinámico de datos haciendo clic en el icono de la lupa:


Puede agrupar la información deseada a partir de varios bloques de texto creando «reglas» de búsqueda para cada uno de ellos. Para ello, haga clic en el botón «Añadir» y tendrá a su disposición los campos de texto de la derecha:

  • El campo «Prefijo» puede utilizarse para añadir caracteres, que siempre se escribirán antes del texto de búsqueda realmente encontrado. En caso de crear dinámicamente una ubicación de guardado, ésta podría ser una parte estática de la ruta, como «C:\StepOver\» por ejemplo, y la búsqueda está buscando el nombre del cliente. Así, al final, la ruta de guardado podría ser «C:\StepOver\John Doe\».
  • El siguiente campo requiere que proporcione el texto de búsqueda en sí, que siempre se escribe dentro del documento antes del resultado deseado (por ejemplo, «ID de cliente:», que luego tendría que ser seguido por el ID que está buscando)
  • El siguiente paso consiste en establecer el número de caracteres antes o después de la cadena de búsqueda elegida, que se utilizarán como resultado para el nombre del archivo (por ejemplo, utilice 8 aquí, si el ID del cliente siempre tendrá exactamente 8 dígitos/letras).
  • Sin embargo, en lugar de proporcionar un número exacto estático, puede utilizar la casilla «Extraer sólo la primera palabra» un poco más abajo para restringir la búsqueda de forma que sólo incluya la primera palabra encontrada antes o después de su cadena de búsqueda. La «primera palabra» se define aquí como texto hasta que se encuentra un espacio vacío entre dos caracteres. Esta opción es muy útil cuando no se sabe cuántas letras/dígitos tendrá el resultado de la búsqueda, por ejemplo cuando se trata de nombres.
  • En lugar de restringir los resultados a un número estático de caracteres o sólo a la primera palabra, también puede añadir un punto final dinámico para su búsqueda con la opción «Texto de parada». Esto significa que todos los caracteres entre el «texto de búsqueda» y el «texto final» se considerarán el resultado de la búsqueda.
  • La casilla «Intercambiar texto» hará que la cadena del campo situado debajo se utilice como resultado de búsqueda estático en cuanto se encuentre el texto de búsqueda dado. Utilice esta función para crear una rutina «SI X ha sido encontrado, ENTONCES utilice Y como resultado».
  • Si es posible que no se encuentre el texto de búsqueda en el documento, puede proporcionar un texto predeterminado como resultado alternativo. (Por ejemplo «Nuevo cliente», cuando no se encuentra el ID del cliente).
  • La casilla «Campo de formulario PDF» significa que el texto de búsqueda no se encuentra directamente en el documento, sino que es el nombre de un campo de formulario PDF dentro del documento. Esto hace que el contenido del campo de formulario se considere el resultado de la búsqueda, que se utilizará para procesar dinámicamente sus datos.
  • La opción Rango de caracteres utilizados permite subdividir el contenido encontrado. He aquí un ejemplo de cómo funciona.
  • Con las Expresiones regulares puede limitar la cadena encontrada especificando un patrón de búsqueda. La sintaxis se puede encontrar aquí.
  • La última opción de este cuadro de diálogo es desactivar el almacenamiento en caché de los posibles resultados de la búsqueda. Esta opción sólo es relevante para documentos con campos de formulario y significa que, por defecto, eSignatureOffice escanea previamente el documento abierto en busca de campos de formulario, por ejemplo cuando se carga un conjunto de firmas. Esto se hace para tener un acceso más rápido a dicha información más tarde, por ejemplo al guardar. Sin embargo, cuando la búsqueda se ejecuta antes de que el documento se haya rellenado por completo (tal vez porque forma parte de una macro), ¡el contenido de un campo de formulario originalmente vacío podría considerarse un resultado de búsqueda válido! Al desactivar el almacenamiento en caché de los resultados de búsqueda, evitará este comportamiento y hará que eSignatureOffice busque la información sólo cuando sea necesario, en lugar de hacer el escaneo preliminar.
  • En el campo de texto grande «Cola de la cadena», puede escribir la extensión del archivo y/u otros caracteres, que se supone deben escribirse al final de toda la cadena. Si ha creado múltiples búsquedas, éstas se añadirán a este campo y así al final - dependiendo de sus otros ajustes - la cola de la cadena se convertirá en la cadena completa.


¡Cuidado!

Cuando cambie dinámicamente el nombre de un archivo o lo guarde, no tendrá que añadir la extensión «.pdf», ya que eSignatureOffice añadirá «.pdf» automáticamente, si no son los 4 últimos caracteres de su cadena.

 

¡Cuidado!

Si eliminas el último bloque de búsqueda, pero mantienes activa la opción de renombrado dinámico (por ejemplo en una macro), esto podría significar que el programa intentara guardar un fichero sin ningún nombre, cuando se activara la macro. Para evitar este problema, el prefijo del último bloque de búsqueda activo se transferirá a la cola del campo de cadena con el fin de garantizar la existencia de cualquier nombre de archivo. Si aún así desea tener una cadena completamente vacía, ¡tendrá que borrarla manualmente!



Ejemplo de guía para la denominación dinámica de archivos

Las siguientes líneas le mostrarán un ejemplo aplicado de la función de nomenclatura dinámica/procesamiento de datos.

En este ejemplo, el nombre del fichero debe constar siempre de dos números, que pueden encontrarse siempre en el documento utilizado. Se trata de un identificador de cliente y de un identificador de contrato.

Al final, el resultado debería ser el siguiente:

Contrato_ID Cliente-ID Contrato.pdf

 

  • Azul significa la parte estática del nombre del archivo, que puede implementarse como un simple prefijo ( (Aquí, también podría añadir una ruta de archivo como «C:Contratos» para un sistema de carpetas dinámico).
  • Rojo indica las partes dinámicas del nombre del archivo que se buscarán en el contenido del documento.
  • Verde significa la cola de la cadena, que en este caso sencillo es sólo la extensión de archivo «.pdf».

Imagine que esto es la parte de un documento:


Como primer paso, añada el prefijo estático «Contrato_» y el texto de búsqueda «ID de cliente» a un nuevo bloque de búsqueda. Dado que este ID de cliente no tiene una longitud fija, establezca el número de caracteres en un valor alto, como 99 por ejemplo, y active la casilla de verificación «Extraer sólo la primera palabra» para garantizar que sólo la primera cadena de caracteres se utilizará como resultado de la búsqueda en lugar de los 99 caracteres completos. Dado que en el documento la siguiente «palabra» después de «ID de cliente» (es decir, la siguiente cadena de caracteres sin espacios vacíos) será el número de ID, se añadirá como parte del nombre del archivo directamente después del prefijo «Contracto_».


En el segundo paso, añada un nuevo bloque de búsqueda y escriba sólo un guión «-» como prefijo. Como está añadiendo este bloque de búsqueda en la segunda posición, este guión se escribirá en el nombre del archivo después del ID de cliente pero antes del ID de contrato, que aparecerá en el siguiente paso. Para ello, introduzca «ID de contrato» como texto de búsqueda. Como en nuestro ejemplo, el ID del contrato también tendrá una longitud de exactamente 5 dígitos, puede establecer el número de caracteres de caracteres en el campo «Después» en «5».


Básicamente, ya ha terminado y puede confirmar sus reglas y ajustes de procesamiento dinámico haciendo clic en el botón «Aceptar».

The final file name in our example will be: "Contract_982344553434-82353.pdf" and it has been assembled with the following details:

El nombre final del archivo en nuestro ejemplo será: "Contrato_982344553434-82353.pdf" y se ha elaborado con los siguientes detalles:

Contracto_

982344553434-82353.pdf
Prefijo del texto de búsqueda «ID de cliente»Resultado del texto de búsqueda «ID de cliente»Prefijo del texto de búsqueda «ID del contrato»Resultado del texto de búsqueda «ID de contrato»Extensión de archivo (añadida automáticamente)




 


Soporte ZUGFeRD

Desde la versión 5.4, eSignatureOffice también admite el tipo de documento ZUGFeRD con el formato estándar alemán de factura electrónica. Esto significa que puede acceder a todos los datos de la factura del XML incrustado en el PDF, que se corresponde con este estándar. Para la configuración, se recomienda cargar un documento de ejemplo adecuado, porque sólo entonces, las etiquetas XML del documento cargado se pueden mostrar en la lista de vista previa. Para leer cualquiera de estos valores, añada una nueva cadena de búsqueda haciendo clic en el botón «Añadir» y, a continuación, active la casilla «ZUGFeRD» situada en la parte inferior derecha del menú para ver la siguiente imagen:

 

Ahora, escriba la etiqueta XML, que desea utilizar, en el campo de texto de búsqueda. Si ya has cargado un documento ZUGFeRD, la lista desplegable te mostrará todas las etiquetas/nodos XML disponibles, mientras que el campo inferior te mostrará también el resultado de la búsqueda de la opción seleccionada.

 

Al igual que para otras búsquedas inteligentes de texto (como se explicó al principio de esta página), también se puede definir un Texto por defecto, en caso de que el valor ZUGFeRD deseado no se encuentre en el documento cargado. La opción Intercambiar Texto también está disponible para definir un valor de retorno estático, si el valor ZUGFeRD buscado ha sido encontrado.


En la lista, encontrará tres tipos diferentes de opciones:

Nodos secundariosAl seleccionar un nodo secundario sólo se leerá su valor.
Nodos principalesAl seleccionar un nodo principal se leerán los valores de todos sus nodos hijos juntos.
Nombres de las etiquetas

Al seleccionar sólo un nombre de etiqueta, se leerá el valor de todos los nodos que compartan este nombre de etiqueta.

 



¡Cuidado!

To enable ZUGFeRD information being read from a document, make sure, that the search engine "BLS" is set in the File handling tab in the administration menu!

Para poder leer la información de ZUGFeRD de un documento, asegúrate de que el motor de búsqueda «BLS» está configurado en la pestaña Manejo de archivos del menú de administración.

 


Here an example and then explanations of the three different kinds of choices:

 

  


Para leer el código postal de la dirección de entrega, es necesario declarar el nodo secundario correspondiente incluyendo todos sus nodos padre:


SpecifiedSupplyChainTradeTransaction/ApplicableSupplyChainTradeDelivery/ShipToTradeParty/PostalTradeAddress/PostcodeCode

Wert:   75180



Si desea obtener la dirección de entrega completa, puede compilarla a partir de los distintos nodos hijos, o bien leer directamente el nodo principal:


SpecifiedSupplyChainTradeTransaction/ApplicableSupplyChainTradeDelivery/ShipToTradeParty/PostalTradeAddress
 
Wert:   75180
		Bahnhofsstraße 1
		Pforzheim
		DE


 

Seleccionando sólo el nombre de etiqueta "Código postal", se leerán todos los valores de todos los nodos con este nombre. Los resultados aparecerán en el mismo orden en el que se encuentran en el XML.

PostcodeCode
 
Wert:   70329
		76229
		75180