Error "Identifier expected" cuando el pipeline es compilado en Visual Studio 2005

Explicacion

El tipo de ejecucion definido para algun stage en el archivo de politicas es None. El valor None no es permitido para este atributo, solo los valores FirstMatch y All son permitidos.

Accion del usuario

Todos los Pipeline Templates tienen asociados un archivo de politicas que determinan los stages que se utilizaran, el numero de componentes permitidos por stage, y el tipo de ejecucion de los componentes en cada stage, entre otros. El framework de BizTalk Server 2006 permite tres opciones para definir el tipo de ejecucion: None, FirstMatch y All; sin embargo, la opcion None no es viable por un pequeno inconveniente en el proceso de compilacion del pipeline.

Para resolver este problema es necesario editar el archivo de politica asociado al pipeline. El nombre del archivo puede ser encontrado en la ventana de propiedades del pipeline en Visual Studio 2005 (ver imagen abajo), este archivo de politicas esta almacenado en la ruta <Biztalk Server Installation Directory>\Developer Tools\Pipeline Policy Files.

Despues que el archivo es abierto, se debe cambiar el valor para el tipo de ejecucion en el archivo de politicas a All o FirstMatch.

Cambiando el tipo de ejecucion

El tipo de ejecucion es representado en el archivo de politicas por el atributo execMethod, este puede ser ubicado en la ruta /Document/Stages/Stage. Al abrir el archivo de politicas se debe identificar cual es el Stage que esta con valor None y reemplazarlo por All o FirstMatch, como se muestra a continuacion.

Antes:

<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:xsd="" xmlns:xsi="" CategoryId="" FriendlyName="">
<Stages>
<Stage Name="Decode" minOccurs="0" maxOccurs="-1" execMethod="None">
</Stage>
</Stages>
</Document>

Despues:

<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:xsd="" xmlns:xsi="" CategoryId="" FriendlyName="">
<Stages>
<Stage Name="Decode" minOccurs="0" maxOccurs="-1" execMethod="All">
</Stage>
</Stages>
</Document>

Por ultimo, se debe cerrar y abrir el archivo de pipeline desde Visual Studio 2005 para ver los cambios efectuados.

Otro metodo, pero no el metodo mas efectivo

Si se desea que un Stage no pueda ejecutar ningun componente, se debe modificar los atributos minOccurs y maxOccurs a 0 o simplemente borrar el nodo <Stage /> deseado del archivo de politicas.

CUIDADO: si se modifica cualquiera de los siguientes valores, los proximos pipelines construidos con base a los Templates Pipelines asociados a este archivo de politicas tambien seran afectados.

Borrar el nodo <Stage />

Se debe de identificar el nodo deseado y posteriormente borrar toda su informacion relacionada.

Modificar el valor de los atributos minOccurs y maxOccurs

Identificar el Stage especifico y establecer el valor de 0 para cada uno de los atributos.

Antes:

<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:xsd="" xmlns:xsi="" CategoryId="" FriendlyName="">
<Stages>
<Stage Name="Decode" minOccurs="0" maxOccurs="-1" execMethod="All">
</Stage>
</Stages>
</Document>

Despues:

<?xml version="1.0" encoding="utf-8"?>
<Document xmlns:xsd="" xmlns:xsi="" CategoryId="" FriendlyName="">
<Stages>
<Stage Name="Decode" minOccurs="0" maxOccurs="0" execMethod="All">
</Stage>
</Stages>
</Document>

Autor: Carlos Medina

Este mensaje se proporciona "como está" sin garantías de ninguna clase, y no otorga ningún derecho