Acceder a la API
Para acceder a la API COM de MapForce debe crear primero una nueva instancia del objeto Application en su aplicación (o script). Una vez haya creado este objeto puede interactuar con MapForce invocando sus métodos y propiedades cuando sea necesario (por ejemplo, al crear un documento nuevo, al abrir uno ya existente, al generar código de asignación, etc.).
Requisitos previos
Para que el objeto COM de MapForce esté disponible en su proyecto de Visual Studio, añada una referencia al archivo de la biblioteca de tipos de MapForce (.tlb). Las siguientes instrucciones se han redactado para Visual Studio 2013, pero no difieren demasiado de las de otras versiones de Visual Studio:
1.En el menú Proyecto, haga clic en Agregar referencia.
2.Haga clic en Examinar y seleccione el archivo MapForce.tlb dentro de la carpeta de instalación de MapForce.
Hay un cliente de muestra de la API de MapForce en C# en la siguiente ruta: (Mis) Documentos\Altova\MapForce2023\MapForceExamples\API\C#.
En Java se puede acceder a la API de MapForce con bibliotecas puente Java-COM. Estas bibliotecas se encuentran en la carpeta de instalación de MapForce: C:\Program Files (x86)\Altova\MapForce2023\JavaAPI (esta ruta es válida para una versión de 32 bits MapForce se esté ejecutando en una versión de Windows de 64 bits; de lo contrario hay que adaptar la ruta como corresponda).
•AltovaAutomation.dll: un envoltorio JNI para los servidores de automatización de Altova
•AltovaAutomation.jar: clases en Java para acceder a los servidores de automatización de Altova
•MapForceAPI.jar: clases en Java que envuelven la interfaz de automatización de MapForce
•MapForceAPI_JavaDoc.zip: un archivo Javadoc que contiene documentación de ayuda para la API Java
Para que se pueda acceder al servidor de automatización de MapForce directamente desde el código Java, las bibliotecas antes mencionadas deben estar en la variable de Java classpath.
Puede ver un ejemplo de un cliente de la API de MapForce en Java en la siguiente ruta: (Mis) Documentos\Altova\MapForce2023\MapForceExamples\API\Java.
En lenguajes de programación como JScript o VBScripts, se puede acceder al objeto COM de MapForce con el Microsoft Windows Script Host (véase https://msdn.microsoft.com/en-us/library/9bbdkx3k.aspx). Estos scripts se pueden escribir con un editor de texto y no necesitan ser compilados, ya que se ejecutan con el Windows Script Host incluido en Windows. (Para comprobar si el Windows Script Host se está ejecutando, teclee wscript.exe /? en la línea de comandos). Puede ver un ejemplo de un cliente de la API de MapForce en JScript en la siguiente ruta: (My) Documents\Altova\MapForce2023\MapForceExamples\API\JScript.
Nota: | en la versión de 32 bits de MapForce, el nombre registrado o identificador programático (ProgId) del objeto COM es MapForce.Application. Para la versión de 64 bits de MapForce, el nombre es MapForce_x64.Application. Sin embargo, debe tener en cuenta que el programa que realiza las llamadas accede a las entradas de registro CLASSES de su propio subárbol o grupo (de 32 o 64 bits). Por tanto, si ejecuta scripts usando la línea de comandos estándar y el explorador de Windows en una instancia Windows de 64 bits, el programa accederá a las entradas de registro de 64 bits, que apuntan a la versión de 64 bits de MapForce. Por eso, si tiene instaladas tanto la versión de 32 bits como la versión de 64 bits de MapForce necesitará dar un rodeo para llamar a la versión de 32 bits. Por ejemplo, si el programa que realiza las llamadas es Windows Scripting Host, haga lo siguiente: |
wscript.exe "C:\Users\...\Documents\Altova\MapForce2023\MapForceExamples\API\JScript\start.js" |
Instrucciones
Recomendamos que el código de su cliente observe las siguientes recomendaciones:
•No guarde en la memoria referencias a objetos más tiempo del que necesite. Si un usuario interactúa entre dos llamadas de su cliente, no se puede garantizar que esas referencias sigan siendo válidas.
•Tenga en cuenta que si ocurre un crash en el código de su cliente puede que sigan existiendo instancias de MapForce en el sistema. Para consultar más detalles acerca de cómo evitar mensajes de error, consulte Gestión de errores.
•Libere referencias de forma explícita si está usando lenguajes como C++.
Crear el objeto Application
La sintaxis para crear el objeto de inicio Application depende del lenguaje de programación, como mostramos a continuación:
Visual Basic
Dim objMapForce As MapForceLib.Application = New MapForceLib.Application |
VBA
' Create a new instance of MapForce. |
VBScript
' Access a running instance, or create a new instance of MapForce. |
C#
// Create a new instance of MapForce via its automation interface. |
Java
// Start MapForce as COM server. |
JScript
// Access a running instance, or create a new instance of MapForce. try { objMapForce = WScript.GetObject ("", "MapForce.Application"); // unhide application if it is a new instance objMapForce.Visible = true; } catch(err) { WScript.Echo ("Can't access or create MapForce.Application"); } |