Impact cuenta con un potente mecanismo que permite automatizar muchas tareas mediante scripts (escritos en VBScript), bibliotecas de plugins compiladas (escritas en varios lenguajes) o macros (escritas en nuestro lenguaje de macros propietario IML).
La automatización se puede utilizar en muchos lugares de Impact, por ejemplo para:
- crear herramientas personalizadas para sus usuarios
- crear tareas personalizadas que se activan automáticamente (por ejemplo, cada vez que se guarda un proyecto)
- crear entidades de texto personalizadas que se calculan automáticamente (por ejemplo, para que aparezcan en un informe)
- calcular valores específicos que se escribirán en la base de datos (asignaciones de valores)
COM
Impact dispone de una amplia interfaz de programación de aplicaciones (API) implementada mediante el modelo de objetos componentes (COM) de Microsoft, que comprende cientos de funciones. Su script o plugin interactuará con Impact a través de esta API COM.
El modelo de objetos de Impact se corresponde estrechamente con los elementos de la interfaz de usuario con los que ya estará familiarizado, con objetos que representan dibujos, capas, bloques, líneas, arcos, paletas, etc.
Las interfaces COM están descritas detalladamente en un documento aparte, junto con numerosos fragmentos de código de ejemplo. Este documento está disponible a pedido de Arden Software.
Scripts
Los scripts pueden escribirse en Microsoft Visual Basic Scripting Edition (comúnmente conocido como VBScript o VBS). Existen muchísimos recursos en línea para este lenguaje. VBScript es un lenguaje interpretado, por lo que no necesita compilarse. Impact ejecuta los scripts utilizando Microsoft Script Control, que es una parte fundamental de Windows.
A menudo, los scripts son fragmentos cortos de código para realizar tareas relativamente sencillas. Aunque se pueden desarrollar scripts largos y complejos, suele ser mejor realizar dichos desarrollos como un plugin.
Los escritores de scripts suelen utilizar el cuadro de herramientas script para escribir y probar fragmentos de código de tamaño pequeño a mediano. Sin embargo, a medida que un script se alarga, suele ser mejor utilizar un editor de código con funciones más avanzadas, por ejemplo Notepad++.
Plugins
Para desarrollos más complejos, crear un plugin en lugar de un script ofrece muchas ventajas. En primer lugar, dispone de una amplia variedad de lenguajes: cualquier lenguaje que admita COM, por ejemplo, VB.Net, C# o Delphi Pascal. En segundo lugar utilizará un entorno de desarrollo como Visual Studio o Delphi con potentes herramientas de desarrollo que incluyen depuradores y herramientas de diseño de interfaz de usuario. En tercer lugar, distribuirá DLL binarias en lugar de scripts basados en texto, por lo que su código será más seguro.
Los plugins se pueden registrar y ejecutar utilizando la herramienta Administrador de plugins.
Macros
Impact tiene su propio lenguaje de macros (IML), pero ya no se recomienda su uso. Las macros utilizan su propia API heredada, que es muy limitada y ya no se desarrolla a diferencia de la API basada en COM, que se amplía continuamente.
Las macros se pueden compilar y ejecutar con las herramientas de macro. Sin embargo, recomendamos a los desarrolladores de automatización que no creen macros y que sustituyan las macros existentes por scripts o plugins.
Configuración de instalación
Muchas configuraciones relacionadas con la automatización pueden encontrarse en la sección automatización de la configuración de instalación de la base de datos. Esto incluye tareas automáticas (véase abajo), variables globales persistentes, herramientas configuradas y archivos de inclusión VBScript.
Herramientas personalizadas
Hay dos formas de añadir herramientas de automatización personalizadas a la interfaz de usuario. En primer lugar, puede añadirlas al menú Automatización configurando el elemento (script, complemento o macro) en la configuración de herramientas de automatización. Al hacerlo, la herramienta quedará visible para todos los usuarios.
Alternativamente, puede añadir el elemento a un elemento de menú o botón personalizado utilizando la función Personalizar y elegir Nuevos elementos de menú. En este caso, la herramienta es específica para usted hasta que la haga parte de una apariencia guardada.
Tareas automáticas
Puede asociar scripts, plugins o macros con ciertos eventos, como cuando un usuario abre o guarda un proyecto, o traza, o ejecuta un estándar. Hay muchos eventos de este tipo que puede utilizar para activar una tarea de automatización; puede configurarlos en la sección Automatización – Tareas automáticas de la configuración de instalación de la base de datos.
Asignación de valores
Las asignaciones de valores se utilizan habitualmente para calcular valores mediante un script y escribir esos valores en la base de datos. Al igual que las tareas automáticas, las asignaciones de valores pueden asociarse a determinados eventos, como ejecutar un estándar o guardar un proyecto.
Estas asignaciones se crean a través de la configuración principal de asignación de valores y, a continuación, se configuran en la sección asignación de valores de la configuración de instalación de la base de datos.
Entidades de texto
El contenido de una entidad de texto se puede calcular parcial o totalmente mediante un script, un plugin o una macro. Una entidad de texto calculada de este modo se puede utilizar en un proyecto, pero lo más habitual es utilizarla en un símbolo o en una plantilla de informe.
El código de automatización se puede incrustar (en el caso de un script) o referenciar desde un archivo (para scripts, plugins o macros) utilizando el formulario Editor de texto.
Firma de scripts
Al firmar digitalmente un script, el desarrollador puede garantizar que no se lo ha modificado desde que se escribió. Las firmas aparecen como un bloque de líneas de comentarios al final del código del script, e Impact verifica la firma antes de ejecutar el script. Si la firma está ausente o no coincide con el script, se puede mostrar un error o una advertencia.
Tanto los scripts incrustados como los archivos de script pueden ser firmados. Se puede añadir una firma a un script utilizando cualquier formulario que permita introducir código de script, especialmente el Cuadro de herramientas script.
Los scripts proporcionados por Arden Software a menudo serán firmados antes de la entrega. Si cualquier otro desarrollador de scripts desea firmar sus scripts, debe obtener su propio certificado de una Autoridad de Certificación (CA) como VeriSign o Comodo.
La verificación de las firmas de scripts se puede controlar desde la sección Seguridad de la configuración de la estación de trabajo.
Los plugins no se firman de la misma manera que los scripts; el entorno de desarrollo, por ejemplo Visual Studio, proporcionará herramientas para firmar ensamblados DLL. Las macros no se pueden firmar y deben evitarse siempre que sea posible.
Plugins automáticos de Impact (IAPs)
Los IAP permiten a los desarrolladores de scripts o plugins distribuir de forma fácil y eficaz paquetes de funciones personalizadas a otros usuarios de Impact. Estos usuarios se benefician de la perfecta integración de estas herramientas de automatización configuraciones de apariencia
nServer de Impact
Es posible ejecutar tareas de automatización en un servidor independientemente de la estación de trabajo Impact de cualquier usuario, utilizando el software nServer. Este es un producto separado que se ejecuta como un servicio COM+ sin interfaz de usuario, ofreciendo las mismas interfaces COM que Impact. Para saber más sobre el producto nServer, contacte con Arden Software.