Compartir a través de


Tutorial (X12): Recibir intercambios EDI por lotes

En este tutorial se proporciona un conjunto de procedimientos paso a paso que crean una solución para recibir lotes EDI mediante BizTalk Server. Esta solución muestra dos formas de recibir un intercambio EDI por lotes:

  • Dividiendo el lote en los conjuntos de transacciones que lo componen.

  • Conservando el intercambio procesando el intercambio como un único documento sin dividir los conjuntos de transacciones.

    Estos tutoriales demuestran cómo configurar los lotes de división y conservación.

Requisitos previos

Debe haber iniciado sesión como miembro del grupo administradores de BizTalk Server o BizTalk Server operadores B2B.

Cómo la solución divide los lotes de EDI recibidos

Cuando configura la solución para dividir el intercambio por lotes en conjuntos de transacciones que lo componen, la solución realizará lo siguiente:

  1. La ubicación de recepción recibe un intercambio EDI por lotes que contiene varios conjuntos de transacciones de una entidad.

    Nota

    Puede que los eventos de esta lista no se produzcan en el orden mostrado.

  2. La canalización de recepción divide el intercambio recibido en los conjuntos de transacciones que lo compone y convierte los conjuntos de transacciones en formato XML interno.

  3. La canalización de recepción promociona todo el intercambio y los encabezados de grupo al contexto de cada división del conjunto de transacciones del intercambio. También promociona determinados encabezados de grupo y de intercambio específicos, como ISA6, GS1 y GS2, de forma que estos campos pueden usarse para el enrutamiento.

  4. La canalización de recepción coloca cada archivo XML de conjunto de transacciones en el cuadro de mensajes.

    Nota

    En esta solución, el lote contiene varias instancias del mismo tipo de mensaje.

  5. El puerto de envío recoge cada transacción mediante la suscripción a una propiedad de contexto apropiada.

  6. La canalización de envío genera cada conjunto de transacciones en un intercambio EDI y, a continuación, envía el intercambio al destino.

    Nota

    Para obtener más información sobre cómo BizTalk Server divide los conjuntos de transacciones en un lote, consulte División de un intercambio EDI por lotes.

    La siguiente figura muestra el flujo de mensajes y arquitectura de la solución cuando se configura para dividir los conjuntos de transacciones en el intercambio por lotes.

    División de intercambios EDI por lotes

Cómo la solución conserva los lotes de EDI recibidos

Cuando configura la solución para conservar el intercambio por lotes, la solución realizará lo siguiente:

  1. La ubicación de recepción recibe un intercambio EDI por lotes que contiene varios conjuntos de transacciones de la entidad.

  2. El proceso de canalización procesa el intercambio sin dividir los conjuntos de transacciones, convierte los dos conjuntos de transacciones en una unidad al formato XML interno.

  3. La canalización de recepción promociona las mismas propiedades como si el intercambio no fuese un lote, con la excepción de que se aplicará una etiqueta reservada al XML que genera la canalización. Esta etiqueta es <X12InterchangeXml> para un intercambio EDI codificado en X12 o <EdifactInterchangeXml> para un intercambio EDIFACT codificado en EDIFACT. La canalización de recepción edi también aplica la propiedad ReuseEnvelope de contexto para identificar el intercambio como conservado.

    Nota

    La canalización de envío EDI usa la <etiqueta X12InterchangeXml> o <EdifactInterchangeXml> para identificar el mensaje como un lote conservado. La ReuseEnvelope propiedad context permite crear un puerto de envío que se suscribe a todos los intercambios por lotes que se conservan.

  4. La canalización de recepción coloca el archivo XML del mensaje en el cuadro de mensajes.

  5. El puerto de envío recoge el intercambio mediante la suscripción a una propiedad de contexto apropiada.

  6. La canalización de envío genera los dos conjuntos de transacciones en el archivo XML en un intercambio EDI por lotes y, a continuación, envía el intercambio al destino.

    Nota

    Para obtener más información sobre cómo BizTalk Server procesa un lote conservado, consulte Conservación de un intercambio EDI por lotes recibido.

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.

  • Para realizar pruebas, la solución utiliza un puerto de envío para enviar los intercambios divididos o lotes conservados a una carpeta local.

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.

  • Cree un puerto de recepción para que BizTalk Server reciba el mensaje de entrada codificado por lotes edi X12 .txt de una entidad.

  • Cree un puerto de envío para el servidor BizTalk Server con el fin de crear un intercambio de los conjuntos de transacciones recibidas en el lote (si se divide el lote) o generar un intercambio único a partir de los conjuntos de transacciones en el lote recibido (si se conserva el lote). El puerto de envío, a continuación, envía el intercambio o los intercambios a la entidad de destino. Este puerto de envío será un puerto de envío unidireccional estático.

  • 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.

  • Cree un acuerdo entre los dos perfiles configurando las propiedades de EDI para que se reciba el mensaje dividiendo o conservando el intercambio.

  • Coloque un intercambio EDI por lotes en una carpeta local asociada a la ubicación de recepción. A continuación, podrá comprobar que BizTalk Server ha colocado los intercambios separados del lote recibido (si se divide el lote) o el único intercambio por lotes conservado (si se conserva el lote) en la carpeta asociada al puerto de envío.

    Nota

    Si ha realizado los pasos en el tutorial de envío de intercambios por lotes, puede utilizar la salida de esa solución como la salida para esta solución. La salida de esta solución es un lote de dos mensajes 850. Para obtener más información, vea Tutorial (X12): Envío de intercambios EDI por lotes.

    En esta sección se describen los procedimientos para configurar el tutorial.

