Message Enrichment (ejemplo de BizTalk Server)
El ejemplo Message Enrichment muestra cómo anexar encabezados de intercambio a mensajes de conjunto de transacciones para documentos X12 y EDIFACT.
Descripción del ejemplo
Este ejemplo muestra cómo anexar encabezados UNA, UNB y UNG para EDIFACT, así como encabezados ISA para X12 a conjuntos de transacciones. En concreto, este ejemplo realiza lo siguiente:
Al colocar el mensaje de prueba en la carpeta \Message Enrichment\In, el puerto de recepción lo selecciona, lo procesa y lo coloca en el Cuadro de mensajes.
MessageEnrichmentOrchestration toma el mensaje de prueba del Cuadro de mensajes porque se suscribe a mensajes basándose en una expresión de filtro establecida en su forma Recepción.
La orquestación lee los encabezados de intercambio a partir de las propiedades de contexto del mensaje.
Nota
Los encabezados UNA y UNG son opcionales en un mensaje EDIFACT de modo que pueden faltar en las propiedades de contexto de un mensaje.
La orquestación escribe tanto los encabezados de intercambio como el cuerpo del mensaje en un único mensaje nuevo.
La orquestación promociona más propiedades que se establecen en el tipo de correlación ReceivePortNameCorrelationType en el mensaje. Éstas permiten que los usuarios de la orquestación seleccionen una lista de las propiedades que necesitan para la suscripción. Estas propiedades se escriben en una forma Construir mensaje. No todas las propiedades de contexto escritas en el mensaje original se escriben en el mensaje nuevo.
La orquestación coloca el mensaje nuevo en el Cuadro de mensajes.
El puerto de envío selecciona el mensaje nuevo y lo envía a través del adaptador de Archivo a la carpeta \Message Enrichment\Out.
Ubicación del ejemplo
Este ejemplo se encuentra en la carpeta de instalación de BizTalk Server: \Archivos de programa (x86)\Microsoft BizTalk Server <VERSION>SDK\Samples\EDI\Message Enrichment.
En la tabla siguiente se enumeran los archivos del ejemplo y se describe su propósito.
Archivos | Descripción |
---|---|
Cleanup.bat | Anula la implementación del escenario de ejemplo. Para que se realice correctamente, no debe haber instancias activas de la orquestación. De lo contrario, no se realizará correctamente. |
MessageEnrichment.sln | Contiene los proyectos MessageEnrichment y MessageEnrichmentLibrary. |
Setup.bat | Implementa un escenario de ejemplo que se compone de un puerto de recepción, un puerto de envío y una orquestación. |
EDIFACT_example.edi | Mensaje EDIFACT de entrada. |
X12_example.edi | Mensaje X12 de entrada. |
MessageEnrichment.btproj | Proyecto que contiene las orquestaciones y los esquemas de MessageEnrichment. |
MessageEnrichmentBindings.xml | Archivo que contiene enlaces para la orquestación, los puertos y las entidades. |
MessageEnrichmentOrchestration.odx | Orquestación que anexa los encabezados al mensaje. |
MessageEnrichmentOrchestration.odx.cs | Código de la orquestación que anexa los encabezados al mensaje. |
EFACT_D98B_APERAK.xsd | Esquema EDIFACT para el mensaje de entrada. |
Enriched_EFACT_D98B_APERAK.xsd | Esquema EDIFACT para el mensaje de salida. |
X12_00401_864.xsd | Esquema X12 para el mensaje de entrada. |
Enriched_X12_00401_864.xsd | Esquema X12 para el mensaje de salida. |
Headers.xsd | Esquemas para los encabezados agregados a los mensajes de entrada. |
MessageEnrichmentLibrary.csproj | Proyecto que contiene los archivos Headers.cs, OrchestrationUtilities.cs y ParseHeaders.cs. |
Headers.cs | Incluye las clases que representan los datos de los encabezados. |
OrchestrationUtilities.cs | Incluye métodos de utilidad empleados por la orquestación. |
ParseHeaders.cs | Incluye los valores predeterminados de UNA que se usan en los mensajes nuevos. Estos valores se toman del método SerializeEDIFACTHeaders en ParseHeaders.cs. |
Uso del ejemplo
Use este ejemplo como ejemplo de trabajo de las acciones necesarias para anexar encabezados de intercambio a mensajes de conjuntos de transacciones EDI.
Crear e inicializar este ejemplo
Para crear e inicializar el ejemplo Message Enrichment, deberá crear e implementar el proyecto de BizTalk para este ejemplo, configurar la ubicación y el puerto de recepción, así como configurar dos puertos de envío diferentes.
Para crear e implementar el proyecto de BizTalk para este ejemplo
Con Notepad.Exe, abra \Archivos de programa (x86)\Microsoft BizTalk Server <VERSION>SDK\Samples\EDI\MessageEnrichment\
MessageEnrichment\properties\AssemblyInfo.cs y agregue la siguiente línea en la parte inferior del archivo:[assembly: Microsoft.XLANGs.BaseTypes.BizTalkAssembly(typeof(Microsoft.BizTalk.XLANGs.BTXEngine.BTXService))]
Guarde el archivo AssemblyInfo.cs modificado y, a continuación, cierre el Bloc de notas.
En una ventana de comandos, vaya a la siguiente carpeta:
\Archivos de programa (x86)\Microsoft BizTalk Server <VERSION>SDK\Samples\EDI\Message Enrichment
Ejecute Setup.bat, que realiza las siguientes acciones:
Crea las carpetas receive (in) y send (out) para este ejemplo en la carpeta \MessageEnrichment.
Escribe un par de claves en MessageEnrichmentLibrary\testkey.snk
Crea e implementa el proyecto MessageEnrichmentLibrary.btproj.
Crea e implementa el proyecto MessageEnrichment.btproj.
Lee la información de enlaces de MessageEnrichmentBindings.xml.
Nota
El enlace para este proyecto requiere que el host de BizTalk está marcado como autenticación de confianza. Para usar esta opción con un host que no sea de confianza, modifique el archivo MessageEnrichmentBindings.xml y cambie las entradas HostTrusted=”true” a HostTrusted=”false”.
Actualiza los enlaces de la orquestación.
Actualiza los puertos de envío, grupos de puertos de envío y puertos de recepción.
Actualiza entidades e inscripciones.
Inicia el puerto de envío.
Habilita la ubicación de recepción.
Da de alta e inicia la orquestación.
Ahora, el servidor BizTalk Server estará preparado para trabajar con este ejemplo.
Ejecución del ejemplo
Utilice el siguiente procedimiento para ejecutar el ejemplo Message Enrichment.
Para ejecutar el ejemplo
Copie el archivo EDIFACT_examples.edi de la carpeta \MessageEnrichment\Instances en la carpeta \MessageEnrichment\In.
Verifique si los archivos EDIFACT_examples.edi desaparecen de la carpeta \MessageEnrichment\In y aparecen en la carpeta \MessageEnrichment\Out.
Abra el archivo de la carpeta \MessageEnrichment\Out. Verifique que se trata de una representación XML del archivo EDIFACT_examples.edi de la carpeta \MessageEnrichment\Instances, y que su contenido es idéntico al del archivo EDIFACT_examples.edi, excepto por el hecho de que el archivo de salida tiene encabezados UNA, UNB y UNG de EDIFACT.
Repita los pasos 1 y 2 con el archivo X12_examples.edi de la carpeta \MessageEnrichment\Instances.
Abra el archivo nuevo de la carpeta \MessageEnrichment\Out. Verifique que se trata de una representación XML del archivo X12_examples.edi de la carpeta \MessageEnrichment\Instances, y que su contenido es idéntico al del archivo X12_examples.edi, excepto por el hecho de que el archivo de salida tiene encabezados ISA de X12.
Clases o métodos usados en el ejemplo
None