Pregunta

Estoy planeando comenzar un POC para la integración de MS CRM y BizTalk 2010.

Antes de eso, quería saber, ¿algún cuerpo usa BizTalk 2010 para la integración con la Sra. CRM?

¿Fue útil?

Solución

Estamos utilizando BizTalk 2010 para llamar al servicio de la organización Microsoft Dynamics CRM 2011.

Básicamente, hay dos formas de hacer esto, pero estoy comprometido a encontrar a otros.

La primera forma es usar los esquemas de BizTalk que se envían con el SDK junto con un ayudante de biblioteca de clase basado en C# externo. Este escenario es bastante contado en Internet. Tenga en cuenta que este escenario no permitirá que BizTalk llame a las clases de CRM temprana (cuenta, etc.) solo permitirá usar el objeto genérico de la cromidad, lo que hace que tratar con el mapeo sea una experiencia dolorosa.

El ayudante externo es necesario para tratar con las idiosincrasias de la Federación LiveID.

Este primer método tiene la ventaja de ser simple. Pero no puede usar tipos de CRM nativos de BizTalk.

La segunda forma es resolver de alguna manera los problemas anteriores, al menos en parte. Primero, implica construir una fachada WCF que exponga objetos CRM nativos de CRM (como cuenta, etc.) y que se ocupa de la Federación de LiveID.

Como se genera, las clases de unión temprana no son serializables, por lo que no pueden ser parte de una interfaz WCF (y servicio). Esto se puede resolver decorando todas y cada una de las propiedades con un Datacontractattribute. Además, las propiedades de solo lectura deben tener un conjunto adicional vacío {} agregado a ellas. Tenga en cuenta que hay una gran cantidad de tales cambios (simples) que realizar en las clases generadas. Afortunadamente, como un archivo generado, la sintaxis es consistente y un par de simples reglas funcionarán.

En el lado de BizTalk, consumirá los metadatos de fachada WCF para generar esquemas BizTalk. Desafortunadamente, terminará con enormes archivos de varios megabytes y esquemas cruzados.

Entonces, primero, tienes que romper las dependencias circulares. En mi caso, tuve que agregar un esquema adicional para mantener tipos complejos compartidos que fueron utilizados tanto por el "contrato" como por los "metadatos" Schémas.

A continuación, no puede usar fácilmente los enormes esquemas generados en sus mapas. Primero abrir el mapa (o solo el esquema) tomará años. En segundo lugar, el compilador se ahogará y Visual Studio se bloqueará.

Para resolver esto, necesitas cambiar manualmente el GeneradofaultFixedNodes Atributo en el archivo XML .BTM de su mapa.

Sin embargo, lo que recomiendo es utilizar una versión simplificada de los esquemas generados, donde solo incluye nodos y estructuras que forman parte del mapeo. Dado que la mayoría de los nodos son opcionales, la solicitud XML resultante a la fachada WCF terminará siendo la misma.

La ventaja de este segundo método es poder lidiar con los tipos de CRM nativos de BizTalk. Pero la implementación puede sonar complicada al principio. Con la automatización adecuada, en la práctica funciona bastante bien, incluso ante los cambios en el lado de CRM.

Sin embargo, ninguno de los métodos se siente como una integración "nativa" de BizTalk. Es por eso que estoy trabajando para encontrar una forma alternativa, tal vez construyendo un vinculación personalizada dedicada, pero hasta ahora sin éxito.

Ver Mi pregunta aquí.

Espero que esto ayude.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top