Außerkraftsetzen von HEADER-Werten für ausgehende X12 997

Dieser Artikel enthält Informationen zum Beheben von Problemen, wenn Sie HEADER-Werte (Electronic Data Interchange, ELEKTRONISCHEr Datenaustausch) für ausgehende X12 997 außer Kraft setzen.

Ursprüngliche Produktversion:   BizTalk Server 2010
Ursprüngliche KB-Nummer:   2753540

Problembeschreibung

Wenn sie OverrideEDIHeader wie beim Überschreiben von HEADERn dokumentiert wird, um DIE HEADER für ein ausgehendes X12 997-Dokument außer Kraft zu setzen, tritt der folgende Fehler auf:

Beim Ausführen der Sendepipeline ist ein Fehler aufgetreten: "Microsoft.BizTalk.Intranet.DefaultPipelines.IntranetSend, Microsoft.BizTalk.Intranet.IntranetPipelines, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Quelle: "BALGAssembler" Sendeport: "SENDPORTNAME" URI: "SENDPORTURI" Grund: Vertragsauflösung basierend auf den Kontexteigenschaften für das x12-Protokoll ist fehlgeschlagen.

Ursache

EDI receive erstellt, 997s wobei die folgenden vier Kontexteigenschaften bereits festgelegt sind:

  • DestinationPartyReceiverIdentifier
  • DestinationPartyReceiverQualifier
  • DestinationPartySenderIdentifier
  • DestinationPartySenderQualifier

Aufgrund dieser Situation gilt weiterhin die Logik bei Agreement Resolution und Schema Determination für ausgehende GATT-Nachrichten.

Lösung

Um die OVERRIDE-HEADER zu verwenden, muss die benutzerdefinierte Pipelinekomponente zuerst die oben genannten vier Kontexteigenschaften entfernen.

Nachfolgend finden Sie den Execute() Beispielcode für eine Pipelinekomponente, die eine ISA05 ISA06 ISA07 ISA08 ausgehende 997-Nachricht festlegt, und zwar .

public IBaseMessage Execute(IPipelineContext pContext, IBaseMessage pInMsg)
{
    string EdiPropertyNS = "http://schemas.microsoft.com/BizTalk/2006/edi-properties";
    string EdiNS = "http://schemas.microsoft.com/Edi/PropertySchema";
    string EDi997NS = "http://schemas.microsoft.com/Edi/X12#X12_997_Root";
    string systemPropertiesNs = "http://schemas.microsoft.com/BizTalk/2003/system-properties";

    if (pInMsg.Context.Read("MessageType", systemPropertiesNs).ToString() == EDi997NS)
    {
        pInMsg.Context.Write("DestinationPartyReceiverIdentifier", EdiNS, null);
        pInMsg.Context.Write("DestinationPartyReceiverQualifier", EdiNS, null);  
        pInMsg.Context.Write("DestinationPartySenderIdentifier", EdiNS, null);  
        pInMsg.Context.Write("DestinationPartySenderQualifier", EdiNS, null);  
        pInMsg.Context.Promote("OverrideEDIHeader", EdiPropertyNS, (object)"True");
        pInMsg.Context.Promote("ISA05", EdiPropertyNS, (object)"00;
        pInMsg.Context.Promote("ISA06", EdiPropertyNS, (object)"1111111111");
        pInMsg.Context.Promote("ISA07", EdiPropertyNS, (object)"ZZ");
        pInMsg.Context.Promote("ISA08", EdiPropertyNS, (object)"AAAAAAAAAAAAAAA");
    }
    return pInMsg;
}