Altova MapForce Server 2024 

Preparar asignaciones para ejecución en servidor

Inicio Anterior Inicio Siguiente

Una asignación de datos diseñada y probada con MapForce puede hacer referencia a recursos (p. ej. bases de datos) situados fuera del equipo actual y en otro sistema operativo. Además, en MapForce, las rutas de acceso de las asignaciones de datos siguen por defecto las normas de Windows. Y, por último, el equipo donde se ejecuta MapForce Server puede ser compatible o no con las conexiones de base de datos con las que era compatible el equipo donde se diseñó la asignación de datos. Por todos estos motivos, será necesario preparar las asignaciones para ejecutaras en el entorno del servidor, sobre todo si el equipo de destino no es el mismo que el equipo de origen.

 

Nota:el término "equipo de origen" se usa para designar al equipo donde está instalado MapForce, mientras que "equipo de destino" se refiere al equipo donde está instalado MapForce Server o FlowForce Server. En los casos más sencillos, se trata del mismo equipo, pero en casos más complejos sería más posible ejecutar MapForce en un equipo Windows y ejecutar MapForce Server o FlowForce Server en un equipo Linux o macOS.

 

Por todo ello, lo más recomendable es comprobar que la asignación es válida (desde MapForce) antes de implementarla en FlowForce Server o compilarla en un archivo de ejecución de MapForce Server.

 

Si MapForce Server se ejecuta de forma independiente (y no junto con FlowForce Server), estas son las licencias que necesitará:

 

En el equipo de origen, necesitará la edición MapForce Enterprise o Professional para diseñar la asignación y compilarla en un archivo de ejecución de MapForce Server (.mfx).

En el equipo de destino, necesitará la edición MapForce Server o MapForce Server Advanced Edition para ejecutar la asignación de datos.

 

Si MapForce Server se gestiona desde FlowForce Server, entonces necesitará:

 

En el equipo de origen, necesitará la edición MapForce Enterprise o Professional para diseñar la asignación e implementarla en el equipo de destino.

Tanto MapForce Server como FlowForce Server deben tener asignada una licencia en el equipo de destino. MapForce Server se encarga de ejecutar la asignación de datos, mientras que FlowForce Server sirve la asignación en forma de trabajo, lo cual permite acceder a numerosas características (como la ejecución bajo demanda o programada, la ejecución como servicio web, control de errores, procesamiento condicional, notificaciones por correo electrónico, etc.).

FlowForce Server debe estar en funcionamiento en la dirección de red y puerto configurados. Es decir, el servicio "FlowForce Web Server" debe estar iniciado y configurado para aceptar conexiones de clientes HTTP (o HTTPS si corresponde) y no debe estar bloqueado por el servidor de seguridad. El servicio "FlowForce Server" también debe estar iniciado y en ejecución en la dirección y puerto designados.

Debe tener una cuenta de usuario de FlowForce Server con permiso para acceder a uno de los contenedores (al contenedor /public pueden acceder todos los usuarios que inicien sesión).

 

Consideraciones generales

 

Si tiene pensado ejecutar la asignación en un equipo de destino con una versión independiente de MapForce Server, deberá copiar todos los archivos de entrada a los que haga referencia la asignación al equipo de destino. Si por el contrario MapForce Server se gestiona desde FlowForce Server, entonces no es necesario copiar estos archivos a mano porque los archivos de instancia y de esquema se incluyen en el paquete que se implementa en el equipo de destino.