Para implementar el esquema de mensajes
  1. 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.

  2. Haga clic con el botón derecho en el proyecto, seleccione Agregar y, a continuación, haga clic en Elemento existente. Vaya a <unidad>:\Archivos de programa\Microsoft BizTalk Server 2009\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 de XSD_SchemaEDI, ejecute el archivoMicrosoftEdiXSDTemplates.exeen la carpeta XSD_SchemaEDI para descomprimir los esquemas en la carpeta predeterminada.

    Nota

    En un mensaje de prueba, puede utilizar el intercambio por lotes que ha generado la solución en el tutorial de envío de intercambios por lotes. La salida de esa solución es un lote de dos instancias del mensaje de ejemplo 850 que se utiliza en el tutorial para programadores de la interfaz EDI. Si lo hace, debe usar el esquema x12_00401_850.xsd ubicado en \Program Files (x86)\Microsoft BizTalk Server <VERSION>SDKEDI Interface Developer TutorialInbound_EDI.

  3. Defina el archivo de clave de ensamblado y, a continuación, genere e implemente el ensamblado.

Procedimiento para crear un puerto de recepción unidireccional para recibir los mensajes EDI procesados por lotes
  1. 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.

  2. Asigne un nombre al puerto de recepción y, a continuación, haga clic en Ubicaciones de recepción en el árbol de consola.

  3. Haga clic en Nueva.

  4. Asigne un nombre a la ubicación de recepción, seleccione ARCHIVO para Tipo y, a continuación, haga clic en Configurar.

  5. Escriba una carpeta para Receive folder y una máscara para File Mask, como *.txt.

  6. Haga clic en OK.

  7. En Canalización de recepción, seleccione EdiReceive.

  8. Haga clic en OK.

  9. 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 un puerto de envío estático unidireccional para enviar el intercambio EDI por lotes
  1. 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.

  2. En el cuadro de diálogo Propiedades del puerto de envío, asigne un nombre al puerto de envío.

  3. En la sección Transporte , seleccione ARCHIVO para Tipo y, a continuación, haga clic en Configurar.

  4. Escriba una carpeta para Carpeta de destino y una máscara para Máscara de archivo, como *.txt.

  5. Haga clic en OK.

  6. En Enviar canalización, seleccione EdiSend.

  7. En el árbol de consola, seleccione Filtros. En la página Filtros , escriba una expresión de filtro que se suscribirá a los mensajes del lote. Por ejemplo, seleccione BTS. ReceivePortName para Property, == para Operator, y el nombre del puerto de recepción que acaba de crear para Value.

  8. Haga clic en OK.

  9. 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 crear una entidad y un perfil de negocio para la Entidad A
  1. 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 Entidad.

  2. Escriba un nombre para la entidad en el cuadro de texto Nombre y, a continuación, haga clic en Aceptar.

    Nota

    Al activar la casilla Local BizTalk procesa los mensajes recibidos por la entidad O admite el envío de mensajes de esta entidad, puede especificar que la entidad que se va a crear es 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.

  3. Haga clic con el botón derecho en el nombre de la entidad, seleccione Nuevoy, a continuación, haga clic en Perfil de negocio.

  4. 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
  1. 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 Entidad.

  2. Escriba un nombre para la entidad en el cuadro de texto Nombre y, a continuación, haga clic en Aceptar.

    Nota

    Al activar la casilla Local BizTalk procesa los mensajes recibidos por la entidad O admite el envío de mensajes de esta entidad, puede especificar que la entidad que se va a crear es 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.

  3. Haga clic con el botón derecho en el nombre de la entidad, seleccione Nuevoy, a continuación, haga clic en Perfil de negocio.

  4. 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
  1. Haga clic con el botón derecho en PartyA_Profile, seleccione Nuevoy, a continuación, haga clic en Contrato.

  2. En la página Propiedades generales , en el cuadro de texto Nombre , escriba un nombre para el contrato.

  3. En la lista desplegable Protocolo , seleccione X12.

  4. En la sección Second Partner (Segundo partner ), en la lista desplegable Nombre , seleccione PartyB.

  5. En la sección Second Partner (Segundo partner ), 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 sirve 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).

  6. En la pestaña General , en la página Propiedades generales , en la sección Configuración común del host , seleccione Activar informes y, a continuación, seleccione Almacenar la carga de mensajes para los informes.

  7. Realice las siguientes tareas en la pestaña PartyA-PartyB>.

    1. En la página Identificadores de la sección Configuración de intercambio, escriba los valores de 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 remitente y receptor para realizar la resolución de acuerdos. 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, ISA6en THEM, ISA7 en ZZ e ISA8 en EE. UU.

    2. En la página Validación de la sección Configuración de intercambio , asegúrese de que la opción Comprobar si hay ISA13 duplicada está desactivada.

      Nota

      Borrar la propiedad Check for duplicate ISA13 permite recibir varias instancias del mismo mensaje.

    3. En la página Conjunto de caracteres y separadores de la sección Configuración de intercambio , seleccione la opción CR LF .

    4. En la página Configuración de host local de la sección Configuración de intercambio , en el cuadro Opción de procesamiento de mensajes de entrada , seleccione la opción Dividir intercambio como conjuntos de transacciones - suspender conjuntos de transacciones en error .

      Nota

      Para empezar, en esta solución dividiremos el intercambio seleccionando esta opción. Más adelante, como parte de Para probar el procedimiento de tutorial siguiente, configuraremos la solución para conservar el intercambio.

    5. 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.

    6. 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 aunque los valores de Tipo de transacción, Versión/Versión y Espacio de nombres de destino no coincidan 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/Edi/X12>.
      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 de 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 especificado la versión de EDI, 00401.

      Nota

      BizTalk Server establecerá los valores de GS01, GS02, GS03, GS04, GS05, GS07 y GS08 de las confirmaciones salientes en función de 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 y versión y espacio de nombres de destino .

  8. 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.

    1. 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.

  9. Haga clic en Aplicar.

  10. 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.

