Altova MapForce 2023 Enterprise Edition

El diseño de asignación que aparece más abajo corresponde al archivo DB_UserList.mfd situado en la carpeta <Documentos>\Altova\MapForce2023\MapForceExamples\. Esta asignación extrae registros de usuarios de una tabla de base de datos llamada "Users" y los escribe en un archivo XML. La columna de base de datos "Username" contiene el nombre y el apellido de una persona (p. ej. "Vernon Callaby"). Esta asignación tiene varios objetivos:

 

1.Crear un elemento Person nuevo por cada registro de la tabla "Users" en el archivo XML de destino.

2.Dividir el valor extraído del campo de base de datos "Username" en dos campos diferentes del archivo XML (First y Last).

3.Encontrar el número secuencial de cada registro comparado con el número total de registros presentes en la base de datos (p. ej. "Registro 1 de 4") y escribir esta información en el elemento Details.

mf_map_DB_UserList

DB_UserList.mfd

Como indica el diseño, para poder conseguir el primer objetivo debemos dibujar una conexión entre la tabla de origen "Users" y el elemento Person del archivo XML de destino. Esto permite crear un elemento nuevo Person por cada registro de la tabla de origen.

 

El valor del campo "Username" se pasa a las funciones substring-before y substring-after , que se encargan de extraer el texto situado antes y después del carácter de espaciado (" ") respectivamente. Así se consigue el segundo objetivo del diseño.

 

Y, por último, para conseguir el tercer objetivo es fundamental la función count. El resultado de esta función se pasa a una variable, que se encarga de almacenar este resultado en la asignación y servirlo a la hora de escribir el elemento Details de cada personal en el archivo XML de destino. Recuerde que por razones de eficacia los registros de base de datos se deberían contar una sola vez, así que definimos el ámbito de variable compute-when=once (véase Cambiar el contexto y ámbito de las variables).

© 2017-2023 Altova GmbH