Preparar archivos para su ejecución en servidor
En este tema se describen los aspectos principales de la preparación de asignaciones para su ejecución en un servidor. La ejecución de las asignaciones en un entorno de servidor suele requerir cierta preparación por los siguientes motivos:
•Una asignación diseñada en MapForce puede hacer referencia a recursos que no están disponibles en el equipo y el sistema operativo actuales (por ejemplo, bases de datos).
•Las rutas de acceso de las asignaciones siguen las convenciones del estilo Windows de forma predeterminada.
•Es posible que el equipo en el que se ejecuta MapForce Server no admita las mismas conexiones de base de datos que el equipo en el que se diseñó la asignación.
Requisitos previos
Si MapForce Server se ejecuta en modo autónomo (sin FlowForce Server), se requieren las siguientes licencias:
•Equipo de origen: se requiere MapForce Enterprise o Professional Edition para diseñar asignaciones de datos y compilarlas en archivos de ejecución del servidor (.mfx).
•Equipo de destino: para ejecutar las asignaciones, se requiere MapForce Server o MapForce Server Advanced Edition.
Si MapForce Server está gestionado por FlowForce Server, deben cumplirse los siguientes requisitos:
•Equipo de origen: se requiere MapForce Enterprise o Professional Edition para diseñar asignaciones e implementarlas en un equipo de destino.
•Equipo de destino: tanto MapForce Server como FlowForce Server deben tener asignada una licencia.
•FlowForce Server debe estar ejecutándose en la dirección y el puerto de red configurados y no debe estar bloqueado por un firewall.
•Debe tener una cuenta de usuario de FlowForce Server con permisos para el contenedor correspondiente (por defecto, cualquier usuario autenticado puede acceder al contenedor /public).
Nota: el término equipo de origen se refiere al ordenador en el que está instalado MapForce. El término equipo de destino se refiere al ordenador en el que están instalados MapForce Server y/o FlowForce Server. Por lo general, MapForce se ejecuta en un equipo Windows, mientras que MapForce Server y FlowForce Server se ejecutan en un equipo Linux.
Consideraciones generales
Tenga en cuenta los siguientes puntos importantes:
•Si tiene intención de ejecutar la asignación en un equipo de destino con MapForce Server en modo autónomo, todos los archivos de entrada a los que hace referencia la asignación también deben copiarse en el equipo de destino.
•Si MapForce Server está gestionado por FlowForce Server, no es necesario realizar la copia manual. En este caso, los archivos de instancia y esquema se incluyen en el paquete de implementación enviado al equipo de destino.
•Si una asignación utiliza funciones personalizadas (por ejemplo, funciones implementadas en archivos .dll o .class), los archivos de biblioteca correspondientes no se implementan automáticamente con la asignación, ya que solo se resuelven en tiempo de ejecución. En este caso, debe copiar manualmente los archivos de biblioteca necesarios en el equipo de destino. La ruta de acceso a cada archivo .dll o .class en el servidor debe coincidir con la ruta especificada en el cuadro de diálogo Gestionar bibliotecas de MapForce (imagen siguiente).

