Altova MapForce 2023 Enterprise Edition

La ventaja principal de los componentes FlexText es que dividen archivos de texto en fragmentos y permiten asignar elementos a otros componentes de destino. Las plantillas FlexText también se pueden usar como componentes de destino y así reunir varios archivos en uno solo. No obstante, este último uso es algo más complicado y requiere muchas pruebas hasta alcanzar el resultado deseado.

 

Al usar un componente FlexText como componente de destino, se revierten las operaciones previamente definidas en él. En lugar de dividir el archivo en varias secciones, se reconstituye el archivo.

 

Es decir, por lo general se lleva a cabo (de abajo a arriba) la operación inversa a las operaciones definidas en la plantilla FlexText cuando esta se utiliza como componente de destino:

 

una división pasa a ser una combinación (p. ej. una asignación a una división repetida delimitada por comas pasa a ser una combinación de elementos separados por comas).

una operación Guardar pasa a ser una operación Cargar.

y un conmutador pasa a ser una operación "elegir primera coincidencia".

 

 

Cuando use plantillas FlexText como componentes de destino en MapForce deberá tener en cuenta que:

 

Una vez creada la conexión entre un componente de origen y uno de los elementos de entrada de un componente FlexText, el origen de datos del componente FlexText se omite. Los datos suministrados por el componente de origen recién asignado tiene prioridad sobre el origen de datos original.

Si se asigna texto a un contenedor Guardar como CSV/FLF, el separador se conserva. No obstante, el texto se puede truncar si se produce una división de longitud fija en un nodo situado encima del nodo Guardar como CSV/FLF.

Las divisiones de ancho fijo truncan la sección izquierda/superior si Base de la división=cabeza o truncan la sección derecha/inferior si Base de la división=cola a la longitud predefinida. La sección truncada tiene la longitud definida en caracteres. Si el texto es demasiado corto, se insertan caracteres de espacio para rellenar la sección.

FlexText suele insertar separadores (o espacios en blanco para divisiones fijas) entre los elementos de una operación de división, pero no en las divisiones de tipo delimitado (basado en línea). La operación delimitado (basado en línea) no es una operación totalmente reversible. El texto delimitado puede aparecer en cualquier parte de la primera línea y se incluye en el texto. Por tanto, su inserción automática no es 100% segura.

oDelimitado (basado en línea): no se añade un separador a la primera línea si no existe.

oDelimitado (flotante): añade un separador entre las dos secciones.

La operación Conmutador no se puede invertir de manera significativa excepto en los casos más básicos. El conmutador busca en sus ramas la primera rama que contiene datos y utiliza/inserta estos datos. Solamente se asigna la primera conexión de una operación conmutador. Para transferir datos a los demás contenedores del conmutador, es necesario definir filtros para los demás conectores. Además es necesario duplicar el elemento primario conmutador para que cada elemento conmutador devuelva un solo elemento, que después se suministra a un elemento de división repetida para combinarlos todos.

Al crear una asignación a un secundario de un contenedor de división se descartan todos los resultados de la asignación excepto el último elemento. Solamente se conserva un resultado, incluso si se generaron varios resultados.

 

Cuando se utiliza un componente FlexText como componente de destino su comportamiento es similar al de algunos componentes de XML Schema:

 

una división repetida es similar a un elemento repetible.

una división única da lugar a un modelo de contenido sequence.

un conmutador da lugar a un modelo de contenido choice, donde cada caso es un elemento secundario posible.

una operación guardar crea un elemento de tipo simple.

© 2017-2023 Altova GmbH