Gabriel 的个人资料Biztalk Blandengue (http...照片日志列表更多 ![]() | 帮助 |
|
2006/5/25 WWF & WCFTambién gracias a los amigos de Andina pasé un par de días espectaculares en Medellín (ciudad de la eterna primavera, de verdad).
Aparte de la charla de BTS & WWF dí otras dos, acá los slides
Integración e interoperabilidad en WCF
2006/5/13 Diez Oportunidades Arquitecturales para Workflow (DevDays Venezuela)Gracias a los amigos de Andina, estuve en DevDays Venezuela.
Tuve la estupenda oportunidad de hablar de las oportunidades en arquitectura para workflow y las herramientas disponibles para cada caso (BTS & WWF).
Aquí el set de slides.
2006/5/5 Al enviar un mensaje XML por el MSMQ adapter debe ingresarse el mensaje al Body como xmlDocumentAl enviar un mensaje XML por el MSMQ adapter debe ingresarse el mensaje al Body como xmlDocument
Cuando utilizamos las clases de .NET para enviar un mensaje por MSMQ, el primer impulso que podemos tener es poner el Xml dentro de un String y asignar el String directamente al body del mensaje.
Algo del estilo:
Message msg = new Message();
msg.Body = strBody;
El problema de esta técnica es que el mensaje entra como <string>mensaje</string> y Biztalk cuando lo ingresa no lo puede asignar al documento directamente en el pipeline.
Lo peor es que puede llegar a ser difícil hacer el "troubleshooting" del problema, dado que si estamos suscritos al mensaje por puerto directamente, al pasar el pipeline y entrar en la messagebox en la salida sale con tipo correcto o si lo pasamos por un mapping va a funcionar.
Sin embargo, si suscribimos por tipo de mensaje va a ser suspendido, porque el tipo no es reconocido.
Inclusive más, si en el pipeline con un Custom Component, le asociamos un tipo de mensaje, funcionan todas las suscripciones por tipo, pero los campos promovidos no se promueven.
La solución es simple (gracias al amigo Alvaro), en lugar de pasarlo como string, enviar a la MSMQ directamente con XmlDocument como debajo:
Message msg = new Message();
System.Xml.XmlDocument xmlmsg = new System.Xml.XmlDocument(); xmlmsg.LoadXml(strBody); msg.Body = xmlmsg; G |
|
|