Las expresiones son fórmulas o fragmentos de código que realizan cálculos, manipulan datos o automatizan tareas dentro de un flujo de trabajo. Están escritas en lenguajes como Visual Basic for Applications (VBA) y .NET, y pueden incluir personalizaciones específicas para DocuWare.
La incorporación de expresiones en un flujo de trabajo basado en documentos permite generar valores de forma dinámica, validar datos o crear lógica condicional basada en el contenido del documento, lo que posibilita un procesamiento más sofisticado y automatizado.
Lea todos los detalles sobre las expresiones en el PDF Workflow Expression Parser.
Uso del cuadro de diálogo de expresiones
En Workflow Designer de DocuWare hay disponible un diálogo específico para utilizar expresiones aritméticas.
Este cuadro de diálogo está disponible en las actividades Asignar datos o Condiciones, entre otras.
En la actividad Asignar datos, por ejemplo
Vaya a Primera asignación y establezca el Tipo de destino y la Entrada de destino.
Establezca el Tipo de origen como Expresión y haga clic en el enlace Escribir expresión:
.png)
Para añadir una variable a una expresión, seleccione la pestaña del grupo de variables que desee:
Variables del sistema
Variables globales
Tablas de índices
Haga clic en la variable o el campo para añadirlo a la expresión.
Las pestañas y variables disponibles varían según la función utilizada o los ajustes de la actividad en cuestión.
Alinear tablas con expresiones
Compare diferentes orígenes de tablas basándose en expresiones. Esto ayuda a eliminar posibles errores durante la digitalización de facturas u otros documentos.
Ejemplos:
Las siguientes expresiones comparan dos cadenas de texto y estiman su similitud:
Peter Peterson _~ Peter Pitersen = 93%
S523-A336MS ~ S523-A336M5 = 95%
Estas expresiones modifican una cadena de texto según un patrón:
Eliminar todos los números de una cadena de texto según un patrón
\d:Something123Anything => SomethingAnythingDividir una cadena de entrada utilizando el siguiente patrón:
\d+:Something123Anything => Something, Anything
Comprobar si una cadena de texto coincide con el patrón:
[A-Z0-9]\d{3}-\d{3}:
A123-456 => true
Uso de expresiones en tablas de índices de DocuWare
Puede utilizar valores de tablas de índices en las expresiones. Si accede a un valor de una columna de la misma tabla de índices que desea editar, obtendrá exactamente un valor, concretamente el valor de la misma fila. Para ello, seleccione la columna de la pestaña "Celdas de <nombre de la tabla>".
Por otro lado, si accede a una columna de tabla de índices de otra tabla, obtendrá una lista de todos los valores de esa columna. Para ello, seleccione la columna de la pestaña Columnas de tabla.
Es posible leer el valor de otra columna de la misma tabla, transformarlo mediante una expresión si es necesario, y luego escribirlo en la columna de destino. Para obtener más información, consulte Editar los valores de columnas individuales.
Insertar la columna del sistema "Número de fila"
La columna de DocuWare "SYS_ROW_NUMBER" devuelve el número de la fila correspondiente de una tabla de índices, que puede utilizar para concatenar valores, realizar cálculos u obtener un valor de otra tabla en la misma fila. La primera fila de una tabla siempre se considera como número de fila "1".
Esto es especialmente importante si trabaja con un indexador para determinar una fila, ya que en ese caso el conteo comienza en 0.
Sin embargo, si utiliza la columna del sistema "SYS_ROW_NUMBER", el conteo comienza en 1. Por lo tanto, para obtener la misma fila debe restar 1 > "...[SYS_ROW_NUMBER]-1".
Por ejemplo:
Está editando una tabla llamada "Ejemplo" (nombre interno "EXAMPLE") y desea insertar valores de otra tabla llamada "Nuevos artículos" (nombre interno "NEW_ITEMS") en la columna "Nombre". Los valores buscados se encuentran en la columna "Nuevo nombre" (nombre interno "NEW_I_NAME").
Utiliza un indexador para determinar los valores y la columna del sistema "SYS_ROW_NUMBER" para asignar los valores.
Normalmente, define la siguiente expresión aritmética para la columna de destino:
DW_NEW_ITEMS[NEW_I_NAME](X)
Esto devuelve el valor de la columna "Nuevo nombre" de la tabla "Nuevos artículos" en la fila especificada. "X" indica qué entrada de la lista desea devolver. Dado que el indexador comienza en 0, "0" significa la primera fila, por ejemplo.
Ahora necesita el valor de la misma fila en la tabla de origen para los campos de la tabla de destino. Por lo tanto, no utiliza un valor fijo para el indexador, sino la nueva columna del sistema "SYS_ROW_NUMBER".
El problema es que si utiliza solo la columna del sistema "SYS_ROW_NUMBER", inicialmente no obtendrá la fila deseada:
DW_NEW_ITEMS[NEW_I_NAME](DW_EXAMPLE[SYS_ROW_NUMBER])
Esta expresión devuelve el valor de la fila siguiente en la columna "Nuevo nombre" de la tabla "Nuevos artículos". Esto significa que si, por ejemplo, se procesa la primera fila de la tabla "Artículos", se devuelve el valor de la segunda fila de la tabla "Nuevos artículos".
Esto se debe a que "[SYS_ROW_NUMBER]" devuelve el valor "1" y la expresión efectiva es entonces DW_NEW_ITEMS[NEW_I_NAME](1).
Para obtener el valor correcto de la misma fila, debe restar 1 de la columna del sistema "SYS_ROW_NUMBER".
DW_NEW_ITEMS[NEW_I_NAME]((DW_EXAMPLE [SYS_ROW_NUMBER]-1))
Esto devuelve el valor de la misma fila en la columna "Nuevo nombre" de la tabla "Nuevos artículos".
Esto significa que si, por ejemplo, se procesa la primera fila de la tabla "Ejemplo", se devuelve el valor de la primera fila de la tabla "Nuevos artículos".
Esto se debe a que "[SYS_ROW_NUMBER]-1" devuelve el valor "0" y la expresión efectiva es entonces DW_NEW_ITEMS[NEW_I_NAME](0).