Si la asignación incluye componentes de base de datos que necesitan controladores de base de datos específicos, dichos controladores deberán estar instalados en el equipo de destino también. Por ejemplo, si la asignación lee datos de una base de datos de Microsoft Access, en el equipo de destino también deberá tener instalado Microsoft Access o Microsoft Access Runtime (https://www.microsoft.com/es-es/download/details.aspx?id=50040).

Cuando se implementa una asignación en plataformas que no son Windows, las conexiones de base de datos ADO, ADO.NET y ODBC se cambian automáticamente por JDBC. Las conexiones nativas SQLite y PostgreSQL se mantienen como tal y no requieren otra configuración. (véase también "Conexiones de BD", más abajo).

Si la asignación contiene llamadas a funciones personalizadas (por ejemplo, a archivos .dll o .class), dichas dependencias no se implementan junto con la asignación porque no se conocen antes del tiempo de ejecución. En dichos casos, cópielas a mano en el equipo de destino. La ruta de acceso a los archivos .dll o .class en el servidor debe ser la misma en el cuadro de diálogo "Opciones" de MapForce; por ejemplo:

inc-mapforce-dll-library

Algunas asignaciones leen varios archivos de entrada con ayuda de una ruta de acceso comodín. En este caso el nombre de los archivos de entrada no se conocen antes del tiempo de ejecución y, por tanto, no se implementan. Para poder ejecutar la asignación correctamente los archivos de entrada deben existir en el equipo de destino.

Si la ruta de salida de la asignación incluye directorios, estos deben existir en el equipo de destino. De lo contrario se generará un error al ejecutar la asignación. Para evitar eso, en MapForce los directorios que no existen se generan automáticamente si se habilita la opción Generar resultados en archivos temporales .

Si la asignación llama a un servicio web que requiere autenticación HTTPS con un certificado de cliente, el certificado debe transferirse al equipo de destino (véase Gestión de certificados digitales).

Si la asignación se conecta a bases de datos basadas en archivos (como Microsoft Access y SQLite), deberá transferir a mano el archivo de base de datos al equipo de destino o guardarlo en un directorio compartido al que pueda acceder tanto el equipo de origen como el de destino (ver más abajo).

 

Rutas portátiles

Si tiene pensado ejecutar la asignación en un servidor, asegúrese de que la asignación sigue la convención sobre rutas de acceso correspondiente y que utiliza una conexión de base de datos compatible.

 

1.Abra un archivo de diseño de asignación (.mfd) con MapForce en Windows.

2.En el menú Archivo, seleccione Configurar asignación y desmarque la casilla Convertir las rutas de acceso en absolutas en el código generado si estaba marcada.

3.En cada componente de la asignación abra el cuadro de diálogo "Propiedades" (haga doble clic en la barra de título del componente, por ejemplo) y cambie todas las rutas de los archivos de absolutas a relativas. Marque también la casilla Guardar todas las rutas de acceso de archivos como relativas al archivo MFD. Si le resulta más cómodo, puede copiar todos los archivos y esquemas de entrada en la misma carpeta en la que se encuentra la asignación para poder hacer referencia a ellos usando solamente su nombre.

 

Para más información sobre las rutas relativas y absolutas en el diseño de asignaciones consulte la documentación de MapForce.

 

Es importante saber que tanto MapForce Server como FlowForce Server funcionan con un directorio de trabajo con el que se resuelven todas las rutas de acceso relativas . El directorio de trabajo se especifica en tiempo de ejecución:

 

En FlowForce Server se especifica editando el parámetro Directorio de trabajo de un trabajo.

En la API de MapForce Server API se especifica con la propiedad WorkingDirectory de la API de COM y .NET API o con el método setWorkingDirectory de la API de Java.

En la línea de comandos de MapForce Server el directorio de trabajo es el directorio actual de la shell de comandos.

 

Conexiones de BD

Tenga en cuenta que los equipos Linux y macOS no son compatibles con conexiones ADO, ADO.NET y ODBC. Por tanto, si el equipo de destino es Linux o macOS, estas conexiones se convertirán en conexiones JDBC cuando la asignación se implemente en FlowForce o cuando se compile en un archivo de ejecución de MapForce Server. Cuando esto ocurra, antes de implementar o compilar la asignación podrá elegir entre dos opciones:

 

crear la conexión JDBC con la base de datos (véase Configurar una conexión JDBC) o

rellenar los datos de conexión de base de datos JDBC en la sección Configuración JDBC del componente de base de datos .

 

Si la asignación utiliza una conexión nativa a una base de datos PostgreSQL o SQLite, la conexión nativa se conserva y la conversión en JDBC no tiene lugar . Si la asignación se conecta a una base de datos basada en archivos (como Microsoft Access y SQLite) deberá configurar algunas opciones más (véase el punto siguiente).
 
Para ejecutar asignaciones con conexiones JDBC es necesario tener instalado Java Runtime Environment o Java Development Kit en el equipo servidor. Este último puede ser Oracle JDK o uno de código abierto, como Oracle OpenJDK.

 

La variable de entorno JAVA_HOME debe apuntar al directorio de instalación de JDK.

En Windows tiene prioridad la ruta de acceso a un equipo virtual Java del registro frente a la variable JAVA_HOME.

La plataforma JDK (32 o 64 bits) debe ser la misma que la de MapForce Server. De lo contrario es posible que reciba un error de tipo "No se puede acceder al equipo virtual Java".

Para configurar una conexión JDBC en Linux o macOS:

1.Descargue el controlador JDBC que ofrece el proveedor de la BD e instálelo en el sistema. Recuerde que debe seleccionar la versión de 32 bits si su sistema es de 32 bits y la versión de 54 bits si el sistema es de 64 bits.

2.Configure las variables de entorno con la ubicación donde está instalado el controlador JDBC. Por lo general será necesario configurar la variable CLASSPATH, pero quizá alguna más. Consulte la documentación del controlador JDBC para obtener más información.

 

Nota:en macOS, el sistema espera que las bibliotecas JDBC instaladas estén en el directorio /Library/Java/Extensions. Por tanto, se recomienda desempaquetar el controlador JDBC en esta ubicación. De lo contrario, deberá configurar el sistema para que busque la biblioteca JDBC en una ruta de acceso diferente.

 

Conexiones de cliente instantáneo de Oracle en macOS

Siga estas instrucciones si se va a conectar a bases de datos Oracle con el cliente Oracle Database Instant Client en macOs. Los requisitos son:
 

Debe tener instalada la versión de Java 8.0 o posterior.Recuerde que si usa una versión de Java anterior a Java 8, también se podrá conectar con la biblioteca JDBC Thin for All Platforms, en cuyo caso puede ignorar las instrucciones que aparecen en este tema.

Debe tener instalado Oracle Instant Client. El cliente Oracle Instant Client se puede descargar del sitio web oficial de Oracle. Tenga en cuenta que en la página de descargas hay varios paquetes y deberá seleccionar un paquete con compatibilidad con Oracle Call Interface (OCI), como el paquete Instant Client Basic, por ejemplo. Además, recuerde que debe seleccionar la versión de 32 bits si su sistema es de 32 bits o la versión de 64 bits si su sistema es de 64 bits

 

Tras descargar y desempaquetar el cliente Oracle Instant Client, edite el archivo de lista de propiedades (.plist) que viene con el instalador para que las variables de la tabla apunten a la ruta de acceso del controlador correspondiente. Por ejemplo:

Variable

Valor de muestra

CLASSPATH

/opt/oracle/instantclient_11_2/ojdbc6.jar:/opt/oracle/instantclient_11_2/ojdbc5.jar

TNS_ADMIN

/opt/oracle/NETWORK_ADMIN

ORACLE_HOME

/opt/oracle/instantclient_11_2

DYLD_LIBRARY_PATH

/opt/oracle/instantclient_11_2

PATH

\$PATH:/opt/oracle/instantclient_11_2

Nota:los valores de las variables deben ajustarse a la ruta de acceso donde están instalados los archivos del cliente Oracle Instant Client.

 

Bases de datos basadas en archivos

Las bases de datos basadas en archivos (como Microsoft Access y SQLite) no se incluyen en el paquete que se implementa en FlowForce Server ni en el archivo de ejecución que se compila para MapForce Server. Por tanto, si el equipo de origen y de destino no son el mismo, deberá seguir estas instrucciones:

 

1.En MapForce haga clic con el botón derecho en la asignación y en el cuadro de diálogo "Configurar asignación" desactive la casilla Convertir las rutas de acceso en absolutas en el código generado.

2.Haga clic con el botón derecho en el componente de base de datos de la asignación y añada una conexión al archivo de base de datos usando una ruta de acceso relativa. La manera más sencilla de evitar problemas relacionados con la ruta de acceso es guardar el diseño de asignación (archivo .mfd) en el mismo directorio que el archivo de base de datos y hacer referencia a este último desde la asignación usando el nombre de archivo (es decir, una ruta de acceso relativa).

3.Copie el archivo de base de datos en un directorio del equipo de destino (que llamaremos directorio de trabajo). Recuerde el nombre de este directorio porque lo necesitará para ejecutar la asignación en el servidor (ver más abajo).

 

Hay varias maneras de ejecutar este tipo de asignaciones en el servidor:

 

Si tiene pensado ejecutar la asignación con MapForce Server bajo control de FlowForce Server, configure el trabajo de FlowForce Server para que apunte al directorio de trabajo creado previamente. El archivo de base de datos debe residir en este directorio de trabajo(puede ver un ejemplo en https://www.altova.com/manual/es/flowforceserveradvanced/2024.0/index.html?fs_example_web_service.htm).

Si tiene pensado ejecutar la asignación con MapForce Server de forma independiente y desde la línea de comandos, cambie del directorio actual al directorio de trabajo (p. ej. cd ruta\de\directorio\de\trabajo) antes de llamar al comando run de MapForce Server.

Si tiene pensado ejecutar la asignación con la API de MapForce Server, especifique el directorio de trabajo mediante programación antes de ejecutar la asignación. Para esto sirve la propiedad WorkingDirectory del objeto MapForce Server en la API de COM y .NET. En la API de Java se utiliza el método setWorkingDirectory.

 

Si tanto el equipo de origen como el de destino es un equipo Windows que se ejecuta en una red local, también puede configurar la asignación para que lea el archivo de base de datos de un directorio compartido común:

 

1.Guarde el archivo de base de datos en un directorio compartido común al que pueda acceder tanto el equipo de origen como el de destino.

2.En la asignación haga clic con el botón derecho en el componente de base de datos y añada una conexión al archivo de base de datos usando una ruta de acceso absoluta.

 

Recursos globales

Si la asignación incluye referencias a recursos globales en lugar de rutas de acceso directas o conexiones de base de datos, también podrá usar los recursos globales en el lado servidor. Cuando compile una asignación en un archivo de ejecución de MapForce Server (.mfx), las referencias a los recursos globales se mantienen intactas para que pueda usarlas en el lado servidor cuando ejecute la asignación. Cuando implemente una asignación en FlowForce Server puede elegir si quiere que esta use recursos en el servidor.

 

Para que las asignaciones (o las funciones de asignación, en el caso de FlowForce Server) se puedan ejecutar correctamente, los detalles del archivo, la carpeta o la conexión de BD que suministre como recursos globales deben ser compatibles con el entorno servidor. Por ejemplo, las rutas de acceso de los archivos y las carpetas deben usar la convención de Linux para rutas si la asignación se ejecuta en Linux. Asimismo, si define recursos globales como conexiones de BD, estas tienen que ser posibles en el equipo servidor.

 

Para más información consulte Recursos globales.

 

Paquetes de taxonomías XBRL

Cuando implemente una asignación que remita a paquetes de taxonomías XBRL en FlowForce Server, MapForce recopila todas las referencias externas que existen en la asignación y las resuelve usando la configuración actual y los paquetes de taxonomías que están instalados en ese momento. Si hay referencias externas sin resolver que apunten a un paquete de taxonomías, dicho paquete se implementará junto con la asignación. FlowForce Server utilizará ese paquete para ejecutar la asignación. Para actualizar el paquete de taxonomías que utiliza FlowForce Server deberá cambiarlo primero en MapForce y volver a implementar la asignación.

 

Recuerde que el catálogo raíz de MapForce Server influye en el modo en que se resuelven las taxonomías en el equipo de destino. El catálogo raíz se encuentra en esta ruta de acceso relativa al directorio de instalación de MapForce Server: etc/RootCatalog.xml.

 

Los paquetes de taxonomías que se implementaron con la asignación se usarán si el catálogo raíz de MapForce Server no incluye ya dichos paquetes o no contiene un paquete que se definiera para el mismo prefijo URL. El catálogo raíz de MapForce Server tiene prioridad sobre la taxonomía que se implementó.

 

Si ejecuta MapForce Server de forma independiente (y no bajo control de FlowForce Server), tiene la opción de especificar qué catálogo raíz debe utilizar la asignación:

 

En la línea de comandos se hace agregando la opción -catalog al comando run.

En la API de MapForce Server se hace llamando al método SetOption y dando la cadena "catalog" como primer argumento y la ruta de acceso del catálogo raíz como segundo argumento.

 

Si la asignación utiliza componentes XBRL con bases de enlaces de tabla, entonces deberá aportar el paquete de taxonomías o el archivo de configuración del paquete de taxonomías a la asignación en tiempo de ejecución:

 

En la línea de comandos de MapForce Server esto se hace agregando la opción --taxonomy-package o --taxonomy-packages-config-file al comando run.

En la API de MapForce Server esto se hace llamando al método SetOption. El primer argumento debe ser "taxonomy-package" o "taxonomy-packages-config-file". El segundo argumento debe ser la ruta de acceso real del paquete de taxonomías (o del archivo de configuración del paquete de taxonomías.

© 2017-2023 Altova GmbH