En esta actividad, un flujo de trabajo lee los datos directamente desde una fuente y los escribe en un destino especificado. Es decir, pueden realizarse pasos automáticos que no requieren acción por parte del usuario.
Póngale un nombre a la actividad, por ejemplo, «Datos de factura recurrentes».
En la parte central de este diálogo, aparece cada asignación a destino que se ha añadido en líneas independientes. A la izquierda verá dos columnas, Tipo de destino y Campo/Variable, que hacen referencia al destino de los datos; y dos columnas a la derecha, Tipo de entrada and Entrada, que hacen referencia al origen de los datos.
Al añadir una asignación de datos, se muestran las opciones que puede seleccionar para el tipo de destino.
Tipo de destino/Campo/Variable
El destino es el resultado de la combinación de Tipo de destino y Campo/Variable. En el siguiente resumen puede ver detalles de qué Tipos de destino hay disponibles con qué Campos/Variables.
Destination type | Field/Variable | Significance |
Fill area on the document | The fill areas of forms that have been created in the template designer of DocuWare Forms are displayed. | Workflow activity writes the value to the form. If the fill area is linked to a form field, any existing values will be overwritten. |
Document index data | The index fields of the document are displayed in the workflow. | Workflow activity indexes the document in the workflow or changes its index data. |
Workflow global variable | The names of the variables that you have created in the Workflow Designer are displayed, e.g. Invoice number | Workflow activity populates values into a global variable that can then be used in multiple workflow steps. |
File cabinet | Open the dialog to select any file cabinet and index field. Documents can be specified via SQL. | Indexes a document in the workflow or changes its index data. Only one index field can be changed per data assignment. |
Index table – multiple columns | The index tables of the current workflow document are displayed. | Adds to the content of an index table in the current workflow document or replaces it completely or column by column. |
Index table – single column | The columns of the index tables in the current workflow document are displayed. | The workflow activity adds to an index table column in the current workflow document or replaces it completely or row by row. |
Solo se mostrarán los campos que son compatibles cuando se asignen datos entre las variables de flujo de trabajo y los campos de índice de un archivador. Por ejemplo, solo podrá asignar una variable numérica a un campo de índice numérico. Si, al asignar los datos, desea convertirlos a otro tipo, puede utilizar las siguientes funciones VBA: CDate, CDec, CInt, CStr. Si desea utilizar funciones VBA, consulte también la información sobre Workflow Expression Parser.
Tipo de entrada/Entrada
Elija un tipo de entrada del desplegable para especificar el origen de los datos. Consulte el resumen de orígenes de datos para saber qué tipos de entrada están disponibles y con qué entradas.
Entry type | Entry | Significance |
Fixed entry | Text | The workflow activity writes the entered value to the destination. |
Workflow | The names of the workflow system variables are displayed, e.g. the last decision maker | Writes a value from a system variable to the destination |
Workflow global variable | The names of the variables that you have created in the Workflow Designer are displayed, e.g. Invoice number | Writes a value from a global variable to the destination |
Arithmetic expression | Open the dialog to specify an arithmetic expression. | Writes a user-specific value to the destination, e.g. a combination of different variables |
Document index entry | Index fields of the file cabinet linked to the current workflow | Writes index data from the current workflow document to the destination |
Locale data connection (cloud) External data (on-premises) | Open the dialog for specifying the database and table of external data | Writes data from an external source to the destination. For DocuWare On-premises, the entry type is External data; for DocuWare Cloud, it is Local data connection. |
File cabinet | Dialog for selecting any file cabinet, index field, or document | The workflow activity writes index data from the selected file cabinet to the destination, for example to index tables: Match the line items of an index table with entries of a file cabinet or transfer values from data records and documents of the file cabinet. |
Index table | Open the dialog to specify an index table of the current workflow document. | Writes data from an index table to the destination. Only available for the index table destination type. |
Tenga en cuenta también la información sobre la Comparación de variables en condiciones.
Indexar datos de tabla automáticamente
Puede rellenar o editar automáticamente la tabla de índice a partir de un documento, por ejemplo, para la facturación recurrente o para dar formato a datos existentes.
El documento de origen de los datos puede estar en el mismo archivador o en otro, o en una fuente de datos externa. Conéctese a la fuente de datos externa mediante el tipo de entradadatos externos (DocuWare in situ), o mediante el tipo de entrada Conexión de datos local (DocuWare Cloud).
Transferencia completa de una tabla de origen
Para transferir datos de una tabla de índice a otra en su totalidad, seleccione la entrada Tabla de índice > Varias columnas como destino de la asignación de datos.
Si se activa Remplazar para la asignación de datos, se eliminarán todas las filas existentes y se sustituirán con las nuevas. De lo contrario, las líneas se añaden como nuevas (consulte también los pasos 5 y 6). El procedimiento es el mismo en ambos casos:
Seleccione como destino la tabla de índice a la quiere transferir los datos y el tipo de entrada de Tabla de índice como el origen.
Ahora, configure el origen haciendo clic en el botón Editar en la parte derecha.
Seleccione el archivador y la tabla de índice. En el campo inferior, indique un filtro si lo necesita con una cláusula WHERE para limitar las entradas del origen.
En la ficha Filas, active la opción Aplicar todas las filas en orden fijo.
En la ficha Columnas, asigne cada columna del origen a una columna de origen de la tabla de destino.
Si la opción Remplazar no está activada para la asignación, los datos de la tabla de origen se añadirán a la tabla de destino (consulte también el punto 6).
Si, por el contrario, la opción Remplazar está activada para la asignación, los datos de la tabla de destino se remplazarán con los datos de la tabla de origen (consulte el punto 6):
En el siguiente ejemplo, todas las columnas están asignadas a la tabla de destino, sin embargo, algunas columnas de origen están vacías. En el destino, las columnas vacías también se transfieren y se borran los datos anteriores.
Si solo se asignan una columna de destino y una columna, las columnas que no se hayan asignado se borrarán:
Por tanto, cuando quiera transferir una o varias columnas desde la tabla de origen, use la opción Compilar con código coincidente para evitar la pérdida de datos (consulte el siguiente punto).Complete la configuración con Aceptar. En el último paso, especifique si desea remplazar las filas existentes en la tabla de destino.
El filtro de filas no está disponible en este caso, porque se transfieren todos los valores.
Transferencia de valores individuales desde la tabla de origen
El destino es el mismo que en el paso anterior Tabla de índice > Varias columnas. Esta vez, sin embargo, se seleccionan específicamente valores individuales adjuntando condiciones a la transferencia.
La opción Remplazar siempre está activada para compilar columnas por código coincidente.
Seleccione como destino la tabla de índice a la quiere transferir los datos y el tipo de entrada de Tabla de índice como el origen.
Ahora, configure el origen haciendo clic en el botón Editar en la parte derecha.
Seleccione el archivador y la tabla de índice. En el campo inferior, indique un filtro con una cláusula WHERE para limitar las entradas del origen.
En la ficha Filas, active la opción Compilar filas por código coincidente. Introduzca ahora uno o varios criterios:
Por ejemplo:
La columna de destino «Número de elemento» es igual a la columna de origen «Número de elemento»
Lo que significa que: si el número de elemento en el destino y el origen es el mismo, se transferirán los valores de las columnas especificadas en la ficha «Columnas».Especifique un orden de clasificación, ya que se utilizará la primera coincidencia si hay varias. Por ejemplo, si el número del elemento está duplicado en el origen, la tabla se ordenará según el orden especificado aquí y la entrada se transferirá desde ella.
En la ficha Columnas asigne al menos una columna de la tabla de origen a una columna de la tabla de destino.
Las columnas utilizadas en los criterios de código coincidente no pueden asignarse aquí.
A diferencia de la transferencia sin código coincidente, los valores de las columnas de destino no asignadas permanecen inalterados, tal y como se muestra en estos ejemplos:
El código coincidente es «ID de columna es igual a ID de columna» Se asigna una columna y se sustituye una columna del destino.
En el siguiente ejemplo, se asignan dos columnas. De este modo se sustituyen dos columnas en el destino y las demás columnas del destino permanecen inalteradas:
Se asignan todas las columnas, algunas columnas del origen están vacías; las columnas correspondientes también se vacían en el destino:
Se asigna una columna, se utiliza un filtro para seleccionar las filas 1 y 3 para la transferencia; para más información sobre el filtrado, consulte el punto 8.Complete la configuración del origen con Aceptar.
Use filtros para limitar las filas a las que se van a transferir valores. Para ello, seleccione la opción Repetir solo filas con estas condiciones en el diálogo de filtro. De este modo, solo se modifican las filas a las que se aplican los criterios especificados en el área Activador.
Nota: Puesto que se accede en el filtro a los valores de las columnas de la tabla de destino, se puede especificar, por ejemplo, que la columna «Impuesto sobre las ventas» solo se rellene si la columna «Tipo impositivo» no contiene «0 %»
También puede filtrar por la columna del sistema Número de fila . Así resulta más sencillo cambiar los valores solo en las filas deseadas.
Tratamiento de valores NULL durante la búsqueda de coincidencias: Al asignar datos de tabla por código coincidente, fila por fila, se ignoran los valores NULL en las columnas de coincidencia especificadas en ambos lados (destino y origen). Esto significa que se omitirá la asignación de estas líneas.
Edición de los valores de columnas individuales
Utilice la opción Tabla de índice: una columna para copiar datos de una tabla de origen a esta columna o para sustituirla. Los pasos son los mismos que en Varias columnas, con la diferencia de que en el primer paso se selecciona directamente la columna de la tabla, con lo que se ahorra un paso.
Además, puede utilizar la opción «una columna» para escribir valores específicos en la columna de una tabla de índice del documento en el flujo de trabajo. Con este fin aparecen las opciones siguientes:
Una entrada fija
Un valor derivado de una expresión aritmética (consulte también Expresión aritmética)
Una entrada de índice del mismo documento
Si utiliza una expresión aritmética, puede incluso seleccionar celdas de columna de la misma tabla de índice. Conecte la expresión aritmética con la columna de la tabla «Número de fila» (SYS_ROW_NUMBER), por ejemplo, para combinar el número de fila y la descripción del elemento:
Otros aspectos de la asignación de datos en tablas de índice:
Definición de condiciones con expresiones: Si quiere buscar coincidencias de valores que deban procesarse primero, también puede indicar las condiciones de la coincidencia de datos en las tablas con expresiones aritméticas, por ejemplo, para extraer caracteres específicos o concatenarlos con entradas fijas o diferentes valores de índice/columna.
Para ello, la expresión aritmética debe devolver «true» o «false» (booleano), parecido a las condiciones if/else. Si devuelve un valor «true», la condición se completa; si es «false», no.
Cálculo automático de valores en varias coincidencias: combina las opciones Procesar todas las filas coincidentes y Añadir los valores nuevos a los existentes (en el siguiente diálogo de Asignar datos ) para calcular automáticamente los valores de las columnas decimales en varias coincidencias a la hora de asignar datos.
Por ejemplo, puede usarlo para determinar la cantidad de artículos que no se entregaron de una vez y que aparecen en varios albaranes. Una vez asignado el total, puede realizar una coincidencia a tres bandas.
Base de datos externa como fuente de datos
Si desea leer datos externos de una base de datos para utilizarlos en el flujo de trabajo, aquí puede definir las correspondientes opciones de configuración.
Base de datos
Configuración de base de datos
Seleccione la configuración de base de datos fuente que desea en la lista desplegable.
Tabla
Seleccione la tabla que desea en la lista desplegable.
Columna
Seleccione la columna que desea en la lista desplegable.
Para habilitar la sincronización rápida de datos entre la nube y el sistema in situ, instale Local Data Connector en su sistema en la nube. Esta operación es posible si se instaló DocuWare Desktop Apps desde una organización en la nube. En los sistemas in situ, Local Data Connector no está disponible. En el diálogo Datos externos, Local Data Conector le permite seleccionar una conexión a una base de datos local.
Seleccionar instrucción
Cláusula WHERE
Edite las instrucciones SQL en el editor.
Si la clasificación no admite determinados caracteres en una consulta a la base de datos, proceda de la siguiente manera: En la vista, escape el valor introducido con el parámetro N. Como alternativa, puede guardar el valor en una variable y utilizar dicha variable en la consulta, en cuyo caso el parámetro N se añadirá automáticamente.
Operadores
Para agregar un operador a una instrucción, con el botón derecho haga clic en el operador.
Variables
Para agregar una variable a una instrucción, en primer lugar seleccione la ficha correspondiente al grupo de variables que desea: variables de sistema, variables globales o campos de tabla. Haga clic en la variable o el campo que desea en la ficha. Las opciones de los campos de tabla pueden variar en función de la configuración de Base de datos > Tabla o Columna.
Vista previa de instrucción SQL
Muestra la instrucción que se ha generado.
Archivador como fuente de datos:
Si se selecciona Archivador como tipo de entrada para la asignación de datos, aquí se pueden definir las pertinentes opciones de configuración.
Archivador
En la lista desplegable, seleccione el archivador.
Campo
En la lista desplegable, seleccione el campo necesario.
Seleccionar instrucción
Cláusula WHERE
Edite las instrucciones SQL en el editor.
Si la clasificación no admite determinados caracteres en una consulta a la base de datos, proceda de la siguiente manera: En la vista, escape el valor introducido con el parámetro N. Como alternativa, puede guardar el valor en una variable y utilizar dicha variable en la consulta, en cuyo caso el parámetro N se añadirá automáticamente.
Operadores
Para agregar un operador a una instrucción, con el botón derecho haga clic en el operador.
Variables
Para agregar una variable a una instrucción, en primer lugar seleccione la ficha correspondiente al grupo de variables que desea: variables de sistema, variables globales o campos de índice. Haga clic en la variable o el campo que desea en la ficha. Las opciones de los campos de tabla disponibles pueden variar en función de la configuración de Archivador.
Vista previa de instrucción SQL
Muestra la instrucción que se ha generado.
Expresión aritmética
Las expresiones aritméticas son expresiones de Visual Basic para Aplicaciones (VBA) y .NET, además de adaptaciones concretas para expresiones de DocuWare. Puede consultar información sobre las funcionalidades de las expresiones aritméticas en las notas de Workflow Expression Parser.
Para usar expresiones aritméticas existe un diálogo aparte con un editor en la parte izquierda y los operadores y variables que puede seleccionar a la derecha.
Para añadir una variable a una expresión aritmética, primero, seleccione la ficha del grupo de variables pertinente: Variables de sistema, Variables globales, Tablas de índice, o Campos de formulario. Pulse la variable o el campo que quiera en la pestaña.
Las fichas y variables que tiene disponibles dependen según la función que use o de la configuración de la actividad implicada.
Alinee fuentes de diferentes tablas basadas en expresiones aritméticas. Esto le permite eliminar el origen de errores a la hora digitalizar facturas u otros documentos.
Ejemplos:
Estas expresiones comparan dos cadenas y estiman su similitud:
Peter Peterson _~ Peter Pitersen = 93%
S523-A336MS ~ S523-A336M5 = 95%
Estas expresiones modifican una cadena siguiendo un patrón:
Eliminar todos los números de una cadena siguiendo un patrón
\d:Something123Anything => SomethingAnythingDividir una cadena de entrada con el patrón:
\d+:Something123Anything => Something, Anything
Comprobar si una cadena contiene el patrón:
[A-Z0-9]\d{3}-\d{3}:
A123-456 => true
Uso de expresiones aritméticas con tablas de índice
Puede usar valores de tablas de índice en las expresiones aritméticas. Si accede al valor de una columna de la misma tabla de índice que desea modificar, obtendrá un valor exacto, en concreto, el valor de la misma fila. Para ello, seleccione la columna de la ficha «<Table name> cells».
Por otro lado, si accede a la columna de una tabla de índice de otra tabla, obtendrá una lista de todos los valores de dicha columna. Para ello, seleccione la columna en la ficha Columnas de la tabla.
Es posible leer el valor de otra columna de la misma tabla, transformarlo mediante una expresión aritmética si es necesario, y luego escribirlo en la columna de destino. Puede consultar más información en Edición de los valores de columnas individuales.
Inserción de la columna del sistema «Número de línea»
En la expresión aritmética puede usar la columna de sistema «SYS_ROW_NUMBER». «SYS_ROW_NUMBER» devuelve el número de la fila correspondiente de una tabla de índice, que puede usar para concatenar valores, hacer cálculos o recuperar un valor de otra tabla de la misma fila. La primera fila de cada tabla siempre se considera la fila número 1.
Esto es especialmente relevante si trabaja con un indexador para determinar una línea, ya que en este el recuento empieza desde 0.
Sin embargo, el recuento empieza en 1 si usa la columna de sistema «SYS_ROW_NUMBER», por tanto, para obtener la misma línea, hay que restar 1 > «...[SYS_ROW_NUMBER]-1».
Por ejemplo:
Está editando una tabla llamada «Ejemplo» (nombre interno "EJEMPLO") y quiere insertar valores de otra tabla que se llama «Elementos nuevos» (nombre interno "ELEMENTOS_NUEVOS") en la columna «Nombre». Los valores buscados se encuentran en la columna «Nuevo nombre» (nombre interno "NOMBRE_NUEVO").
Está usando un indexador para determinar los valores y la columna de sistema«SYS_ROW_NUMBER» para asignar los valores.
Generalmente, definiría esta expresión aritmética para la columna de destino:
DW_NEW_ITEMS[NEW_I_NAME](X)
Esto devuelve el valor de la columna «Nombre nuevo» de la tabla «Elementos nuevos» en la fila especificada. «X» indica qué entrada de la lista quiere devolver. Teniendo en cuenta que el indexador empieza en 0, «0» indicaría la primera línea.
Ahora necesita el valor de la misma fila de la tabla de origen para los campos de la tabla de destino. Por lo tanto, no se utiliza un valor fijo para el indexador, sino que se utiliza la nueva columna del sistema «SYS_ROW_NUMBER».
El problema es que si solo utiliza la columna del sistema «SYS_ROW_NUMBER», no obtendrá la fila deseada al principio:
DW_NEW_ITEMS[NEW_I_NAME](DW_EXAMPLE[SYS_ROW_NUMBER])
Esta expresión devuelve el valor de la siguiente fila de la columna «Nombre nuevo» de la tabla «Elementos nuevos». Es decir, si se procesa la primera fila de la tabla «Elementos de línea», por ejemplo, se devuelve el valor de la segunda fila de la tabla «Elementos nuevos».
Esto se debe a que «[SYS_ROW_NUMBER]» devuelve el valor «1» y la expresión efectiva es DW_NEW_ITEMS[NEW_I_NAME](1).
Para obtener el valor correcto de la misma fila hay que restar 1 a 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 «Nombre nuevo» de la tabla «Elementos nuevos».
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).
Comparación de variables en condiciones
Para comparar variables dentro de condiciones, tenga en cuenta lo siguiente. Los operadores siguientes están disponibles para comparar variables: =, >=, >, <, <=
Variables de fecha
Si se comparan variables con un valor de fecha fijo, la fecha debe definirse conforme a una de las notaciones siguientes:
cdate("YYYY/MM/DD")
cdate("YYYY-MM-DD")
cdate("YYYY.MM.DD")
Variables numéricas
Al comparar variables numéricas, todas deben tener la misma cantidad de decimales. Si deben compararse dos variables con una cantidad de decimales diferente, primero debe darles el mismo número de decimales mediante Asignación de datos y utilizando otra variable.
Ejemplo:
Desea comparar la Variable 1 y la Variable 2 aunque tengan una cantidad de decimales distinta.
1. Tiene lo siguiente:
Variable 1 (0 decimales)
Variable 2 (2 decimales)
Variable 3 (0 decimales)
2. Actividad de Asignación de datos:
Variable 3 = Variable 2*100
3. Resultado:
La Variable 1 y la Variable 3 ahora tienen el mismo número de decimales y pueden compararse entre sí en una condición.