Compartir a través de


Crear un script previo o posterior al procesamiento

Puede crear un script para realizar acciones cuando se implementa una aplicación y, a continuación, definir cuándo se ejecutará durante el proceso de implementación. Puede incluir código de instalación y limpieza en el mismo script mediante variables de entorno para delimitar el código. También puede pasar argumentos de línea de comandos al script.

Precaución

Siempre deberías escribir scripts diseñados para sistemas de producción en modo silencioso. Esto se debe a que un script que espera la entrada del usuario hará que las bases de datos de BizTalk se bloquee y sean inaccesibles hasta que se reciba la entrada.

Especificar cuándo se ejecutará un script durante la implementación

Especifique cuándo se ejecutará un script al agregarlo a una aplicación agregándolo como System.BizTalk:PreProcessingScript (script de preprocesamiento) o system.BizTalk:PostProcessingScript (script posterior al procesamiento).

Los scripts previos y posteriores al procesamiento se ejecutan de la siguiente manera:

  • Los scripts de preprocesamiento se ejecutan al principio del proceso de importación o instalación.

  • Los scripts posteriores al procesamiento se ejecutan al final del proceso de importación o instalación.

  • Durante la desinstalación, todos los scripts se ejecutan en el orden opuesto en el que se ejecutan durante la instalación. Por lo tanto, los scripts posteriores al procesamiento se ejecutan al principio de la desinstalación y los scripts de preprocesamiento al final de la desinstalación.

  • Si se produce un error en la instalación, se llaman los scripts en orden inverso con la acción de reversión adecuada.

    Una vez invocado, un script previo o posterior al procesamiento determina qué estado de implementación (instalación, importación, eliminación, desinstalación, reversión de importación o reversión de instalación) se ejecuta comprobando las variables de entorno BTAD_ChangeRequestAction, BTAD_InstallMode y BTAD_HostClass, tal y como se describe en Cómo indican las variables de entorno indican el estado de implementación. Para obtener información de referencia sobre las variables, consulte Variables de entorno de script previos y posteriores al procesamiento.

    Para obtener instrucciones sobre cómo agregar un script a una aplicación, consulte How to Add a Application (Cómo agregar un script previo o posterior al procesamiento a una aplicación).

Nota:

Si desea incluir argumentos de línea de comandos en un script, como se describe más adelante en este tema, debe usar el comando AddResource para agregar el script.

Extensiones de archivo de script admitidas

Se admiten las siguientes extensiones de archivo de script: .com, .exe, .bat, .cmd, .vbs, .vbe, .js, .jse, .wsf y .wsh. Este conjunto de extensiones se define en la variable de entorno PATHEXT.

Errores de registro

Como procedimiento recomendado, debe configurar cada script para registrar errores en un archivo. Esto se debe a que Windows Installer no registra errores generados en los scripts. Debe comprobar estos registros después de que se ejecute el script para detectar los errores que se deben solucionar.

Para ayudarle a determinar cuándo se produjo el error, puede incluir la fecha y hora en el archivo de registro.

Use el código siguiente para especificar un archivo de registro y, a continuación, registre un error en él.

Set LogFile=<full path of log file>

echo %DATE% %TIME% <text> >> %LogFile%

En el ejemplo siguiente, cuando no se define el token de clave pública, se realiza una entrada en el archivo de registro especificado. En el archivo de registro, la fecha y hora se escriben en la misma línea que el texto "La clave pública debe establecerse en el script".

set LogFile=C:\ScriptLog.txt

set PublicKeyToken=e5fd0ea4ecd37420

if not defined PublicKeyToken (

echo %DATE% %TIME% Public key should be set in script >> %LogFile%

También puede agregar la línea exit /b 1 a un script para generar un código de error para Windows Installer, haciendo que se revierta.

En el ejemplo siguiente, si no se ha definido el token de clave pública, el script devolverá un error a Windows Installer y el instalador revertirá.

set LogFile=C:\ScriptLog.txt

set PublicKeyToken=e5fd0ea4ecd37420

if not defined PublicKeyToken (

echo %DATE% %TIME% Public key should be set in script >> %LogFile%

exit /b 1

Inclusión de código de instalación y limpieza en el mismo script

Dado que los scripts se ejecutan en el orden opuesto durante la instalación y desinstalación, puede incluir código de instalación y limpieza en el mismo script, dentro de una instrucción condicional. Por ejemplo, puede colocar el código de instalación en una instrucción condicional que compruebe el modo de instalación, como se indica a continuación:

  
%BTAD_ChangeRequestAction%=Update AND %BTAD_InstallMode%=Install  
  

Puede especificar el código de limpieza dentro de una instrucción condicional que verifique el modo de instalación, como se indica a continuación:

  
%BTAD_ChangeRequestAction%=Delete AND %BTAD_InstallMode%=Uninstall  
  

El paso de argumentos en la línea de comandos

Puede pasar argumentos de línea de comandos al script especificando el siguiente parámetro al usar el comando BTSTask AddResource para agregar el script a la aplicación. Al hacerlo, los argumentos se pasan al script al invocarse este.

/Property:Args="argument list"

Nota:

Si tiene varios scripts de pre o post-procesamiento en una aplicación, no se ejecutan en ningún orden determinado.

Importante

No debe usar comandos BTSTask en scripts, especialmente aquellos que se ejecutan durante la importación, ya que los scripts no participan en la misma transacción que la importación.

Para obtener instrucciones sobre cómo usar el comando AddResource para agregar un script a una aplicación, consulte Comando AddResource: Script de preprocesamiento. Consulte también AddResource Command: Postprocessing Script

Véase también

Uso de scripts previos y posteriores al procesamiento para personalizar la implementación de aplicaciones
Plantilla (ejemplo de implementación de aplicaciones)