Das Beispielprogramm EDIFACT ausführen
In diesem Abschnitt wird erläutert, wie die Testnachrichten durch den Nachrichtenfluss von EDIFACT gesendet werden.
Die Eingabenachrichten
Im Beispielprogramm EDIFACT sind folgende fünf Testnachrichten enthalten.
- D.96A_INVOIC_1.enqueue
- D.96A_INVOIC_2.enqueue
- D.96A_INVOIC_3.enqueue
- D.96A_INVOIC_4.enqueue
- D.96A_INVOIC_missing_BGM.enqueue
Bei allen fünf Nachrichten handelt es sich um INVOIC-Nachrichten.
Die ersten vier Eingabenachrichten sind gültig.
Die fünfte Eingabenachricht ist ungültig, da das BGM-Feld in der Nachricht fehlt.
Das Beispielprogramm ausführen
Zur Ausführung des Beispielprogramms ist eine Nachrichteneinreihung in die Eingabewarteschlangen und ein Nachrichtenabruf aus den Ausgabewarteschlangen erforderlich. Befolgen Sie nachfolgende Anweisungen:
- Stellen Sie eine Eingabenachricht in die Warteschlange EDIFACT_TO_XML_IN.
Wenn Sie eine Nachricht in die Warteschlange EDIFACT_TO_XML_IN stellen, wird die Nachricht vom MQEmpfangsknoten EDIFACT_TO_XML_IN im ersten Nachrichtenfluss (mit dem Namen VALIDATINGEDIFACT2XML.msgflow) syntaktisch analysiert und anhand der Nachrichtengruppe auf Gültigkeit geprüft:
- Wenn die Nachricht eine gültige EDIFACT-Nachricht ist, wird sie an den Rechenknoten übergeben, der die EDIFACT-Nachricht in eine XML-Nachricht konvertiert.
Der Rechenknoten übergibt anschließend die Nachricht an den MQSendeknoten EDIFACT_TO_XML_OUT, der die Nachricht in die Warteschlange EDIFACT_TO_XML_OUT stellt.
- Wenn die Nachricht keine gültige EDIFACT-Nachricht ist, wird sie an den Knoten EDIFACT_FAIL weitergegeben, der die Nachricht in die Warteschlange EDIFACT_FAIL stellt.
- Rufen Sie die umgewandelte Nachricht aus der Warteschlange EDIFACT_TO_XML_OUT ab, und speichern Sie die Nachricht.
Bei der Nachricht handelt es sich jetzt um eine Nachricht im XML-Format.
- Stellen Sie die gespeicherte Nachricht in die Warteschlange XML_TO_EDIFACT_IN.
Wenn Sie die Nachricht in die Warteschlange XML_TO_EDIFACT_IN stellen, wird die Nachricht vom MQEmpfangsknoten XML_TO_EDIFACT_IN im zweiten Nachrichtenfluss (mit dem Namen VALIDATINGXML2EDIFACT.msgflow) syntaktisch analysiert und anhand der Nachrichtengruppe auf Gültigkeit überprüft:
- Wenn die Nachricht eine gültige XML-Nachricht ist, wird sie an den Rechenknoten übergeben, der die XML-Nachricht in eine EDIFACT-Nachricht konvertiert.
Der Rechenknoten übergibt anschließend die Nachricht an den MQSendeknoten XML_TO_EDIFACT_OUT, der die Nachricht in die Warteschlange XML_TO_EDIFACT_OUT stellt.
- Wenn die Nachricht keine gültige XML-Nachricht ist, wird die Nachricht an den Knoten EDIFACT_FAIL weitergegeben, der die Nachricht in die Warteschlange EDIFACT_FAIL stellt.
- Rufen Sie die Nachricht aus der Warteschlange XML_TO_EDIFACT_OUT ab.
Bei der Nachricht handelt es sich nun um eine EDIFACT-Nachricht.
Wenn keine Nachricht in der Warteschlange EDIFACT_TO_XML_OUT bzw. XML_TO_EDIFACT_OUT vorhanden
ist, lesen Sie den Abschnitt
Fehler diagnostizieren. Möglicherweise befindet sich die Nachricht
immer noch in der Eingabewarteschlange oder in der Warteschlange EDIFACT_FAIL bzw. in einer der
Systemwarteschlangen.
Die Nachricht 'D.96A_INVOIC_missing_BGM.txt'
Wenn Sie die Nachricht 'D.96A_INVOIC_missing_BGM.txt' durch den ersten Nachrichtenfluss senden, schlägt die Gültigkeitsprüfung auf dem MQEmpfangsknoten EDIFACT_TO_XML_IN fehl.
Der MQEmpfangsknoten generiert einen Fehler, da das BGM-Feld in der Nachricht fehlt.
Der Fehler kann im Anwendungsprotokoll der Windows-Ereignisanzeige aufgerufen werden. Der Fehlertext lautet wie folgt:
Message Validation failure (Gültigkeitsprüfung für Nachricht fehlgeschlagen). An element, that has been deemed complete,
does not meet the minOccurs constraint (Ein Element,
das für vollständig gehalten wurde, erfüllt die Einschränkung 'minOccurs' nicht). Element, BGM, has 0 instances on the
logical tree, but has been defined or qualified with a minOccurs constraint
of 1 within its parent type/element INVOIC of index 1. Adjust the minOccurs
constraint downwards and redeploy to the broker or increase the instances of
the element in the message itself (Das Element BGM
hat 0 Instanzen in der logischen Baumstruktur. Es wurde jedoch mit der Einschränkung 'minOccurs'
gleich 1 innerhalb des übergeordneten Typs/Elements INVOIC mit dem Index 1 definiert oder
qualifiziert. Korrigieren Sie die Einschränkung 'minOccurs' nach unten, und führen Sie den Einsatz
für den Broker erneut durch, oder erhöhen Sie die Instanzen des Elements in der Nachricht
selbst).
Zurück zum Beginn des Beispielprogramms