Problemas conocidos del procesamiento por lotes de EDI
En este tema se describen los problemas conocidos de procesamiento por lotes en BizTalk Server.
La división de subdocumentos no se realizó aunque la anotación de subdocumentos se estableció en Sí
Síntoma
Un intercambio HIPAA no se ha dividido en subdocumentos aunque la anotación subdocument_creation_break en el esquema HIPAA para dicho intercambio se estableció en "Sí".
Causa posible
La opción Procesamiento por lotes de entrada para la entidad de envío se estableció en "Conservar intercambio". Un documento HIPAA no se dividirá en subdocumentos si este es el caso, aunque la anotación subdocument_creation_break dentro del esquema HIPAA esté establecida en "Sí".
La anotación subdocument_break se estableció en "Sí", pero la anotación subdocument_creation_break no se estableció en "Sí".
Resolución
En la página Validación y Configuración de generación de ACK del cuadro de diálogo Propiedades de EDI para la entidad de envío, establezca la propiedad de opción Procesamiento por lotes de entradaen Dividir intercambio como conjuntos de transacciones: suspenda conjuntos de transacciones en error o Dividir intercambio como conjuntos de transacciones, suspenda intercambio en error.
Un documento HIPAA no se dividirá en subdocumentos a menos que la anotación de subdocument_creation_break se establezca en “Sí”.
Se puede producir un error en la validación de un lote si se realizan cambios en los ajustes de configuración del lote mientras que la orquestación de procesamiento por lotes está activada.
Si cambia la configuración de lotes mientras la orquestación de procesamiento por lotes está procesando un lote, éste no reflejará la nueva configuración. Esto puede dar como resultado errores de validación en la canalización de envío.
Estas opciones de configuración se encuentran en la página Lotes del cuadro de diálogo Propiedades de EDI.
Para resolver este problema, reinicie las instancias de host asociadas a las orquestaciones de procesamiento por lotes. Esto hace que el cambio en los parámetros de configuración del lote se aplique de forma inmediata.
La ubicación de recepción BatchControlMessageRecvLoc sólo se puede ejecutar en un equipo de 32 bits o en WOW en un equipo de 64 bits.
Los adaptadores de SQL sólo funcionan en equipos de 32 bits o cuando se ejecutan en el emulador WOW64 en equipos de 64 bits. Como resultado, la ubicación de recepción BatchControlMessageRecvLoc, que se instala mediante el programa de configuración y usa el adaptador de SQL, sólo funcionará en un equipo de 32 bits o al ejecutarse en WOW en un equipo de 64 bits. Se requiere esta ubicación de recepción para el procesamiento por lotes.
Al ejecutar la ubicación de recepción BatchControlMessageRecvLoc en WOW en un equipo de 64 bits, debe ejecutar las orquestaciones de procesamiento por lotes en un host distinto. Si se ejecutan en el mismo host como ubicación de recepción, las orquestaciones de procesamiento por lotes también se ejecutarán en WOW y perderá las ventajas de ejecutarlas en un equipo de 64 bits.
Un puerto de envío no esperado puede recoger un lote.
Cuando la orquestación por lotes publica un intercambio, promueve dos propiedades: ToBeBatched = False y DestinationPartyName = <PartyName>. Un puerto de envío que se suscribe a una de estas propiedades o ambas puede recoger estos intercambios procesados por lotes. Compruebe que los filtros del puerto de envío se configuran de modo que el puerto de envío recoge dichos intercambios procesados por lotes para lo que ha sido diseñado.
Un número de elementos de lotes superior al número de conjuntos de transacciones requerido para un lote puede que no solicite la versión del lote.
Si los criterios de versión del lote se basan en el número de conjuntos de transacciones por grupo o intercambio, es posible que un lote no se lance aunque el número de elementos de lotes sea superior al número de conjuntos de transacciones requerido para el lote que se va a lanzar. Esto puede suceder si habilita las confirmaciones y configura los criterios de filtro de lotes para agregar dichas confirmaciones al lote. En esta instancia, el número de elementos por lotes del grupo (o intercambio) será superior al número de conjuntos de transacciones por grupo (o intercambio). En dicha instancia, se lanzará un lote si el número de conjuntos de transacciones por grupo (o intercambio) es inferior al número requerido para el lanzamiento del lote, aunque al mismo tiempo el número de elementos por lotes puede ser superior al número de conjuntos de transacciones requerido para el lanzamiento del lote.
No se han guardado elementos por lotes cuando se ha hecho clic en Iniciar.
Síntoma
Al hacer clic en el botón Iniciar de la página Lotes de una entidad, no se han recopilado mensajes para el lote.
Causa posible
La fecha y hora en la que se hizo clic en Inicio era anterior a la fecha y hora especificada en la sección Activación . Como resultado, la instancia de orquestación se activó, pero no se recopiló ningún mensaje para el lote. Para obtener más información, consulte Configuración de un lote saliente.
Resolución
Haga clic en Detener en la página Lotes para la configuración del lote que tiene este problema. Establezca la activación en Iniciar inmediatamente o escriba una fecha y hora anterior a la hora actual y, a continuación, haga clic en Iniciar. Cuando se le pida que restablezca la fecha y hora de inicio a la hora actual, haga clic en Aceptar. BizTalk Server empezará a recopilar mensajes para un lote en dicho punto.
El número de bytes en un lote EDIFACT puede que dependa del juego de caracteres utilizado.
Los caracteres de algunos juegos de caracteres EDIFACT pueden ser caracteres de doble byte, mientras que en otros juegos de caracteres EDIFACT pueden ser caracteres de un solo byte. Debido a ello, al establecer los criterios de versión para lotes basados en el número de caracteres del intercambio, el número de bytes del intercambio puede ser distinto en función del juego de caracteres utilizado.
Los caracteres "<" y "&" deben representarse en su forma codificada en el sobre de un lote
BizTalk Server no admite los siguientes caracteres en su forma literal al crear los campos de sobre de un intercambio EDI por lotes: "<" y "&".
El uso de estos caracteres de forma literal en los campos de sobre de un intercambio procesado por lotes saliente dará como resultado un mensaje suspendido si se usa la canalización EdiSend para serializar el intercambio.
Si es necesario usar uno de estos caracteres en un campo de sobre de un lote, puede usar el valor codificado adecuado en la siguiente tabla al configurar el campo de sobre del administrador de BizTalk:
Carácter | Encoding |
---|---|
< | < |
& | & |
Si usa una de estas formas codificadas, los caracteres codificados se contarán como caracteres individuales cuando BizTalk Server valide la restricción de longitud del campo en las pantallas del Administrador de acuerdos de socios comerciales (PAM) de la consola de administración de BizTalk Server. Por ejemplo, aunque la codificación "<" representaría un solo carácter "<" en el intercambio EDI por lotes, BizTalk Server contaría esto como cuatro caracteres al validar con la restricción de longitud del campo determinado. Éste sólo es un problema de PAM, no del ensamblador EDI.
Se produce una excepción durante la ejecución de la orquestación de actualización por lotes
Síntoma
Al usar un componente de canalización personalizado que establece la propiedad EDI.DestinationPartyId en documentos entrantes, es posible que reciba un error en el registro de eventos de la aplicación que indica que se produjo una excepción durante la ejecución de la orquestación del lote de actualización.
Causa posible
Si ErrorMessage = “No se encontró el lote”, este error indica que la orquestación del lote de actualización no pudo identificar correctamente un lote para el documento de entrada.
Resolución
La orquestación del lote de actualización usa el EDI.DestinationPartyId para buscar el nombre de la entidad. A continuación, la orquestación construye una cadena mediante el nombre de entidad, EDI.EncodingType y la cadena “Default” y busca una configuración de lote con un nombre de lote que coincida. Si no existe ninguna configuración de lote con este nombre, este error se registra en el registro de eventos de la aplicación y se suspende la instancia de la orquestación.
Nota:
Por ejemplo, si el nombre de la entidad es Contoso y el EDI.EncodingType es X12, la orquestación buscará un lote denominado ‘ContosoX12Default’.
Para solucionar este problema, asegúrese de que existe un lote con un nombre que coincida con la cadena que construye la orquestación del lote de actualización.
Los mensajes marcados con EDI.ToBeBatched = True y EDI.DestinationParties están suspendidos
Síntomas
Al usar un componente de canalización personalizado con el fin de marcar mensajes para lotes al establecer EDI.ToBeBatched = True y EDI.DestinationParties en una lista de identificadores de entidades, el mensaje se suspenderá con un error de enrutamiento que indica que no hay suscriptores.
Causa posible
En versiones anteriores de BizTalk Server, cuando se debe procesar un mensaje mediante varias configuraciones por lotes, establecería edi. Propiedad DestinationParties en una lista delimitada por espacios de identificadores de entidad. La orquestación de enrutamiento se suscribe a mensajes mediante la propiedades EDI.ToBeBatched = True y EDI.DestinationParties y usaba la lista de identificadores de entidad incluidos en la propiedad EDI.DestinationParties para crear un mensaje para cada identificador y luego transferir los mensajes a la orquestación de lote. Se usaba la determinación del lote mediante el identificador de entidad porque cada configuración de entidad solo podía tener una configuración de lote.
En BizTalk Server, cada entidad puede tener varias configuraciones por lotes, por lo que ya no es suficiente usar solo el identificador de pary para determinar la configuración por lotes que se va a usar. Para indicar que un mensaje debe ser procesado mediante varias configuraciones de lote, el mensaje debe tener la propiedad EDI.BatchIDs configurada en una lista delimitada por espacios de identificadores de lote a la que debe enviarse el mensaje.
Nota
Al procesar mensajes marcados solo con un único identificador de entidad mediante la propiedad EDI.DestinationPartyId, el mensaje será procesado por la orquestación del lote de actualización. Para obtener más información, vea Ensamblar un intercambio EDI por lotes.
Resolución
Actualice el componente de canalización personalizado de modo que establezca la propiedad EDI.BatchIDs en lugar de EDI.DestinationParties. El identificador de lote para un lote específico puede encontrarse en la página de configuración Lotes de las propiedades de EDI para cada entidad.
Nota
Este problema no tiene lugar si se usa el componente de canalización BatchMarker para marcar el mensaje para lote.
El tiempo de espera de actualización del filtro de lote está codificado en quince minutos
Al modificar los criterios de filtro del lote, transcurrirán 15 minutos hasta que entren en vigor los cambios. Este intervalo de actualización no se puede modificar. Para que el filtro entre en vigor inmediatamente, reinicie el proceso de host de BizTalk Server.
RoutingOrchestration se suspende después de informar de una excepción no detectada
Síntomas
Al procesar documentos destinados para varias configuraciones de lote, es posible que reciba un error en el registro de eventos de la aplicación desde XLANG/s en el que se indica que se ha producido un error en Microsoft.BizTalk.Edi.RoutingOrchestration.BatchRoutingService debido a una excepción no detectada.
Causa posible
Este error puede tener lugar cuando RoutingOrchestration intenta enviar un mensaje a BatchingOrchestration y no se ha iniciado la instancia de BatchingOrchestration.
Resolución
Asegúrese de que se están ejecutando las instancias de BatchingOrchestration antes de enviar documentos para su procesamiento por lotes.
Muchos lotes activos pueden hacer que el archivo de registro BizTalkMsgBoxDb aumente demasiado de tamaño
Síntomas
Tras iniciar varios lotes, es posible que observe que el registro de transacciones de la base de datos de cuadro de mensajes de BizTalk (BizTalkMsgBoxDb) ha crecido demasiado.
Causa posible
Este problema puede suceder si ha iniciado un elevado número de lotes con criterios de liberación que provocan un corto intervalo entre liberaciones de lotes (por ejemplo, un lote programado para liberarse cada minuto).
La instancia de la orquestación del lote que se crea al iniciar un lote es un proceso de larga ejecución que persiste en la base de datos tras liberar un lote. Cada vez que persiste la orquestación, el registro de transacciones aumentará de tamaño debido a las transacciones implicadas en la persistencia.
Nota
La orquestación de lote incrementará el registro de transacciones en unos 30 kb aproximadamente durante la persistencia.
Resolución
Para resolver este problema, modifique los criterios de liberación de modo que aumente el tiempo entre liberaciones de lotes. Para obtener más información, vea Configuring Batching (X12) (Configuración de procesamiento por lotes [X12]).
Consulte también
Configuración de confirmaciones de EDI
Procesamiento de lotes de entrada
Procesamiento por lotes mensajes EDI salientes
Configuración de lotes de EDI