Probar el tutorial

Esta sección proporciona información acerca de cómo probar el tutorial.

Para probar el tutorial

  1. En el Explorador de Windows, abra la carpeta local asociada a la ubicación de recepción y coloca un intercambio EDI por lotes de prueba en una carpeta.

    Nota

    En un mensaje de prueba, puede utilizar la salida de intercambio por lotes que ha generado la solución en el tutorial de envío de intercambios por lotes. Este mensaje de ejemplo contendría dos conjuntos de transacciones.

  2. Abra la carpeta que haya asociado al puerto de envío que haya creado anteriormente. Compruebe que la carpeta contiene dos nuevos archivos y que cada archivo es un intercambio 850 que contiene uno de los conjuntos de transacciones en el mensaje por lotes de prueba.

  3. En la consola de administración de BizTalk Server, haga clic en el nodo Partes, haga clic en cualquiera de los dos perfiles empresariales que forman parte del contrato creado anteriormente. En la sección Contratos , haga clic con el botón derecho en el contrato y haga clic en Propiedades.

  4. En el cuadro de diálogo Propiedades del contrato , en la página Configuración de host local de la sección Configuración de intercambio , en el cuadro Opción de procesamiento de mensajes de entrada , seleccione Conservar intercambio - suspender intercambio en error o Conservar intercambio - suspender conjuntos de transacciones en error y haga clic en Aceptar.

  5. Haga clic en Instancias de host en el nodo Configuración de la plataforma , haga clic con el botón derecho en BizTalkServerApplication y, a continuación, haga clic en Reiniciar.

  6. En el Explorador de Windows, abra la carpeta local asociada a la ubicación de recepción y vuelva a colocar el mismo intercambio EDI por lotes de prueba en la carpeta.

  7. En el Explorador de Windows, abra la carpeta que haya asociado al puerto de envío que haya creado anteriormente. Compruebe que la carpeta contiene ahora solo un nuevo archivo y que éste es un intercambio que contiene los dos conjuntos de transacciones 850 que estaban en el mensaje por lotes de prueba.

Consulte también

Desarrollo y configuración de soluciones EDI de BizTalk Server
División de un intercambio EDI por lotes
División de subdocumentos HIPAA
Conservación de un intercambio EDI por lotes recibido
Tutorial (X12): Enviar intercambios EDI por lotes
Tutorial (X12): Recepción de intercambios EDI y devolución de una confirmación
Tutorial (X12): Enviar intercambios EDI