Mustercode 'Managed File Transfer' erstellen
Sollten bei der Ausführung des Mustercodes Probleme auftreten, lesen Sie den Abschnitt Umgebung für WebSphere MQ File Transfer Edition-Knoten vorbereiten oder den Abschnitt Probleme beim Ausführen von Mustercodes beheben in der Dokumentation zu WebSphere Message Broker.
Nachrichtenfluss 'branch2HQDriver' erstellen
Im folgenden Abschnitt wird beschrieben, wie der Nachrichtenfluss für eine Anwendung erstellt wird, die in einer Filiale am Ende eines jeden Tages eine Datei mit dem Tagesabschluss generiert.
- Erstellen Sie ein neues Nachrichtenbrokerprojekt namens 'FTENodesSampleFlowProject'.
Weitere Informationen finden Sie im Abschnitt Nachrichtenflussprojekte erstellen in der WebSphere Message Broker-Dokumentation.
- Klicken Sie mit der rechten Maustaste auf das Nachrichtenbrokerprojekt und klicken Sie
auf Neu > Nachrichtenfluss.
- Setzen Sie Nachrichtenflussname auf Branch2HQDriver.msgflow und klicken Sie auf Fertigstellen.
- Fügen Sie im Nachrichtenflusseditor die in der folgenden Tabelle aufgelisteten Knoten hinzu und benennen Sie diese um.
Knotentyp |
Knotenname |
MQEmpfang |
Sales Data from Branch (MQ) |
Rechnen |
Prepare for FTEAgent |
FTEOutput |
File Transfer to HQ (FTE) |
- Verbinden Sie die Knoten entsprechend den Anweisungen in der nachfolgenden Tabelle miteinander.
Knotenname |
Terminal |
Mit diesem Knoten verbinden |
Sales Data from Branch (MQ) |
Ausgangsterminal |
Prepare for FTEAgent |
Prepare for FTEAgent |
Ausgangsterminal |
File Transfer to HQ (FTE)(IN) |
- Passen Sie den Knoten "Sales Data from Branch (MQ)" an:
- Klicken Sie mit der rechten Maustaste auf den Knoten "Sales Data from Branch (MQ)" und klicken Sie auf Eigenschaften.
- Klicken Sie auf Grundeinstellung und setzen Sie Name der Warteschlange auf
FTE_STOCK_REQ_BRANCH
- Klicken Sie auf Syntaxanalyse der Eingabenachricht und
setzen Sie Nachrichtendomäne
auf BLOB.
- Klicken Sie auf Erweitert und wählen Sie
die Eigenschaft Logische Reihenfolge aus.
- Passen Sie den Knoten "Prepare for FTEAgent" an:
- Klicken Sie mit der rechten Maustaste auf den Knoten "Prepare for FTEAgent" und klicken Sie auf Eigenschaften.
- Klicken Sie auf Grundeinstellung und setzen Sie die Eigenschaft ESQL-Modul auf FTENodesSampleMFlow.Branch2HQDriver_PrepareforFTEAgent.
- Setzen Sie die Eigenschaft Rechenmodus auf Lokale Umgebung und Nachricht.
- Klicken Sie doppelt auf den Knoten "Prepare for FTEAgent".
- Fügen Sie im Abschnitt BEGIN die folgenden ESQL-Anweisungen hinzu:
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
-- The BranchName(Code) to create the output file is taken from the MQMD Header
SET OutputLocalEnvironment.Wildcard.WildcardMatch = TRIM(InputRoot.MQMD.ApplOriginData);
- Passen Sie den Knoten "File Transfer to HQ (FTE)" an:
- Klicken Sie mit der rechten Maustaste auf den Knoten "File Transfer to HQ (FTE)" und klicken Sie anschließend auf Eigenschaften.
- Klicken Sie auf Grundeinstellung und geben Sie für Job name (Jobname) einen Namen Ihrer Wahl an (z. B. Filiale123).
- Setzen Sie Agent auf einen entsprechenden Agentennamen mit dem Format MB8BROKER.FTEHQ
- Setzen Sie WS-Manager bei Verwendung der Standardkonfiguration auf MB8QMGR.
- Setzen Sie Eingabeverzeichnis auf /ToHQ
- Setzen Sie Dateiname auf StockReplenishmentRequest_*.xml
- Klicken Sie auf Datensätze und Elemente und setzen Sie Datensatzdefinition auf Datensatz 'Gesamte Datei'.
Nachrichtenfluss 'FTEInputBranch2HQMFlow' erstellen
Im folgenden Abschnitt wird beschrieben, wie Sie den Nachrichtenfluss "HQ receiving stock replenishment details" (Eingang von Informationen zu Nachbestellungen in der Zentrale) erstellen.
- Führen Sie mithilfe des vorher erstellten Nachrichtenbrokerprojekts die folgenden Anweisungen
aus:
- Klicken Sie mit der rechten Maustaste auf das Nachrichtenbrokerprojekt und klicken Sie
auf Neu > Nachrichtenfluss.
- Setzen Sie Nachrichtenflussname auf FTEInputBranch2HQMFlow.msgflow und klicken Sie auf Fertigstellen.
- Fügen Sie im Nachrichtenflusseditor die in der folgenden Tabelle aufgeführten Knoten hinzu und benennen Sie diese um:
Knotentyp |
Knotenname |
FTEInput |
Receive File from Branch (FTE) |
Rechnen |
Preserve Branch Details |
Rechnen |
Mark End of Branch Data |
Resequence |
Eliminate Duplication (Resequence) |
MQSenden |
Sent to HQ Replenishment App (MQ) |
- Verbinden Sie die Knoten wie in der folgenden Tabelle angegeben:
Knotenname |
Terminal |
Mit diesem Knoten verbinden |
Receive File from Branch (FTE) |
Ausgangsterminal |
Preserve Branch Details |
Preserve Branch Details |
Ausgangsterminal |
Eliminate Duplication (Resequence) |
Receive File from Branch (FTE) |
Datenendterminal |
Mark End of Branch Data |
Mark End of Branch Data |
Ausgangsterminal |
Eliminate Duplication (Resequence) |
Eliminate Duplication (Resequence) |
Ausgangsterminal |
Sent to HQ Replenishment App (MQ) |
- Passen Sie den Knoten "Receive File from Branch (FTE)" an:
- Klicken Sie mit der rechten Maustaste auf "Receive File from Branch (FTE)" und klicken Sie auf Eigenschaften.
- Klicken Sie auf Grundeinstellung und setzen Sie File name filter (Filter für Dateinamen) auf StockReplenishmentRequest_*.xml.
- Setzen Sie Maßnahme bei erfolgreicher Verarbeitung auf Löschen.
- Klicken Sie auf Syntaxanalyse der Eingabenachricht und
setzen Sie Nachrichtendomäne
auf XMLNSC.
- Klicken Sie auf Datensätze und Elemente und setzen Sie Datensatzerkennung auf Analysierte Satzfolge.
- Passen Sie den Knoten "Preserve Branch Details" an:
- Klicken Sie mit der rechten Maustaste auf den Knoten "Preserve Branch Details" und klicken Sie auf Eigenschaften.
- Klicken Sie auf Grundeinstellung und setzen Sie ESQL-Modul auf FTENodesSampleMFlow.FTEInputBranch2HQMFlow_PreserveBranchDetails
- Setzen Sie Rechenmodus auf Lokale Umgebung und Nachricht.
- Klicken Sie doppelt auf den Knoten "Preserve Branch Details".
- Fügen Sie im Abschnitt BEGIN die folgenden ESQL-Anweisungen hinzu:
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
SET OutputRoot.XMLNSC.StockReplenishment.SequenceNumber = InputLocalEnvironment.FTE.Record;
-- Used by the resequence node to reject duplicate records in a recovery situation
SET OutputLocalEnvironment.Wildcard.WildcardMatch = InputRoot.XMLNSC.StockReplenishment.BranchNumber;
SET OutputLocalEnvironment.StockReplenishment.SequenceNumber = InputLocalEnvironment.FTE.Record;
- Passen Sie den Knoten "Mark End of Branch Data" an:
- Klicken Sie mit der rechten Maustaste auf den Knoten "Mark End of Branch Data" und klicken Sie auf Eigenschaften.
- Klicken Sie auf Grundeinstellung und setzen Sie ESQL-Modul auf FTENodesSampleMFlow.FTEInputBranch2HQMFlow_MarkEndofBranchData
- Setzen Sie Rechenmodus auf Lokale Umgebung und Nachricht.
- Klicken Sie doppelt auf den Knoten "Mark End of Branch Data".
- Fügen Sie im Abschnitt BEGIN die folgenden ESQL-Anweisungen hinzu:
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
-- Take the Branch number from the File Name "StockReplenishmentRequest_*.xml"
SET OutputRoot.XMLNSC.StockReplenishment.BranchNumber = SUBSTRING( InputLocalEnvironment.FTE.Name FROM 27 FOR 3 );
SET OutputRoot.XMLNSC.StockReplenishment.SequenceNumber = InputLocalEnvironment.FTE.Record + 1;
SET OutputRoot.XMLNSC.StockReplenishment.EndofData = 'true';
-- For the Resequence Node
SET OutputLocalEnvironment.Wildcard.WildcardMatch = OutputRoot.XMLNSC.StockReplenishment.BranchNumber;
SET OutputLocalEnvironment.StockReplenishment.SequenceNumber = InputLocalEnvironment.FTE.Record + 1;
SET OutputLocalEnvironment.StockReplenishment.EndofData = 'true';
- Passen Sie den Knoten "Eliminate Duplication (Resequence)" an:
- Klicken Sie mit der rechten Maustaste auf den Knoten "Eliminate Duplication (Resequence)" und klicken Sie auf Eigenschaften.
- Klicken Sie auf Grundeinstellung und setzen Sie Pfad zur Folgenummer auf $LocalEnvironment/StockReplenishment/SequenceNumber.
- Setzen Sie Pfad zur Folgegruppen-ID auf $LocalEnvironment/Wildcard/WildcardMatch
- Setzen Sie Ende der Folgedefinition auf Predicate (Prädikat).
- Passen Sie den Knoten "Sent to HQ Replenishment App (MQ)" an:
- Klicken Sie mit der rechten Maustaste auf den Knoten "Sent to HQ Replenishment App (MQ)" und klicken Sie auf Eigenschaften.
- Klicken Sie bei Verwendung der Standardkonfiguration auf Grundeinstellung und setzen Sie Name des Warteschlangenmanagers auf MB8QMGR.
- Setzen Sie Name der Warteschlange auf FTE_STOCK_PROCESS_HQ
Nachrichtenfluss 'HQProcessingDriver' erstellen
Im folgenden Abschnitt wird beschrieben, wie Sie den Nachrichtenfluss "HQ stock provisioning application" (Anwendung in der Zentrale, die für Warenbereitstellung zuständig ist) erstellen.
- Führen Sie mithilfe des vorher erstellten Nachrichtenbrokerprojekts die folgenden Anweisungen
aus:
- Klicken Sie mit der rechten Maustaste auf das Nachrichtenbrokerprojekt und klicken Sie
auf Neu > Nachrichtenfluss.
- Setzen Sie Nachrichtenflussname auf HQProcessingDriver.msgflow und klicken Sie auf Fertigstellen.
- Fügen Sie im Nachrichtenflusseditor die in der folgenden Tabelle aufgeführten Knoten hinzu und benennen Sie diese um:
Knotentyp |
Knotenname |
MQEmpfang |
Receive Sales Data (MQ) |
Rechnen |
Demand Driven Replenishment |
MQSenden |
Send Stock Replenishment Invoice (MQ) |
- Verbinden Sie die Knoten wie in der folgenden Tabelle angegeben:
Knotenname |
Terminal |
Mit diesem Knoten verbinden |
Receive Sales Data (MQ) |
Ausgangsterminal |
Demand Driven Replenishment |
Demand Driven Replenishment |
Ausgangsterminal |
Send Stock Replenishment Invoice (MQ) |
- Passen Sie den Knoten "Receive Sales Data (MQ)" an:
- Klicken Sie mit der rechten Maustaste auf den Knoten "Branch App Input" und klicken Sie auf Eigenschaften.
- Klicken Sie auf Grundeinstellung und setzen Sie Name der Warteschlange auf FTE_STOCK_PROCESS_HQ.
- Klicken Sie auf Syntaxanalyse der Eingabenachricht und
setzen Sie Nachrichtendomäne
auf XMLNSC.
- Klicken Sie auf Erweitert und wählen Sie
die Eigenschaft Logische Reihenfolge aus.
- Passen Sie den Knoten "Demand Driven Replenishment" an:
- Klicken Sie mit der rechten Maustaste auf den Knoten "Demand Driven Replenishment" und klicken Sie auf Eigenschaften.
- Klicken Sie auf Grundeinstellung und setzen Sie ESQL-Modul auf FTENodesSampleMFlow.HQProcessingDriver_DemandDrivenReplenishment.
- Setzen Sie Rechenmodus auf Lokale Umgebung und Nachricht.
- Klicken Sie doppelt auf den Knoten "Demand Driven Replenishment".
- Fügen Sie im Abschnitt BEGIN die folgenden ESQL-Anweisungen hinzu:
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
-- SET OutputLocalEnvironment.Wildcard.WildcardMatch = InputRoot.XMLNSC.StockReplenishment.BranchNumber;
-- Stock Replenishment changes is processed here
IF ( InputRoot.XMLNSC.StockReplenishment.LineItem.ItemID = 'AA0533' ) THEN
SET OutputRoot.XMLNSC.StockReplenishment.LineItem.ActualSalesUnitPrice = '1.50';
END IF;
IF ( InputRoot.XMLNSC.StockReplenishment.LineItem.ItemID = 'AA0534' ) THEN
SET OutputRoot.XMLNSC.StockReplenishment.LineItem.Quantity = '163';
SET OutputRoot.XMLNSC.StockReplenishment.LineItem.Promotion = '4 for 2.00';
END IF;
- Passen Sie den Knoten "Send Stock Replenishment Invoice (MQ)" an:
- Klicken Sie mit der rechten Maustaste auf "Send Stock Replenishment Invoice (MQ)" und klicken Sie auf Eigenschaften.
- Klicken Sie bei Verwendung der Standardkonfiguration auf Grundeinstellung und setzen Sie Name des Warteschlangenmanagers auf MB8QMGR.
- Setzen Sie Name der Warteschlange auf FTE_STOCK_INVOICE_BRANCH
Nachrichtenfluss 'FTEOutputHQ2BranchMFlow' erstellen
Im folgenden Abschnitt wird beschrieben, wie Sie den Nachrichtenfluss "Branch outlets receive stock replenishment XML file from HQ" (Eingang der XML-Nachbestellungsdatei aus der Zentrale in den Filialen) erstellen.
- Führen Sie mithilfe des vorher erstellten Nachrichtenbrokerprojekts die folgenden Anweisungen
aus:
- Klicken Sie mit der rechten Maustaste auf das Nachrichtenbrokerprojekt und klicken Sie
auf Neu > Nachrichtenfluss.
- Setzen Sie Nachrichtenflussname auf FTEOutputHQ2BranchMFlow.msgflow und klicken Sie auf Fertigstellen.
- Fügen Sie im Nachrichtenflusseditor die in der folgenden Tabelle aufgelisteten Knoten hinzu und benennen Sie diese um.
Knotentyp |
Knotenname |
MQEmpfang |
Receive Stock Replenishment Invoice (MQ) |
Rechnen |
Prepare for FTEAgent |
FTEOutput |
Transfer to Branch (FTE) |
- Verbinden Sie die Knoten entsprechend den Anweisungen in der nachfolgenden Tabelle miteinander.
Knotenname |
Terminal |
Mit diesem Knoten verbinden |
Receive Stock Replenishment Invoice (MQ) |
Ausgangsterminal |
Prepare for FTEAgent |
Prepare for FTEAgent |
Ausgangsterminal |
Transfer to Branch (FTE)(In) |
Prepare for FTEAgent |
Ausgangsterminal1 |
Transfer to Branch (FTE)(Finish File) |
- Passen Sie den Knoten "Receive Stock Replenishment Invoice (MQ)" an:
- Klicken Sie mit der rechten Maustaste auf den Knoten "Receive Stock Replenishment Invoice (MQ)" und klicken Sie auf Eigenschaften.
- Klicken Sie auf Grundeinstellung und setzen Sie Name der Warteschlange auf FTE_STOCK_INVOICE_BRANCH.
- Klicken Sie auf Syntaxanalyse der Eingabenachricht und
setzen Sie Nachrichtendomäne
auf XMLNSC.
- Klicken Sie auf Erweitert und wählen Sie
die Eigenschaft Logische Reihenfolge aus.
- Passen Sie den Knoten "Prepare for FTEAgent" an:
- Klicken Sie mit der rechten Maustaste auf den Knoten "Prepare for FTEAgent" und klicken Sie auf Eigenschaften.
- Klicken Sie auf Grundeinstellung und setzen Sie ESQL-Modul auf FTENodesSampleMFlow.FTEOutputHQ2BranchMFlow_PrepareforFTEAgent
- Setzen Sie Rechenmodus auf Lokale Umgebung und Nachricht.
- Klicken Sie doppelt auf den Knoten "Prepare for FTEAgent".
- Fügen Sie im Abschnitt BEGIN die folgenden ESQL-Anweisungen hinzu:
-- CALL CopyMessageHeaders();
CALL CopyEntireMessage();
SET OutputLocalEnvironment.Wildcard.WildcardMatch = InputRoot.XMLNSC.StockReplenishment.BranchNumber;
IF ( InputRoot.XMLNSC.StockReplenishment.EndofData = 'true' ) THEN
PROPAGATE TO TERMINAL 'out1';
RETURN FALSE;
END IF;
RETURN TRUE;
- Passen Sie den Knoten "Transfer to Branch (FTE)" an:
- Klicken Sie mit der rechten Maustaste auf "Transfer to Branch (FTE)" und klicken Sie anschließend auf Eigenschaften.
- Klicken Sie auf Grundeinstellung und geben Sie für Job name (Jobname) einen Namen Ihrer Wahl an (z. B. Rechnung an FTEBRANCH123).
- Setzen Sie Agent auf einen entsprechenden Agentennamen mit dem Format MB8BROKER.FTEBRANCH123
- Setzen Sie WS-Manager bei Verwendung der Standardkonfiguration auf MB8QMGR.
- Klicken Sie auf Grundeinstellung und setzen Sie Eingangsverzeichnis auf /ToBranch.
- Setzen Sie Dateiname auf StockReplenishmentInvoice_*.xml
- Klicken Sie auf Datensätze und Elemente und setzen Sie Datensatzdefinition auf Datensatz 'Nicht geänderte Daten'.
Brokereigenschaften erstellen
Um den Mustercode ausführen zu können, müssen Sie folgende lokale Warteschlangen erstellen:
- FTE_STOCK_INVOICE_BRANCH
- FTE_STOCK_PROCESS_HQ
- FTE_STOCK_REQ_BRANCH
Erstellen Sie die folgenden Brokerarchivdateien (BAR) und fügen Sie die angegebenen Nachrichtenflüsse hinzu:
- BRANCH_DRIVER_ARCHIVE.bar
- HQ_ARCHIVE.bar
- FTEInputBranch2HQMFlow.msgflow
- FTEOutputHQ2BranchMFlow.msgflow
- HQProcessingDriver.msgflow
Weitere Informationen zum Erstellen eines Brokerarchivs
finden Sie im Abschnitt Brokerarchiv erstellen.
Erstellen Sie die folgenden Ausführungsgruppen und implementieren sie die angegebene BAR-Datei:
- FTEBRANCH123
- BRANCH_DRIVER_ARCHIVE.bar
- FTEHQ
Siehe Ausführungsgruppe erstellen und
Brokerarchivdatei implementieren.
Zurück zum Beginn des Mustercodes