Altova MapForce 2024 Enterprise Edition

Generar, compilar y ejecutar código

Inicio Anterior Inicio Siguiente

En este apartado se explica cómo generar código a partir de una asignación de datos y de un proyecto, así como cómo compilar y ejecutar el código generado. Existen situaciones en las que puede ser necesario modificar el código C#/C++/Java generado para poder integrarlo en su código personalizado. Para más detalles consulte Integrar código generado.

 

Generar código a partir de una asignación de datos

Para generar código a partir de un diseño de asignación (.mfd), siga estos pasos:

 

1.En el cuadro de diálogo Opciones (para C# y C++) o en las opciones de la asignación, vaya a la sección Generación y seleccione las opciones de generación de código relevantes. Para más detalles sobre la configuración de la generación de código en el cuadro de diálogo Opciones, véase el apartado Generación.

2.Haga clic en Archivo | Generar código en y seleccione el lenguaje de transformación correspondiente. Otra opción es seleccionar Archivo | Generar código en el idioma seleccionado. En este caso, el código se generará en el idioma que haya seleccionado en la barra de herramientas.

3.Seleccione el directorio de destino para los archivos que se deben generar y haga clic en Aceptar para confirmar. MapForce genera el código y muestra el resultado de la operación en la ventana Mensajes.

 

Generar código a partir de un proyecto (ediciones Professional y Enterprise)

Puede generar código C# a partir de proyectos de asignación (.mfp) que consistan en varios archivos de diseño de asignación (.mfd). Tenga en cuenta que para ello todos los archivos del proyecto deben ser compatibles con C#, es decir, todos sus componentes deben serlo también, como se explica en Funciones compatibles en el código generado.

 

Para generar código a partir de un proyecto de asignación, siga las instrucciones a continuación.

 

1.Abra el proyecto de asignación correspondiente a partir del cual quiere generar el código.

2.Haciendo clic con el botón derecho en el nombre del proyecto en la ventana Proyecto y entonces eligiendo el comando de menú Propiedades del menú contextual. Otra opción es hacer clic en el nombre del proyecto y seleccionar el comando Propiedades del menú Proyecto.

3.Revise y modifique la configuración del proyecto según proceda. Sobre todo debe comprobar que el lenguaje de destino y el directorio de salida están configurados correctamente. Después haga clic en Aceptar.

4.En el menú Proyecto haga clic en Generar código para todo el proyecto.

 

Independientemente del idioma seleccionado en el cuadro de diálogo Propiedades del proyecto, siempre puede optar por generar el código del proyecto en un idioma diferente, seleccionando el comando de menú Proyecto | Generar código en | <idioma>.

 

Los progresos y resultados de la generación de código aparecen en la ventana Mensajes. Por defecto, el nombre de la aplicación que se ha generado es igual al nombre de proyecto. Si el nombre del proyecto contiene espacios, éstos se convertirán en guiones bajos en el código generado. El código se genera por defecto en el directorio donde está ubicado el proyecto de MapForce, en el subdirectorio output.

 

Puede modificar el directorio de salida y/o el nombre del proyecto en el cuadro de diálogo Propiedades del proyecto. Si su proyecto de MapForce tiene carpetas, podrá cambiar las opciones de generación de código para cada una de las carpetas por separado: Haga clic con el botón derecho en una carpeta de interés y seleccione Propiedades del menú contextual. Sino todas las carpetas del proyecto heredan por defecto las opciones de generación de código del nivel superior. Para obtener más información sobre los proyectos, su configuración y los procedimientos relacionados con ellos, consulte el apartado Proyectos.

 

Información sobre los lenguajes de transformación

En este subapartado se describen las particularidades de generar código en diferentes lenguajes de transformación. Después se explica cómo compilar el código generado en C++, C# y Java y ejecutar la aplicación. También puede generar código en XSLT 1-3 y XQuery. Para más información consulte el apartado Generación de código.

 

Código C++ y C#

Por lo general, generar, compilar y ejecutar los códigos C++ y C# funciona de la misma manera. En las subsecciones más abajo se describen los procedimientos generales.

 

Una vez haya generado el código C++ o C#, la solución incluirá los siguientes componentes:

 

Los archivos de solución (.sln) y de proyecto (.vcproj para C++ y .csproj para C#) que se pueden abrir con Visual Studio.

Varias bibliotecas firmadas por Altova que la asignación de datos requiere (todas empiezan con el prefijo Altova).

El proyecto de asignación principal (por defecto se llama Mapping) que incluye la aplicación de asignación de datos y sus archivos independientes.

 

Recuerde que puede cambiar el nombre predeterminado del proyecto de asignación en el cuadro de diálogo Configurar la asignación.

 

Después de haber generado el código C++/C#, los siguientes pasos consistirán en compilar el código y ejecutar la aplicación. Hay dos métodos principales para compilar el código generado: (i) en Visual Studio y (ii) en la línea de comandos (ver detalles más abajo). Tenga en cuenta que para crear código C# debe tener instalado el SDK correspondiente y una versión compatible de Visual Studio. Para obtener el paquete de instalación correspondiente a su sistema operativo y plataforma, consulte el sitio web de Microsoft.

 

 

Compilar el código generado en Visual Studio

Para compilar el código C++/C# generado, siga estos pasos:

 

1.Abra el archivo de solución generado (.sln) en Visual Studio. El nombre predeterminado del archivo de solución es Mapping.sln y su ubicación es el subdirectorio Mapping relativo al directorio donde guardó el código generado.

2.Seleccione la configuración de compilación correspondiente (p.ej. Depuración). Nota sobre el código C#: Recuerde que solamente las opciones Unicode admiten el conjunto de caracteres Unicode completo en XML y en otros archivos. Las compilaciones que no son Unicode trabajan con la página de código local de su instalación Windows.

3.En el menú Compilar haga clic en Compilar solución.

 

Como resultado de la compilación del código, se creará una aplicación de línea de comandos llamada Mapping.exe junto con sus archivos relacionados. La aplicación de asignación se encontrará en uno de los subdirectorios relativos al archivo .sln. El nombre del subdirectorio depende de la configuración de compilación seleccionada: p.ej. Depuración (C++), bin\Depuración (C#).

 

 

Compilar el código generado en la línea de comandos

Para compilar el código generado en la línea de comandos, cambie al directorio con el código generado y ejecute el siguiente comando:

 

devenv Mapping.sln /Build "Debug|AnyCPU" /Project Mapping

 

Este comando llama a Visual Studio y especifica el nombre del archivo de solución a compilar (en nuestro caso es Mapping.sln), la configuración deseada (en nuestro caso es Depuración y cualquier CPU), y el nombre del proyecto al que pertenece el archivo de solución (Mapping). Como resultado de la compilación del código, se creará una aplicación de línea de comandos llamada Mapping.exe junto con sus archivos relacionados. La aplicación de asignación se encontrará en uno de los subdirectorios relativos al archivo .sln. El nombre del subdirectorio depende de la configuración de compilación seleccionada: p.ej. Depuración (C++), bin\Depuración (C#).

 

 

Notas sobre la compilación de código C#

Además de llamar a Visual Studio, también puede llamar a .NET para compilar el código C# generado. Para ello siga estos pasos:

 

1.Antes de generar código C++ o C#, asegúrese de seleccionar la plataforma correcta en la sección Generación del cuadro de diálogo Opciones (en el menú Herramientas). Para más información consulte el apartado Generación.

2.Si su destino es .NET/.NET Core, configure las variables de entorno PATH y DOTNET_ROOT para que apunten a la ubicación en la que está instalado .NET/.NET Core. Esto evitará posibles problemas con los comandos de la línea de comandos.

3.Abra un símbolo del sistema y cambie al directorio con el código generado.

4.Ejecute el siguiente comando:

 

dotnet build Mapping\Mapping.sln --configuration Release

 

Este comando llama a .NET para que construya el archivo de la solución llamado Mapping.sln con la configuración de Release y crea un ejecutable llamado Mapping.exe junto con sus archivos relacionados en la carpeta de destino. El nombre de la carpeta de destino depende de la configuración seleccionada y la versión de .NET utilizada. En nuestro ejemplo el ejecutable se guardará en la carpeta bin\Release\et8.0.

 

 

Ejecutar la aplicación

Una vez haya compilado el código, o en Visual Studio directamente o en la línea de comandos, puede proceder a ejecutar la aplicación. Para ejecutar la aplicación, haga doble clic en Mapping.exe o llame al ejecutable desde la línea de comandos. Una vez haya ejecutado el ejecutable, el resultado de la transformación de la asignación se mostrará en la carpeta de destino (por defecto es la carpeta donde está almacenado el ejecutable).

 

Si compila el código generado en Linux, el ejecutable generado se llamará Mapping sin ninguna extensión. Para ejecutar el ejecutable, puede que tenga que usar este comando:

 

./Mapping

 

Código Java

Una vez haya generado el código Java, el proyecto Java incluirá los siguientes componentes:

 

Varias bibliotecas Java firmadas por Altova que la asignación de datos requiere (todas empiezan con el prefijo com.altova)

El paquete com.mapforce incluye la aplicación de asignación y sus archivos dependientes, entre los que se encuentran los dos archivos más importantes que especifican los puntos de entrada de la aplicación:

oLa aplicación de asignación de datos Java como aplicación de diálogo (MappingApplication.java)

oLa aplicación de asignación de datos Java como aplicación de consola (MappingConsole.java)

El archivo build.xml que se puede ejecutar con Apache Ant para compilar el proyecto y generar archivos JAR

 

Los nombres predeterminados de la aplicación de asignación y sus archivos dependientes en el paquete com.mapforce llevan el prefijo Mapping. Puede modificar el nombre predeterminado así como otras opciones en la configuración de la asignación.

 

Después de haber generado el código Java, los siguientes pasos consistirán en compilar y ejecutar el código. Hay dos métodos principales para compilar el código generado y ejecutar la aplicación: (i) en Eclipse y (ii) en la línea de comandos, usando Apache Ant. En las subsecciones más abajo se describen los procedimientos generales.

 

 

Compilar el código generado y ejecutar la aplicación en Eclipse

En este método se utiliza el flujo de trabajo de Eclipse. Para ello debe cumplir estas condiciones:

 

Debe tener instalado en su sistema un Java Development Kit (JDK), Eclipse y Apache Ant. Eclipse suele incluir una versión de Ant, pero también se puede instalar Ant por separado.

Para ejecutar Eclipse con OpenJDK, debe configurar la variable de entorno PATH de modo que incluya la ruta al directorio bin de JDK (p.ej. C:\Java\jdk-11.0.1\bin).

La variable de entorno JAVA_HOME debe apuntar a la ubicación de JDK.

La variable de entorno ANT_HOME debe apuntar a la ubicación de Apache Ant.

 

Una vez haya generado el código Java, el siguiente paso consiste en importarlo a Eclipse. Para ello siga estos pasos:

 

1.En el menú File haga clic en el comando Import y después seleccione General | Existing Projects into Workspace (proyectos actuales al espacio de trabajo).

2.Haga clic en Next para continuar.

3.Navegue hasta la carpeta donde guardó el código generado y después haga clic en Finish para finalizar. El proyecto Java creado con MapForce aparece ya en la vista del explorador de paquetes Package Explorer. Si no puede ver la vista Package Explorer, puede activarla con el comando de menú Window | Show View | Package Explorer.

 

Tenga en cuenta que, por defecto, el código se compila automáticamente cada vez que se detecta un cambio. También puede desactivar esta función y compilar el código cuando sea necesario (consulte la documentación de Eclipse para más información).

 

 

Una vez haya importado y compilado el código, el siguiente paso consiste en ejecutar la aplicación. En este subapartado explicamos algunos de los posibles métodos para solucionar problemas en la ejecución de una aplicación.

 

Método 1: Ejecutar el proyecto como aplicación

Este método le permite ejecutar su proyecto Java como aplicación de interfaz gráfica. Para ello siga estos pasos:

 

1.En la vista Package Explorer de Eclipse seleccione el archivo MappingApplication.java situado en el paquete com.mapforce.

2.En el menú de ejecución Run haga clic en el comando Run As | Java application para ejecutar el archivo como aplicación Java.

3.En la ventana de la aplicación MapForce que aparece haga clic en Start para iniciar la ejecución de la asignación de datos.

 

Método n°2: Ejecutar el proyecto como aplicación de consola

Este método le permite ejecutar su proyecto Java como aplicación de consola (línea de comandos). Para ello siga estos pasos:

 

1.En la vista Package Explorer de Eclipse seleccione el archivo MappingConsole.java situado en el paquete com.mapforce.

2.En el menú de ejecución Run haga clic en el comando Run As | Java application para ejecutar el archivo como aplicación Java.

 

 

Como resultado de haber ejecutado la aplicación, independientemente del método seleccionado, la aplicación Java ejecutará la transformación de asignación de datos y generará el archivo o los archivos de salida en la ruta de acceso de destino.

 

 

Compilar el código generado y ejecutar la aplicación en la línea de comandos

Para poder compilar y ejecutar el código generado en la línea de comandos, debe tener instalados los siguientes componentes y configurar las variables de entorno:

 

Debe tener instalado en su sistema un Java Development Kit (JDK) y Apache Ant.

La ubicación del directorio bin de Ant (p.ej. C:\apache-ant-1.10.5\bin) debe añadirse a la variable de entorno PATH. Esto le permitirá ejecutar Ant cómodamente sin tener que escribir la ruta completa al ejecutable en la línea de comandos.

La variable de entorno JAVA_HOME debe apuntar a la ubicación de JDK.

La variable de entorno ANT_HOME debe apuntar a la ubicación de Apache Ant.

 

Para compilar el código generado con Apache Ant, siga estos pasos:

 

1.Abra un símbolo del sistema y vaya al directorio donde se encuentra el código generado, incluido el archivo de compilación (build.xml).

2.Ejecute el siguiente comando:

 

ant jar

 

Este comando compilará el código generado y creará un archivo JAR (que tiene el nombre predeterminado Mapping.jar). El archivo JAR sirve para empaquetar archivos Java .class junto con sus metadatos y recursos relacionados. En nuestro caso, el archivo JAR está pensado para ser utilizado como un programa de Java ejecutable. Por tanto, el archivo de manifiesto del archivo incluye el punto de entrada de la aplicación (por defecto es com.mapforce.MappingConsole).

 

Para ejecutar la aplicación Java, ejecute el siguiente comando en el directorio donde se encuentra el archivo JAR:

 

java com.mapforce.MappingConsole Mapping.jar

 

Este comando inicia la máquina virtual Java, lanza la clase principal llamada com.mapforce.MappingConsole que hace referencia al punto de entrada de la aplicación Java y ejecuta el programa incluido en el archivo JAR llamado Mapping.jar. Como resultado, la aplicación Java ejecutará la transformación de asignación de datos y generará el archivo o los archivos de salida en la ruta de acceso de destino. Si desea lanzar la aplicación como una aplicación de interfaz gráfica, introduzca el siguiente valor como argumento de la clase principal: com.mapforce.MappingApplication. Ahora se abrirá una ventana emergente en la que podrá iniciar la transformación de asignación de datos.

 

 

Prevención de posibles problemas de memoria insuficiente

Las asignaciones de datos complejas que incluyen esquemas de gran tamaño pueden producir una gran cantidad de código, lo cual puede dar lugar a una excepción java.lang.OutofMemory durante la compilación con Ant. Para evitar las excepciones de memoria insuficiente, siga estos pasos:

 

1.Añada la variable de entorno ANT_OPTS que asigna al compilador ciertas opciones de Ant, como la opción de memoria. Configure su valor como se muestra a continuación: -server -Xmx512m -Xms512m.

2.Para asegurarse de que el compilador y el código generado se ejecutan en el mismo proceso que Ant, cambie el valor del atributo fork de build.xml a false.

 

Quizás sea necesario personalizar los valores, dependiendo de la cantidad de memoria disponible en su equipo y del tamaño del proyecto en el que esté trabajando. Para más información, consulte su documentación de Java VM.

 

Es posible que al ejecutar el comando ant jar reciba un mensaje de error parecido a este: "[...] el archivo contiene más de 65535 entidades". Para evitar este error, recomendamos utilizar Ant 1.9 o superior y, además, añadir zip64mode="as-needed" al elemento <jar> en el archivo build.xml.

 

 

Prevención de posibles problemas con las conexiones JDBC

Si ha generado código Java a partir de una asignación que se conecta a una base de datos mediante JDBC, puede que tenga que añadir el controlador JDBC como entrada classpath en la configuración actual. Si no lo hace, la ejecución de la aplicación podría resultar en un error. Para más detalles consulte el apartado Bases de datos.

 

© 2018-2024 Altova GmbH