•Algunas asignaciones leen varios archivos de entrada con ayuda de una ruta de acceso comodín. En este caso, los nombres de los archivos de entrada no se conocen hasta el tiempo de ejecución y, por lo tanto, no se implementan. Para poder ejecutar la asignación correctamente, los archivos de entrada necesarios deben existir en el equipo de destino.
•Si la ruta de salida de la asignación incluye directorios, estos deben existir ya en el equipo de destino. De lo contrario, se produce un error al ejecutar la asignación. Este comportamiento difiere del de MapForce, donde los directorios que no existen se pueden crear 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 también debe transferirse al equipo de destino.
•Antes de implementar una asignación en FlowForce Server o compilarla en un archivo de ejecución de MapForce Server, asegúrese de que la asignación se valida correctamente en MapForce.
Rutas portátiles
Para ejecutar una asignación en un servidor, asegúrese de que la asignación siga las convenciones de ruta correspondientes y utilice una conexión de base de datos compatible.
Para que las rutas sean compatibles con sistemas operativos distintos de Windows, utilice rutas relativas en las asignaciones de MapForce:
1.Abra un archivo de diseño de asignación de datos (.mfd) con MapForce en Windows.
2.Seleccione la opción de menú Archivo | Configurar asignación y desactive la casilla Convertir las rutas de acceso en absolutas en el código generado.
3.Para cada componente, abra el cuadro de diálogo Propiedades, convierta todas las rutas de archivo en relativas y seleccione la casilla Guardar todas las rutas de acceso de archivos como relativas al archivo MFD.
Para obtener más información sobre cómo funcionan las rutas relativas y absolutas en las asignaciones, consulte la documentación de MapForce.
Directorio de trabajo
MapForce Server y FlowForce Server utilizan el directorio de trabajo con respecto al cual se resuelven todas las rutas relativas. El directorio de trabajo se especifica en tiempo de ejecución de la siguiente manera:
•FlowForce Server: editando el parámetro Directorio de trabajo de un trabajo.
•API de MapForce Server: a través de la propiedad WorkingDirectory de la API de COM y .NET o mediante el método setWorkingDirectory de la API de Java.
•Línea de comandos de MapForce Server: El directorio de trabajo es el directorio actual de la shell de comandos.
Compilación de asignaciones para la ejecución en MapForce Server (Java)
Cuando se compila una asignación para su ejecución con MapForce Server y se selecciona Java como lenguaje de transformación, se pueden utilizar las siguientes opciones del comando run para evitar problemas con la resolución de la variable classpath de Java:
•--java-classpath
•--java-ignore-codebase
Para obtener más información sobre estas opciones, consulte la documentación de MapForce Server.
Implementación de asignaciones en FlowForce Server (Java)
Cuando se implementa una asignación en FlowForce Server y se selecciona Java como lenguaje de transformación, se puede configurar la classpath y la opción java-ignore-codebase en el archivo MapForce_<versión>.tool para evitar problemas con la resolución de la variable classpath de Java. Para personalizar el archivo tool, siga estos pasos:
1.Copie el archivo tool de:
C:\Archivos de programa\Altova\FlowForceServer<año>\tools
al directorio de instancias de FlowForce Server:
C:\ProgramData\Altova\FlowForceServer\data\tools (ubicación predeterminada)
2.Edite el archivo en el directorio de la instancia de la siguiente manera:
[Opciones]
java.codebase.ignore=1
[Entorno]
CLASSPATH=<ruta>
Conexiones de BD
Si la asignación incluye componentes de base de datos que requieren controladores específicos, dichos controladores también deben instalarse en el equipo de destino.
Cuando se implementa una asignación en plataformas que no son Windows, las conexiones de base de datos ADO, ADO.NET y ODBC se convierten automáticamente en JDBC. En este caso, puede configurar la conexión JDBC en MapForce utilizando una de las siguientes opciones antes de implementar la asignación o compilarla en un archivo de ejecución del servidor:
•Cree una conexión JDBC con la base de datos.
•Rellene los datos de conexión de la base de datos JDBC en la sección Configuración JDBC del componente de base de datos .
Las conexiones SQLite y PostgreSQL se conservan y no es necesario configurar nada más.. Si la asignación se conecta a una base de datos basada en archivos, como SQLite, es posible que deba configurar algo más (consulte Bases de datos basadas en archivos más abajo).
Requisitos para ejecutar asignaciones con conexiones a bases de datos JDBC
Para ejecutar asignaciones con conexiones JDBC, es necesario tener instalado Java Runtime Environment o Java Development Kit en el equipo servidor. Puede ser Oracle JDK o una compilación de código abierto como Oracle OpenJDK. Tenga en cuenta los siguientes aspectos importantes:
•La variable de entorno JAVA_HOME debe apuntar al directorio de instalación del JDK.
•En Windows, la ruta de la máquina virtual Java en el registro de Windows tiene prioridad sobre JAVA_HOME.
•La plataforma JDK (64 bits, 32 bits) debe coincidir con la plataforma de MapForce Server. De lo contrario, es posible que aparezca el siguiente error: «No se puede acceder a la JVM».
Configurar una conexión JDBC en Linux
Para configurar una conexión JDBC en Linux, siga los pasos que se indican a continuación:
1.Descargue el controlador JDBC proporcionado por el proveedor de la base de datos e instálelo en el sistema operativo. Asegúrese de seleccionar la versión de bits correcta para su plataforma.
2.Configure las variables de entorno para que apunten a la ubicación donde está instalado el controlador JDBC. Consulte la documentación suministrada con el controlador JDBC para determinar qué variables de entorno deben configurarse.
Bases de datos basadas en archivos
Si la asignación se conecta a una base de datos basada en archivos, como Microsoft Access o SQLite, el archivo de base de datos no se incluye en el paquete implementado en FlowForce Server ni en el archivo de ejecución de MapForce Server compilado. Por lo tanto, el archivo de la base de datos debe transferirse manualmente al equipo de destino o almacenarse en un directorio compartido accesible tanto para el equipo de origen como para el de destino.
Transferencia manual
Para transferir manualmente el archivo de la base de datos, siga los pasos que se indican a continuación:
1.En MapForce, abra el elemento de menú Archivo | Configurar asignación y desactive la casilla Convertir las rutas de acceso en absolutas en el código generado.
2.Abra la configuración del componente de base de datos y especifique una ruta relativa al archivo de base de datos. Para evitar problemas relacionados con las rutas, guarde el archivo de asignación de datos y la base de datos en el mismo directorio.
3.Copie el archivo de base de datos en un directorio del equipo de destino.
Hay varias maneras de ejecutar la asignación en el servidor:
•Si la asignación se implementa en FlowForce Server, configure un trabajo de FlowForce Server para que apunte a la ubicación donde se almacena el archivo de base de datos. Para ver un ejemplo consulte el apartado Exponer un trabajo como servicio web.
•Si la asignación se ejecuta con MapForce Server en modo autónomo en la línea de comandos, cambie el directorio actual al directorio de trabajo (por ejemplo,cd path\to\working\directory) antes de llamar al comando run.
•Si la asignación se ejecuta con la API de MapForce Server, configure el directorio de trabajo mediante programación antes de ejecutar la asignación. La propiedad WorkingDirectory está disponible en la API de COM y .NET, y el método setWorkingDirectory está disponible en la API de Java.
Directorio compartido
Si los equipos de origen y destino son equipos Windows que se ejecutan en la red local, puede configurar la asignación para leer el archivo de base de datos desde un directorio compartido:
1.Coloque el archivo de base de datos en un directorio compartido al que puedan acceder ambos equipos.
2.Abra la configuración del componente de base de datos en la asignación y especifique una ruta absoluta al archivo de base de datos.
Recursos globales
Si una asignación incluye referencias a recursos globales en lugar de rutas directas o conexiones a bases de datos, también puede utilizar estos recursos en el servidor. Debe tener en cuenta que:
•Al compilar una asignación en un archivo de ejecución de MapForce Server (.mfx), se conservan las referencias a los recursos globales. Esto le permite proporcionar los recursos reales en el servidor en tiempo de ejecución de la asignación de datos.
•Al implementar una asignación en FlowForce Server, puede elegir si la asignación debe utilizar los recursos disponibles en el servidor.
Para que una asignación se ejecute correctamente, los recursos que proporcione como recursos globales deben ser compatibles con el entorno del servidor:
•las rutas de los archivos o carpetas deben seguir las convenciones del sistema operativo del servidor (por ejemplo, rutas Linux si la asignación se ejecutará en un servidor Linux).
•Las conexiones a bases de datos definidas como recursos globales deben ser válidas y accesibles desde el equipo servidor.
Para más información consulte Recursos.
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.
•Si hay referencias externas resueltas que apuntan a un paquete de taxonomías, ese paquete se implementa junto con la asignación.
•FlowForce Server utiliza el paquete implementado, exactamente tal y como estaba durante la implementación, para ejecutar la asignación.
•Para actualizar el paquete de taxonomías utilizado por FlowForce Server, debe actualizarlo en MapForce y volver a implementar la asignación.
Catálogo raíz
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 está ubicado en la ruta de acceso relativa al directorio de instalación de MapForce Server:
etc/RootCatalog.xml
Deben respetarse las siguientes reglas:
•Los paquetes de taxonomías implementados con una asignación solo se utilizan si el catálogo raíz de MapForce Server no contiene el paquete o un paquete definido para el mismo prefijo URL.
•El catálogo raíz de MapForce Server tiene prioridad sobre la taxonomía implementada.
MapForce Server en modo autónomo
Si MapForce Server se ejecuta en modo autónomo (sin FlowForce Server), puede especificar el catálogo raíz que se utilizará para la asignación:
•Línea de comandos: añada la opción -catalog al comando run.
•API de MapForce Server: llame al método SetOption con "catalog" como primer argumento y la ruta al catálogo raíz como segundo argumento.
Asignaciones que utilizan bases de enlaces de tablas
Si una asignación utiliza componentes XBRL con bases de enlaces de tablas, el paquete de taxonomías o su archivo de configuración deben proporcionarse a la asignación en tiempo de ejecución:
•Línea de comandos de MapForce Server: añada la opción --taxonomy-package o --taxonomy-packages-config-file al comando run.
•API de MapForce Server: llame a SetOption con"taxonomy-package" o "taxonomy-packages-config-file" como primer argumento y la ruta al paquete de taxonomías del archivo de configuración como segundo argumento.