Usando el adaptador de WSS

El adaptador de WSS es utilizado para enviar información desde BizTalk hacia liberias de SharePoint. Una de las funcionalidades que soporta el adaptador, además de enviar un mensaje como tal, es la posibilidad de asignar valores a columnas definidas en dicha libreria (ya sean nativas de Sharepoint o definidas por el usuario).

Estas columnas pueden ser especificadas de 3 formas:

La primera forma es especificando las columnas a las que se desea dar valores directamente en la configuración del puerto mismo, como muestra la siguiente figura:

image

 

Una segunda forma es definiendo las columnas programaticamente en una orquestación de BizTalk o un componente del Pipeline. Para esto, el adaptador de WSS soporta una propiedad del contexto del mensaje WSS.ConfigPropertiesXml, la cual contiene un XML con la definición y valores de las columnas:

 strConfig = "<ConfigPropertiesXml>";
strConfig = strConfig + "<PropertyName1>Error Message</PropertyName1>";
strConfig = strConfig + "<PropertySource1>" + sDescription + "</PropertySource1>";
strConfig = strConfig + "<PropertyName2>Batch Size</PropertyName2>";
strConfig = strConfig + "<PropertySource2>" + sBatchSize + "</PropertySource2>";
strConfig = strConfig + "<PropertyName3>Invoice Number</PropertyName3>";
strConfig = strConfig + "<PropertySource3>" + sInvoice + "</PropertySource3>";
strConfig = strConfig + "</ConfigPropertiesXml>";
Msg(WSS.ConfigPropertiesXml) = strConfig;

 

La tercera opción es utilizar una combinación de ambos escenarios para definir las columnas: definir una parte de las columas en la configuración del puerto y otra parte en la orquestación.  Se debe tener cuidado de no especificar una misma columna en ambos lugares para evitar conflictos, en el siguiente ejemplo se adiciona una columna al puerto estático de envío configurado en la primera opción.

 strConfig = "<ConfigPropertiesXml>";
strConfig = strConfig + "<PropertyName4>Source</PropertyName4>";
strConfig = strConfig + "<PropertySource4>" + sSource + "</PropertySource4>";
strConfig = strConfig + "</ConfigPropertiesXml>";
Msg(WSS.ConfigPropertiesXml) = strConfig;

 

Esta última opción es muy util cuando una parte las columnas son relativamente estáticas, mientras que otra parte son dinámicas y bien sea las columnas mismas o sus valores solo pueden ser calculados en tiempo de ejecución.