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.

  1. Erstellen Sie ein neues Nachrichtenbrokerprojekt namens 'FTENodesSampleFlowProject'. Weitere Informationen finden Sie im Abschnitt Nachrichtenflussprojekte erstellen in der WebSphere Message Broker-Dokumentation.
    1. Klicken Sie mit der rechten Maustaste auf das Nachrichtenbrokerprojekt und klicken Sie auf Neu > Nachrichtenfluss.
    2. Setzen Sie Nachrichtenflussname auf Branch2HQDriver.msgflow und klicken Sie auf Fertigstellen.
  2. 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)
  3. 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)
  4. Passen Sie den Knoten "Sales Data from Branch (MQ)" an:
    1. Klicken Sie mit der rechten Maustaste auf den Knoten "Sales Data from Branch (MQ)" und klicken Sie auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und setzen Sie Name der Warteschlange auf FTE_STOCK_REQ_BRANCH
    3. Klicken Sie auf Syntaxanalyse der Eingabenachricht und setzen Sie Nachrichtendomäne auf BLOB.
    4. Klicken Sie auf Erweitert und wählen Sie die Eigenschaft Logische Reihenfolge aus.
  5. Passen Sie den Knoten "Prepare for FTEAgent" an:
    1. Klicken Sie mit der rechten Maustaste auf den Knoten "Prepare for FTEAgent" und klicken Sie auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und setzen Sie die Eigenschaft ESQL-Modul auf FTENodesSampleMFlow.Branch2HQDriver_PrepareforFTEAgent.
    3. Setzen Sie die Eigenschaft Rechenmodus auf Lokale Umgebung und Nachricht.
    4. Klicken Sie doppelt auf den Knoten "Prepare for FTEAgent".
    5. 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);
      
  6. Passen Sie den Knoten "File Transfer to HQ (FTE)" an:
    1. Klicken Sie mit der rechten Maustaste auf den Knoten "File Transfer to HQ (FTE)" und klicken Sie anschließend auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und geben Sie für Job name (Jobname) einen Namen Ihrer Wahl an (z. B. Filiale123).
    3. Setzen Sie Agent auf einen entsprechenden Agentennamen mit dem Format MB8BROKER.FTEHQ
    4. Setzen Sie WS-Manager bei Verwendung der Standardkonfiguration auf MB8QMGR.
    5. Setzen Sie Eingabeverzeichnis auf /ToHQ
    6. Setzen Sie Dateiname auf StockReplenishmentRequest_*.xml
    7. 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.

  1. Führen Sie mithilfe des vorher erstellten Nachrichtenbrokerprojekts die folgenden Anweisungen aus:
    1. Klicken Sie mit der rechten Maustaste auf das Nachrichtenbrokerprojekt und klicken Sie auf Neu > Nachrichtenfluss.
    2. Setzen Sie Nachrichtenflussname auf FTEInputBranch2HQMFlow.msgflow und klicken Sie auf Fertigstellen.
  2. 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)
  3. 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)
  4. Passen Sie den Knoten "Receive File from Branch (FTE)" an:
    1. Klicken Sie mit der rechten Maustaste auf "Receive File from Branch (FTE)" und klicken Sie auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und setzen Sie File name filter (Filter für Dateinamen) auf StockReplenishmentRequest_*.xml.
    3. Setzen Sie Maßnahme bei erfolgreicher Verarbeitung auf Löschen.
    4. Klicken Sie auf Syntaxanalyse der Eingabenachricht und setzen Sie Nachrichtendomäne auf XMLNSC.
    5. Klicken Sie auf Datensätze und Elemente und setzen Sie Datensatzerkennung auf Analysierte Satzfolge.
  5. Passen Sie den Knoten "Preserve Branch Details" an:
    1. Klicken Sie mit der rechten Maustaste auf den Knoten "Preserve Branch Details" und klicken Sie auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und setzen Sie ESQL-Modul auf FTENodesSampleMFlow.FTEInputBranch2HQMFlow_PreserveBranchDetails
    3. Setzen Sie Rechenmodus auf Lokale Umgebung und Nachricht.
    4. Klicken Sie doppelt auf den Knoten "Preserve Branch Details".
    5. 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;
  6. Passen Sie den Knoten "Mark End of Branch Data" an:
    1. Klicken Sie mit der rechten Maustaste auf den Knoten "Mark End of Branch Data" und klicken Sie auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und setzen Sie ESQL-Modul auf FTENodesSampleMFlow.FTEInputBranch2HQMFlow_MarkEndofBranchData
    3. Setzen Sie Rechenmodus auf Lokale Umgebung und Nachricht.
    4. Klicken Sie doppelt auf den Knoten "Mark End of Branch Data".
    5. 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';
  7. Passen Sie den Knoten "Eliminate Duplication (Resequence)" an:
    1. Klicken Sie mit der rechten Maustaste auf den Knoten "Eliminate Duplication (Resequence)" und klicken Sie auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und setzen Sie Pfad zur Folgenummer auf $LocalEnvironment/StockReplenishment/SequenceNumber.
    3. Setzen Sie Pfad zur Folgegruppen-ID auf $LocalEnvironment/Wildcard/WildcardMatch
    4. Setzen Sie Ende der Folgedefinition auf Predicate (Prädikat).
  8. Passen Sie den Knoten "Sent to HQ Replenishment App (MQ)" an:
    1. Klicken Sie mit der rechten Maustaste auf den Knoten "Sent to HQ Replenishment App (MQ)" und klicken Sie auf Eigenschaften.
    2. Klicken Sie bei Verwendung der Standardkonfiguration auf Grundeinstellung und setzen Sie Name des Warteschlangenmanagers auf MB8QMGR.
    3. 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.

  1. Führen Sie mithilfe des vorher erstellten Nachrichtenbrokerprojekts die folgenden Anweisungen aus:
    1. Klicken Sie mit der rechten Maustaste auf das Nachrichtenbrokerprojekt und klicken Sie auf Neu > Nachrichtenfluss.
    2. Setzen Sie Nachrichtenflussname auf HQProcessingDriver.msgflow und klicken Sie auf Fertigstellen.
  2. 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)
  3. 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)
  4. Passen Sie den Knoten "Receive Sales Data (MQ)" an:
    1. Klicken Sie mit der rechten Maustaste auf den Knoten "Branch App Input" und klicken Sie auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und setzen Sie Name der Warteschlange auf FTE_STOCK_PROCESS_HQ.
    3. Klicken Sie auf Syntaxanalyse der Eingabenachricht und setzen Sie Nachrichtendomäne auf XMLNSC.
    4. Klicken Sie auf Erweitert und wählen Sie die Eigenschaft Logische Reihenfolge aus.
  5. Passen Sie den Knoten "Demand Driven Replenishment" an:
    1. Klicken Sie mit der rechten Maustaste auf den Knoten "Demand Driven Replenishment" und klicken Sie auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und setzen Sie ESQL-Modul auf FTENodesSampleMFlow.HQProcessingDriver_DemandDrivenReplenishment.
    3. Setzen Sie Rechenmodus auf Lokale Umgebung und Nachricht.
    4. Klicken Sie doppelt auf den Knoten "Demand Driven Replenishment".
    5. 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;
  6. Passen Sie den Knoten "Send Stock Replenishment Invoice (MQ)" an:
    1. Klicken Sie mit der rechten Maustaste auf "Send Stock Replenishment Invoice (MQ)" und klicken Sie auf Eigenschaften.
    2. Klicken Sie bei Verwendung der Standardkonfiguration auf Grundeinstellung und setzen Sie Name des Warteschlangenmanagers auf MB8QMGR.
    3. 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.

  1. Führen Sie mithilfe des vorher erstellten Nachrichtenbrokerprojekts die folgenden Anweisungen aus:
    1. Klicken Sie mit der rechten Maustaste auf das Nachrichtenbrokerprojekt und klicken Sie auf Neu > Nachrichtenfluss.
    2. Setzen Sie Nachrichtenflussname auf FTEOutputHQ2BranchMFlow.msgflow und klicken Sie auf Fertigstellen.
  2. 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)
  3. 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)
  4. Passen Sie den Knoten "Receive Stock Replenishment Invoice (MQ)" an:
    1. Klicken Sie mit der rechten Maustaste auf den Knoten "Receive Stock Replenishment Invoice (MQ)" und klicken Sie auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und setzen Sie Name der Warteschlange auf FTE_STOCK_INVOICE_BRANCH.
    3. Klicken Sie auf Syntaxanalyse der Eingabenachricht und setzen Sie Nachrichtendomäne auf XMLNSC.
    4. Klicken Sie auf Erweitert und wählen Sie die Eigenschaft Logische Reihenfolge aus.
  5. Passen Sie den Knoten "Prepare for FTEAgent" an:
    1. Klicken Sie mit der rechten Maustaste auf den Knoten "Prepare for FTEAgent" und klicken Sie auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und setzen Sie ESQL-Modul auf FTENodesSampleMFlow.FTEOutputHQ2BranchMFlow_PrepareforFTEAgent
    3. Setzen Sie Rechenmodus auf Lokale Umgebung und Nachricht.
    4. Klicken Sie doppelt auf den Knoten "Prepare for FTEAgent".
    5. 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;
  6. Passen Sie den Knoten "Transfer to Branch (FTE)" an:
    1. Klicken Sie mit der rechten Maustaste auf "Transfer to Branch (FTE)" und klicken Sie anschließend auf Eigenschaften.
    2. Klicken Sie auf Grundeinstellung und geben Sie für Job name (Jobname) einen Namen Ihrer Wahl an (z. B. Rechnung an FTEBRANCH123).
    3. Setzen Sie Agent auf einen entsprechenden Agentennamen mit dem Format MB8BROKER.FTEBRANCH123
    4. Setzen Sie WS-Manager bei Verwendung der Standardkonfiguration auf MB8QMGR.
    5. Klicken Sie auf Grundeinstellung und setzen Sie Eingangsverzeichnis auf /ToBranch.
    6. Setzen Sie Dateiname auf StockReplenishmentInvoice_*.xml
    7. 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:

Erstellen Sie die folgenden Brokerarchivdateien (BAR) und fügen Sie die angegebenen Nachrichtenflüsse hinzu:

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:

Siehe Ausführungsgruppe erstellen und Brokerarchivdatei implementieren.

Zurück zum Beginn des Mustercodes