Ejemplo: Convertir Excel en JSON
En este ejemplo se muestra cómo crear un documento JSON a partir de un archivo de Excel con MapForce. El libro de Excel de origen consta de dos hojas de cálculo: Office y Staff. La hoja de cálculo Office contiene información sobre la dirección de la empresa, mientras que Staff contiene la lista de todos los empleados.

Hoja de cálculo Staff
Los requisitos específicos son estos:
1.Extraer datos del archivo de Excel y convertirlos en un documento JSON.
2.El archivo JSON debe especificar, para cada empleado, si su extensión telefónica puede compartirse para contratos externos. Solo se pueden compartir externamente las extensiones telefónicas de los empleados de los departamentos Marketing y Administration .
3.El número de acciones de cada uno de los empleados se debe indicar en el archivo JSON como valor numérico, incluyendo el cero. Si no se conoce, las acciones deben indicarse como null en el archivo JSON.
La imagen siguiente ilustra la asignación que se encarga de obtener el objetivo descrito. Esta asignación está disponible en la siguiente ruta de acceso: <Documentos>\Altova\MapForce2027\MapForceExamples\\Excel_Company_To_JSON.mfd.

Excel_Company_To_JSON.mfd
Como se ve en la imagen, la asignación consta de un componente Excel de origen y un componente JSON de destino. Observe que las dos hojas de cálculo del archivo Excel están en el componente Excel de origen. El nombre de la empresa se extrae de la hoja de cálculo Office, mientras que el resto de los campos se extraen de la hoja de cálculo Staff. Para ver cómo está configurada la asignación para leer los datos de las filas de cada hoja de cálculo haga clic en el botón
correspondiente. A continuación se muestra la configuración para la hoja de cálculo Staff.

La configuración anterior indican a la asignación que lea las filas dinámicamente empezando por la número 1 y hasta el final. La primera fila es un encabezado con los nombres de las columnas, por lo que la casilla La primera fila es el encabezado está marcada. El cuadro de diálogo también indica el rango de columnas A a G y el nombre con el que cada columna aparece en la asignación. Para más información sobre componentes Excel, consulte Microsoft OOXML Excel 2007+.
El componente de destino es una estructura JSON. Puede añadir componentes JSON a la asignación como se describe en Agregar archivos JSON como componentes de asignación. La estructura se ajusta al esquema JSON, employees.schema.json, que se encuentra en la misma carpeta que la asignación. Para más información sobre cómo configurar el componente JSON consulte Configuración de componentes JSON.
En la asignación también hay varios componentes intermedios. El primero es un componente de asignación de valores. Este componente decide, en función del departamento, si un número de teléfono se puede compartir de forma externa. Esta acción se corresponde con el segundo de los requisitos empresariales descritos más arriba. Puede consultar la configuración del componente de asignación de valores haciendo doble clic en su barra de título:

La configuración anterior puede resumirse de la siguiente manera: Si Department es «Administration» o «Marketing», el valor devuelto es true. De lo contrario, el valor devuelto es false. El valor true o false así computado luego se escribe en la propiedad JSON de destino. Para más información sobre los componentes de asignación de valores, consulte el apartado Usar asignaciones de valores.
Por último, la asignación usa la función exists, cuyo objetivo es determinar, dentro del contexto de cada fila, si existe un valor Shares en el archivo Excel de origen. Esta función devuelve el booleano true si el valor existe y false en caso contrario. El valor resultante, sea true o false, se da a continuación como entrada a una condición if-else. Si el valor es false, entonces se pasa al elemento de destino Shares as null una cadena vacía suministrada por una constante. Este valor vacío se convertirá en null en el archivo JSON resultante porque este es el tipo de datos del elemento Shares as null, como indica el icono
.
Si el valor de las acciones del empleado es numérico, ya no cumplirá la condición if-else. En su lugar, se escribirá en Shares as number (que es de tipo numérico
), a través de una conexión diferente.
Para más información sobre cómo agregar funciones a una asignación consulte Agregar una función a la asignación. Las condiciones if-else se tratan con más detalle en Filtros y condiciones.
Ejecutar la asignación
Para generar una vista previa del archivo generado en MapForce abra el panel Resultados. En la imagen siguiente solo se ve un fragmento del archivo JSON resultante.

Resultado de la asignación
Hay dos maneras de guardar el resultado de la asignación en un archivo:
•En el menú Resultados, haga clic en Guardar el archivo de salida.
•Haga clic en el botón de la barra de herramientas
(Guardar resultado generado).
Automatización con MapForce Server
Si tiene una licencia para MapForce Server también puede ejecutar la asignación desde la línea de comandos tanto en Linux como en Windows. Recuerde que la ejecución de asignaciones en servidor suele requerir varios pasos más, como se explica en Preparar asignaciones para ejecutarlas en servidores. Estos son los pasos necesarios para ejecutar esta asignación en concreto en un servidor:
1.Haga clic con el botón derecho en la asignación y seleccione Configuración de la asignación del menú contextual. Desactive la casilla Convertir las rutas de acceso en absolutas en el código generado y guarde la asignación.
2.En el menú Archivo, haga clic en Compilar en archivo de ejecución de MapForce Server. Esto genera un archivo .mfx ejecutable en el directorio <Documentos>\Altova\MapForce2027\MapForceExamples\.
3.Copie el archivo .mfx generado en un directorio del equipo servidor (al que llamaremos "directorio de trabajo").
4.Copie el archivo Excel de <Documentos>\Altova\MapForce2027\MapForceExamples\\Nanonull Inc.xlsx al directorio de trabajo del equipo servidor.
5.Abra una terminal y cambie el directorio actual al directorio de trabajo.
6.Ejecute MapForce Server con el siguiente comando. Ajuste mapforceserver_exec según requiera su sistema operativo para que sea la ruta de acceso al ejecutable de MapForce Server.
mapforceserver_exec run Excel_Company_To_JSON.mfx |
Al ejecutar la asignación en el servidor también puede ejecutar asignaciones como una llamada API o como un trabajo de FlowForce, sea puntualmente o de forma recurrente. Para más información consulte el apartado Compilar asignaciones en archivos de ejecución de MapForce Server.