Ordenar con variables
En algunos casos, puede ser necesario agregar variables intermedias para conseguir ciertos resultados. En el diseño de asignación que aparece a continuación, se extraen registros de un archivo XML y estos se orden con ayuda de variables intermedias. Este ejemplo viene acompañado de un diseño de asignación de datos ubicado en esta ruta de acceso: <Documentos>\Altova\MapForce2025\MapForceExamples\Altova_Hierarchical_Sort.mfd.
Altova_Hierarchical_Sort.mfd
Esta asignación lee datos de un archivo XML de origen llamado Altova_Hierarchical.xml y los escribe en un archivo XML de destino. Como puede ver, el XML de origen contiene información sobre una compañía ficticia. La compañía se divide en oficinas. Las oficinas se dividen en departamentos y, a su vez, los departamentos están compuestos por empleados.
El componente XML de destino, PersonList, contiene una lista de registros Person. El elemento Details tiene la función de almacenar información sobre la oficina y el departamento al que pertenece cada empleado.
El objetivo de esta asignación es extraer todos los empleados del XML de origen y ordenarlos por apellido y por orden alfabético. Además, el nombre de la oficina y del departamento al que pertenece cada empleado debe escribirse en el elemento Details.
Estos son los componentes necesarios para conseguir el objetivo de la asignación:
1.La función concat. En esta asignación, esta función devuelve una cadena con el formato Office(Departament). Toma como entrada el nombre de la oficina, el nombre del departamento y dos constantes que suministran los corchetes inicial y final. Consulte también Agregar una función a una asignación.
2.Una variable intermedia. El papel que desempeña es recopilar todos los datos de cada empleado en el mismo contexto de asignación. La variable consigue que la asignación busque el departamento y la oficina de cada empleado, en el contexto de cada empleado. Es decir, la variable recuerda el nombre de la oficina y del departamento al que pertenece cada empleado. Sin la variable, el contexto sería incorrecto y la asignación produciría resultados no deseados (consulte cómo se ejecuta una asignación de datos en Reglas y estrategias de asignación de datos). Tenga en cuenta que la variable reproduce la estructura del archivo XML de destino (usa el mismo esquema XML). Esto permite conectar el resultado del componente de ordenación con el componente de destino por medio de una conexión de copia total. Consulte las secciones Usar variables y Conexiones de copia total para obtener más información.
3.Un componente de ordenación que ordena los datos. Observe que el criterio de ordenación del componente de ordenación está conectado al elemento Last de la variable, lo cual permite ordenar todos los registros por apellido.