Tutorial (X12): Enviar intercambios EDI por lotes
En este tutorial se proporciona un conjunto de procedimientos paso a paso que crea una solución para enviar intercambios EDI por lotes de una parte a otra mediante BizTalk Server.
Requisitos previos
Debe haber iniciado sesión como miembro del grupo administradores de BizTalk Server o BizTalk Server operadores B2B.
Cómo envía la solución intercambios EDI por lotes
La solución hará lo siguiente:
La ubicación de recepción recibe un intercambio EDI de una parte A.
Nota
Puede que los eventos de esta lista no se produzcan en el orden mostrado.
La canalización de recepción convierte el formato EDI del intercambio en formato XML interno. La canalización de recepción determina que el intercambio se va a realizar por lotes. Como resultado, el componente BatchMarkerReceivePipeline promueve las
EDI.ToBeBatched==True
propiedades yEDI.BatchId
. Después, coloca el intercambio en el cuadro de mensajes.La orquestación de procesamiento por lotes recupera el intercambio recibido del cuadro de mensajes, porque se suscribe al mensaje basado en
EDI.ToBeBatched==True
yEDI.BatchId==%BatchID%
.La ubicación de recepción recibe un segundo intercambio EDI de la misma entidad que envió el primer intercambio.
La ubicación de recepción procesa el intercambio como en el paso 2 y, a continuación, coloca el intercambio en el cuadro de mensajes.
La orquestación de procesamiento por lotes recupera el intercambio como en el paso 3.
Después de cumplir con los criterios de lanzamiento (que definen cómo deben coincidir los intercambios), la orquestación de procesamiento por lotes ensambla el intercambio que contiene todos los intercambios y luego promociona las propiedades de contexto
EDI.ToBeBatched==False
,EDI.BatchName
yEDI.DestinationPartyName
. Coloca el intercambio por lotes en el cuadro de mensajes.El puerto de envío recoge el intercambio por lotes mediante la suscripción a las propiedades
EDI.ToBeBatched
de contexto ==FalseEDI.BatchName
yEDI.DestinationPartyName
.La canalización de envío aplica propiedades adicionales al sobre del intercambio por lotes y, a continuación, envía el intercambio a una entidad de destino, parte B.
Nota
Para obtener más información, vea Ensamblar un intercambio EDI por lotes.
La siguiente ilustración muestra la arquitectura de esta solución.
La funcionalidad en esta solución
Por lo que respecta a este tutorial, se habilitará la siguiente funcionalidad:
La solución está diseñada para intercambios que utilizan la codificación X12, no la codificación EDIFACT.
Nota
La configuración que se usa para la codificación EDIFACT e HIPAA es bastante parecida a la que usa la codificación X12.
Las confirmaciones funcionales o técnicas no se devolverán en respuesta al intercambio que se recibió originalmente o a cualquier intercambio por lotes que se enviase.
Nota
Para obtener información sobre cómo generar confirmaciones EDI, vea Tutorial (X12): Recepción de intercambios EDI y envío de confirmación.
Esta solución usa un puerto unidireccional y un puerto de envío unidireccional estático. Estos puertos se configurarán con el tipo de transporte de archivo.
Se habilitarán los informes EDI.
Los conjuntos de transacciones se guardarán para su visualización desde el informe de estado de intercambio.
Configuración y prueba del tutorial
Los procedimientos necesarios para esta solución son:
Agregar los esquemas de mensaje necesarios a un proyecto de BizTalk y, a continuación, generar e implementar el proyecto, de modo que los esquemas estén disponibles para que BizTalk Server los utilice a la hora de procesar los mensajes.
Actualice el intervalo de sondeo del adaptador de SQL en la ubicación de recepción BatchControlMessageReccvLoc para que la orquestación por lotes se active rápidamente al hacer clic en el botón Inicio para enviar el mensaje de control que activará una instancia de orquestación por lotes.
Cree un puerto de recepción para que BizTalk Server recibir los mensajes de entrada .txt codificados en X12 edi de una entidad.
Cree una entidad (socio comercial) para la Entidad A y la Entidad B.
Crear un perfil de negocio para cada uno de los socios comerciales.
Crear un acuerdo entre los dos perfiles configurando las propiedades de EDI para que se reciba el mensaje. Configurar las propiedades de EDI para el mensaje por lotes que se debe enviar. Para esta solución, configure los acuerdos de forma que BizTalk Server envíe un lote a la Entidad B siempre que se reciban dos intercambios 850.
Cree un puerto de envío para BizTalk Server para enviar el intercambio EDI por lotes al socio comercial. Este puerto de envío será un puerto de envío unidireccional estático.
Asociar el puerto de envío al acuerdo que procesa los intercambios y crea los lotes.
Colocar dos intercambios EDI de prueba en la carpeta local asociada a la ubicación de recepción, así como verificar que BizTalk Server haya colocado un intercambio por lotes en la carpeta asociada al puerto de envío.
Configuración del tutorial
En esta sección se describen los procedimientos para configurar el tutorial.
Para implementar el esquema de mensajes
En Visual Studio, cree o abra un proyecto de BizTalk.
Nota
Este tema presupone que ya ha agregado una referencia de su aplicación a la aplicación EDI de BizTalk, que contiene esquemas, canalizaciones y orquestaciones EDI. Si no es así, consulte Agregar una referencia a la aplicación EDI de BizTalk Server.
Haga clic con el botón derecho en el proyecto, seleccione Agregar y, a continuación, haga clic en Elemento existente. Vaya a \Archivos de programa (x86)\Microsoft BizTalk Server <VERSION>XSD_Schema\EDI\X12\00401 y, a continuación, haga doble clic en el esquema correspondiente al mensaje de prueba.
Nota
Si los esquemas EDI no se han descomprimido en las carpetas \XSD_Schema\EDI, ejecute el archivo MicrosoftEdiXSDTemplates.exe en la carpeta \XSD_Schema\EDI para descomprimir los esquemas en la carpeta predeterminada.
Nota
En el caso de un mensaje de prueba, se puede usar el mensaje de ejemplo 850 usado en el tutorial de programadores de la interfaz EDI. Este archivo se SamplePO.txt en \Archivos de programa (x86)\Microsoft BizTalk Server <VERSION>SDK\EDI Interface Developer Tutorial\. Si lo hace, debe usar el esquema x12_00401_850.xsd ubicado en \Archivos de programa (x86)\Microsoft BizTalk Server <VERSION>SDK\EDI Interface Developer Tutorial\Inbound_EDI.
Defina el archivo de clave de ensamblado y, a continuación, genere e implemente el ensamblado.
Para actualizar el intervalo de sondeo
En BizTalk Server Consola de administración, abra los nodos Grupo de BizTalk, Aplicaciones, Aplicación EDI de BizTalk y Ubicaciones de recepción. En el nodo Ubicaciones de recepción , haga clic con el botón derecho en BatchControlMessageRecvLoc y, a continuación, haga clic en Propiedades.
Para el tipo de transporte de SQL, haga clic en Configurar.
En el cuadro de diálogo Propiedades de transporte de SQL , establezca el intervalo de sondeo en un valor más pequeño. Por ejemplo, puede cambiar unidad de sondeo de medida a Segundos, en lugar de minutos, para cambiar el intervalo de sondeo a 5 segundos.
Nota
El cambio del intervalo de sondeo garantiza que la orquestación de procesamiento por lotes se active rápidamente.
Haga clic en Aceptar y, a continuación, haga clic en Aceptar de nuevo.
Para crear un puerto de recepción unidireccional para recibir los mensajes EDI que se van a procesar por lotes
Cree una carpeta local para recibir los mensajes EDI que se van a procesar por lotes.
En BizTalk Server Consola de administración, haga clic con el botón derecho en el nodo Puertos de recepción en el nodo Aplicación de BizTalk 1, seleccione Nuevo y, a continuación, haga clic en Puerto de recepción unidireccional.
Asigne un nombre al puerto de recepción y, a continuación, haga clic en Ubicaciones de recepción en el árbol de consola.
Haga clic en Nueva.
Asigne un nombre a la ubicación de recepción, seleccione ARCHIVO para Tipo y, a continuación, haga clic en Configurar.
Escriba una carpeta para Receive folder y una máscara para File Mask, como *.txt.
Haga clic en OK.
En Canalización de recepción, seleccione EdiReceive.
Haga clic en Aceptar y, a continuación, haga clic en Aceptar de nuevo.
En el árbol de consola, haga clic en Ubicaciones de recepción. En el panel Ubicaciones de recepción, haga clic con el botón derecho en la ubicación de recepción y, a continuación, haga clic en Habilitar.
Para crear una entidad y un perfil de negocio para la Entidad A
Haga clic con el botón derecho en el nodo Partes de la consola de administración de BizTalk Server, seleccione Nuevoy, a continuación, haga clic en Parte.
Escriba un nombre para la entidad en el cuadro de texto Nombre y, a continuación, haga clic en Aceptar.
Nota
Al seleccionar la casilla Local BizTalk procesa los mensajes recibidos por la entidad OR admite el envío de mensajes de esta entidad, puede especificar que la entidad que se va a crear sea para la misma organización que también hospeda BizTalk Server. En función de ello, algunas propiedades estarán habilitadas o deshabilitadas cuando se crea un acuerdo. Sin embargo, para este tutorial, puede dejar activada esta casilla.
Haga clic con el botón derecho en el nombre de la entidad, seleccione Nuevoy, a continuación, haga clic en Perfil de negocio.
En el cuadro de diálogo Propiedades del perfil , en la página General , escriba PartyA_Profile en el cuadro de texto Nombre .
Nota
Cuando se crea una entidad, también se crea un perfil. Puede cambiar el nombre y usar ese perfil en lugar de crear uno nuevo. Para cambiar el nombre de un perfil, haga clic con el botón derecho en el perfil y seleccione Propiedades. En la página General , especifique un nombre para el perfil.
Para crear una entidad y un perfil de negocio para la Entidad B
Haga clic con el botón derecho en el nodo Partes de la consola de administración de BizTalk Server, seleccione Nuevoy, a continuación, haga clic en Parte.
Escriba un nombre para la entidad en el cuadro de texto Nombre y, a continuación, haga clic en Aceptar.
Nota
Al seleccionar la casilla Local BizTalk procesa los mensajes recibidos por la entidad OR admite el envío de mensajes de esta entidad, puede especificar que la entidad que se va a crear sea para la misma organización que también hospeda BizTalk Server. En función de ello, algunas propiedades estarán habilitadas o deshabilitadas cuando se crea un acuerdo. Sin embargo, para este tutorial, puede dejar activada esta casilla.
Haga clic con el botón derecho en el nombre de la entidad, seleccione Nuevoy, a continuación, haga clic en Perfil de negocio.
En el cuadro de diálogo Propiedades del perfil , en la página General , escriba PartyB_Profile en el cuadro de texto Nombre .
Nota
Cuando se crea una entidad, también se crea un perfil. Puede cambiar el nombre y usar ese perfil en lugar de crear uno nuevo. Para cambiar el nombre de un perfil, haga clic con el botón derecho en el perfil y seleccione Propiedades. En la página General , especifique un nombre para el perfil.
Para crear un acuerdo entre los dos perfiles de negocio
Haga clic con el botón derecho en PartyA_Profile, seleccione Nuevoy, a continuación, haga clic en Contrato.
En la página Propiedades generales , en el cuadro de texto Nombre , escriba un nombre para el contrato.
En la lista desplegable Protocolo , seleccione X12.
En la sección Second Partner (Segundo partner ), en la lista desplegable Nombre , seleccione PartyB.
En la sección Second Partner (Segundo asociado ), en la lista desplegable Perfil , seleccione PartyB_Profile.
Observará que se agregan dos pestañas nuevas junto a la pestaña General . Cada pestaña es para configurar un contrato unidireccional y cada contrato unidireccional representa una transacción completa del mensaje (incluida la transferencia de mensajes y la transferencia de confirmación).
En la pestaña General , en la página Propiedades generales , en la sección Configuración de host común , seleccione Activar informes y, a continuación, seleccione Almacenar carga de mensajes para los informes.
Realice las siguientes tareas en la pestaña PartyA-PartyB>.
En la página Identificadores de la sección Configuración de intercambio, escriba valores para los campos calificador e identificador (ISA5, ISA6, ISA7 e ISA8) que corresponden a los valores de esos campos de encabezado en el mensaje de prueba.
Nota
BizTalk Server requiere los campos de calificador e identificador para el remitente y el receptor con el fin de realizar la resolución del contrato. Coincidirá con los valores de ISA5, ISA6, ISA7 e ISA8 en el encabezado de intercambio con los de las propiedades de un contrato. BizTalk Server también resolverá el contrato haciendo coincidir el calificador y el identificador del remitente (sin el calificador y el identificador del receptor). Si BizTalk Server no puede resolver el contrato, usará las propiedades del contrato de reserva.
Nota
Si usa el archivo SamplePO.txt del "Tutorial para desarrolladores de interfaz EDI" como mensaje de prueba, establezca ISA5 en ZZ, ISA6 en THEM, ISA7 en ZZ e ISA8 en EE. UU.
En la página Validación de la sección Configuración de intercambio , asegúrese de que la opción Buscar ISA13 duplicada esté desactivada.
Nota
Borrar la propiedad Check for duplicate ISA13 permite recibir varias instancias del mismo mensaje.
En la página Charset and Separators (Conjuntos de caracteres y separadores ) de la sección Configuración de intercambio , seleccione la opción CR LF .
En la página Configuración de lote bajo la sección Configuración de intercambio, haga lo siguiente:
Haga clic en Nuevo lote.
En la sección Identificación , en Nombre de lote , escriba
Batch1
.En la sección Filtro, haga clic en el botón Filtrar y en el cuadro de diálogo Filtro por lotes, haga lo siguiente:
Haga clic en la celda vacía en la columna Propiedad y seleccione BTS. ReceivePortName.
Haga clic en la celda vacía en la columna Operador y seleccione ==.
Haga clic en la celda vacía de la columna Valor y escriba el nombre del puerto de recepción que creó anteriormente.
Haga clic en OK.
En la sección Versión , seleccione el número máximo de conjuntos de transacciones en la opción , en la lista desplegable seleccione Intercambio y, en el cuadro de texto, escriba el número de intercambios que se procesarán por lotes. En esta solución, va a procesar por lotes dos intercambios, por lo que, en el cuadro de texto, escriba
2
.En la sección Activación , seleccione Iniciar inmediatamente.
En la página Sobres de la sección Configuración del conjunto de transacciones , escriba los valores de todas las columnas de la primera línea de la cuadrícula.
Use Para hacer esto Valor predeterminado Seleccione Predeterminado. Nota: Al seleccionar esta fila como valor predeterminado, los valores de GS1, GS2, GS3, GS7 y GS8 se usan incluso si los valores de Tipo de transacción, Versión/Versión y Espacio de nombres de destino no coinciden con el mensaje. Tipo de transacción Seleccione el tipo de mensaje del mensaje de prueba, 850 - Pedido de compra. Versión/Lanzamiento Escriba la versión edi 00401. Espacio de nombres de destino Seleccione http://schemas.microsoft.com/BizTalk/EDI/X12/2006
.GS1 Compruebe que el tipo de mensaje del mensaje de prueba está seleccionado, PEDIDO de compra (850). GS2 Escriba un valor para el remitente de la aplicación, por ejemplo, Compra. GS3 Escriba un valor para el receptor de la aplicación, por ejemplo , OrderControl. GS4 Seleccionar el formato de fecha que desee. Nota: Tiene que seleccionar el valor en la lista desplegable, no solo hacer clic en el campo para mostrar el valor predeterminado. Si hace clic en el campo sin seleccionar el valor de la lista desplegable, el valor no se seleccionará realmente. GS5 Seleccione el formato de hora que desee. GS7 Seleccione X - Comité de estándares acreditados X12. GS8 Compruebe que se ha escrito la versión de EDI , 00401. Nota
BizTalk Server establecerá los valores de GS01, GS02, GS03, GS04, GS05, GS07 y GS08 de las confirmaciones de salida basadas en los valores especificados para tipo de transacción, versión/versión y espacio de nombres de destino. La canalización de envío intenta hacer coincidir el tipo de conjunto de transacciones, la versión X12 y el espacio de nombres de destino con los valores correspondientes del encabezado del mensaje. Si se ejecuta correctamente, usa los valores de GS asociados con los valores de tipo de transacción, versión o versión y espacio de nombres de destino .
Realice las siguientes tareas en la pestaña PartyB-PartyA>.
Nota
En este tutorial, especificamos el valor necesario en la ficha para que se pueda crear un acuerdo correctamente. Para crear correctamente un contrato, ambas pestañas de contrato unidireccional deben tener valores definidos para ISA5, ISA6, ISA7 e ISA8.
En la página Identificadores de la sección Configuración de intercambio, escriba valores para los campos calificador e identificador (ISA5, ISA6, ISA7 e ISA8) que corresponden a los valores de esos campos de encabezado en el mensaje de prueba.
Nota
Si usa el archivo SamplePO.txt del "Tutorial para desarrolladores de interfaz EDI" como mensaje de prueba, establezca ISA5 en ZZ, ISA6 en EE. UU., ISA7 en ZZ e ISA8 en THEM.
Haga clic en Aplicar.
Haga clic en OK. El acuerdo recién agregado aparece en la sección Acuerdos del panel Partes y perfiles empresariales . El acuerdo recién agregado está habilitado de forma predeterminada.
Para crear un puerto de envío estático unidireccional para enviar el intercambio EDI por lotes
Cree una carpeta local a la que enviar el mensaje EDI por lotes.
En BizTalk Server Consola de administración, haga clic con el botón derecho en el nodo Puertos de envío en el nodo Aplicación de BizTalk 1, seleccione Nuevo y, a continuación, haga clic en Puerto de envío unidireccional estático.
En el cuadro de diálogo Propiedades del puerto de envío, asigne un nombre al puerto de envío.
En la sección Transporte , seleccione ARCHIVO para Tipo y, a continuación, haga clic en Configurar.
Escriba una carpeta para Carpeta de destino y un nombre de archivo, como %MessageID%.txt.
Haga clic en OK.
En Enviar canalización, seleccione EdiSend.
En el árbol de consola, seleccione Filtros. En la página Filtros , haga lo siguiente:
En la primera línea de la cuadrícula, seleccione EDI. DestinationPartyName para Property, en Operator, == el nombre seleccionado para que la entidad envíe el lote a para Value y paraGroup by.
En la segunda línea, seleccione EDI. ToBeBatched para Property, == para Operator y False para Value y And for Group by.
En la tercera línea, seleccione EDI. BatchName para Property, == para Operator y el nombre del lote para Value.
Haga clic en OK.
En el árbol de consola, haga clic en Puertos de envío. En el panel Puertos de envío, haga clic con el botón derecho en el puerto de envío y, a continuación, haga clic en Iniciar.
Para asociar el puerto de envío al acuerdo creado para el procesamiento por lotes
Haga clic con el botón derecho en el contrato que creó anteriormente y haga clic en Propiedades.
En el cuadro de diálogo Propiedades del contrato, en la pestaña PartyA-PartyB>, haga clic en Enviar puertos en el panel izquierdo.
En la página Puertos de envío de la sección Configuración de intercambio , asocie el puerto de envío que creó anteriormente. En la cuadrícula Puertos de envío , en la columna Nombre , haga clic en una celda vacía y, en la lista desplegable, seleccione el puerto de envío.
Haga clic en OK.
Probar el tutorial
Esta sección proporciona información acerca de cómo probar el tutorial.
Para probar el tutorial
En el Explorador de Windows, abra la carpeta local asociada a la ubicación de recepción y coloque un intercambio EDI de prueba en la carpeta.
Nota
En el caso de un mensaje de prueba, se puede usar el mensaje de ejemplo 850 usado en el tutorial de programadores de la interfaz EDI. Este archivo se SamplePO.txt en \Archivos de programa (x86)\Microsoft BizTalk Server <VERSION>SDK\EDI Interface Developer Tutorial\. Si lo hace, debe usar el esquema x12_00401_850.xsd ubicado en \Archivos de programa (x86)\Microsoft BizTalk Server <VERSION>SDK\EDI Interface Developer Tutorial\Inbound_EDI.
Coloque una segunda copia del intercambio EDI de prueba en la carpeta.
Abra la carpeta asociada al puerto de envío para los intercambios y abra el intercambio por lotes. Verifique si el intercambio contiene un conjunto de encabezados ISA y GS, y dos conjuntos de transacciones.
Consulte también
Desarrollo y configuración de soluciones EDI de BizTalk Server
Configuración de un lote de salida
Ensamblar un intercambio EDI por lotes
Ensamblar un intercambio EDI por lotes
Tutorial (X12): Recepción de intercambios EDI y devolución de una confirmación
Tutorial (X12): Enviar intercambios EDI