构建受管文件传输样本
如果在运行样本时发生问题,请参阅 IBM Integration Bus 文档中的为
WebSphere MQ File Transfer Edition 节点准备环境 或解决运行样本时的问题 。
创建 branch2HQDriver 消息流
使用以下指示信息来创建分店日结销售应用程序消息流。
创建名为 FTENodesSampleFlowProjecte 的新 Integration 项目。有关更多信息,请参阅 IBM Integration Bus 文档中的创建 Integration 项目 。
右键单击该 Integration 项目,然后单击“新建 > 消息流 ”。
将“消息流名称 ”设置为 Branch2HQDriver.msgflow ,然后单击“完成 ”。
在“消息流”编辑器中,添加并重命名下表中列出的节点。
节点类型
节点名
MQInput
Sales Data from Branch (MQ)
Compute
Prepare for FTEAgent
FTEOutput
File Transfer to HQ (FTE)
按下表中所述连接节点。
节点名
终端
连接到此节点
Sales Data from Branch (MQ)
Out
Prepare for FTEAgent
Prepare for FTEAgent
Out
File Transfer to HQ (FTE)(IN)
定制“Sales Data from Branch (MQ)”节点:
右键单击“Sales Data from Branch (MQ)”节点,然后单击“属性 ”。
单击“基本 ”,将“队列名 ”设置为 FTE_STOCK_REQ_BRANCH
单击“输入消息解析 ”,将“消息域 ”设置为 BLOB 。
单击“高级 ”,然后选择“逻辑顺序 ”属性。
定制“Prepare for FTEAgent”节点:
右键单击“Prepare for FTEAgent”节点,然后单击“属性 ”。
单击“基本 ,将“ESQL 模块 ”设置为 FTENodesSampleMFlow.Branch2HQDriver_PrepareforFTEAgent
将“计算方式 ”设置为“本地环境和消息 ”。
双击“Prepare for FTEAgent”节点。
在 BEGIN 部分中添加以下 ESQL 语句:-- 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);
定制“File Transfer to HQ (FTE)”节点:
右键单击“File Transfer to HQ (FTE)”节点,然后单击“属性 ”。
单击“基本 ”,将“作业名 ”设置为您选择的名称,例如 Branch123
将“代理程序 ”设置为使用以下格式的相应代理程序名称:IB9NODE.FTEHQ
如果您使用的是缺省配置,请将“队列管理器 ”设置为 IB9QMGR
将“输入目录 ”设置为 /ToHQ
将“文件名 ”设置为 StockReplenishmentRequest_*.xml
单击“记录和元素 ”,将“记录定义 ”设置为“记录是整个文件 ”。
创建 FTEInputBranch2HQMFlow 消息流
使用以下指示信息来创建“HQ 接收库存补货详细信息”消息流。
使用先前创建的 Integration 项目,按照以下指示信息完成操作:
右键单击该 Integration 项目,然后单击“新建 > 消息流 ”。
将“消息流名称 ”设置为 FTEInputBranch2HQMFlow.msgflow ,然后单击“完成 ”。
在“消息流”编辑器中,添加并重命名下表中列出的节点:
节点类型
节点名
FTEInput
Receive File from Branch (FTE)
Compute
Preserve Branch Details
Compute
Mark End of Branch Data
Resequence
Eliminate Duplication (Resequence)
MQOutput
Sent to HQ Replenishment App (MQ)
按下表中所述连接节点:
节点名
终端
连接到此节点
Receive File from Branch (FTE)
Out
Preserve Branch Details
Preserve Branch Details
Out
Eliminate Duplication (Resequence)
Receive File from Branch (FTE)
End of Data
Mark End of Branch Data
Mark End of Branch Data
Out
Eliminate Duplication (Resequence)
Eliminate Duplication (Resequence)
Out
Sent to HQ Replenishment App (MQ)
定制“Receive File from Branch (FTE)”节点:
右键单击“Receive File from Branch (FTE)”节点,然后单击“属性 ”。
单击“基本 ”,将“文件名过滤器 ”设置为 StockReplenishmentRequest_*.xml
将“成功处理操作 ”设置为“删除 ”。
单击“输入消息解析 ”,将“消息域 ”设置为 XMLNSC 。
单击“记录和元素 ”,将“记录检测 ”设置为“解析的记录顺序 ”。
定制“Preserve Branch Details”节点:
右键单击“Preserve Branch Details”节点,然后单击“属性 ”。
单击“基本 ,将“ESQL 模块 ”设置为 FTENodesSampleMFlow.FTEInputBranch2HQMFlow_PreserveBranchDetails
将“计算方式 ”设置为“本地环境和消息 ”。
双击“Preserve Branch Details”节点。
在 BEGIN 部分中添加以下 ESQL 语句:-- 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;
定制“Mark End of Branch Data”节点:
右键单击“Mark End of Branch Data”节点,然后单击“属性 ”。
单击“基本 ,将“ESQL 模块 ”设置为 FTENodesSampleMFlow.FTEInputBranch2HQMFlow_MarkEndofBranchData
将“计算方式 ”设置为“本地环境和消息 ”。
双击“Mark End of Branch Data”节点。
在 BEGIN 部分中添加以下 ESQL 语句:-- 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';
定制“Eliminate Duplication (Resequence)”节点:
右键单击“Eliminate Duplication (Resequence)”节点,然后单击“属性 ”。
单击“基本 ,将“序号的路径 ”设置为 $LocalEnvironment/StockReplenishment/SequenceNumber
将“序列组标识的路径 ”设置为 $LocalEnvironment/Wildcard/WildcardMatch
在“序列末尾定义 ”中,将“谓词 ”设置为 $InputRoot/XMLNSC/StockReplenishment/EndofData="true"
定制“Sent to HQ Replenishment App (MQ)”节点:
右键单击“Sent to HQ Replenishment App (MQ)”节点,然后单击“属性 ”。
如果您使用的是缺省配置,请单击“基本 ”,将“队列管理器名称 ”设置为
IB9QMGR 。
将“队列名 ”设置为 FTE_STOCK_PROCESS_HQ
创建 HQProcessingDriver 消息流
使用以下指示信息来创建“HQ 库存供应应用程序”消息流。
使用先前创建的 Integration 项目,按照以下指示信息完成操作:
右键单击该 Integration 项目,然后单击“新建 > 消息流 ”。
将“消息流名称 ”设置为 HQProcessingDriver.msgflow ,然后单击“完成 ”。
在“消息流”编辑器中,添加并重命名下表中列出的节点:
节点类型
节点名
MQInput
Receive Sales Data (MQ)
Compute
Demand Driven Replenishment
MQOutput
Send Stock Replenishment Invoice (MQ)
按下表中所述连接节点:
节点名
终端
连接到此节点
Receive Sales Data (MQ)
Out
Demand Driven Replenishment
Demand Driven Replenishment
Out
Send Stock Replenishment Invoice (MQ)
定制“Receive Sales Data (MQ)”节点:
右键单击“Branch App Input”节点,然后单击“属性 ”。
单击“基本 ”,将“队列名 ”设置为 FTE_STOCK_PROCESS_HQ
单击“输入消息解析 ”,将“消息域 ”设置为 XMLNSC 。
单击“高级 ”,然后选择“逻辑顺序 ”属性。
定制“Demand Driven Replenishment”节点:
右键单击“Demand Driven Replenishment”节点,然后单击“属性 ”。
单击“基本 ,将“ESQL 模块 ”设置为 FTENodesSampleMFlow.HQProcessingDriver_DemandDrivenReplenishment
将“计算方式 ”设置为“本地环境和消息 ”。
双击“Demand Driven Replenishment”节点。
在 BEGIN 部分中添加以下 ESQL 语句:-- 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;
定制“Send Stock Replenishment Invoice (MQ)”节点:
右键单击“Send Stock Replenishment Invoice (MQ)”节点,然后单击“属性 ”。
如果您使用的是缺省配置,请单击“基本 ”,将“队列管理器名称 ”设置为
IB9QMGR 。
将“队列名 ”设置为 FTE_STOCK_INVOICE_BRANCH
创建 FTEOutputHQ2BranchMFlow 消息流
使用以下指示信息来创建“分店接收来自 HQ 的补货 XML 文件”消息流。
使用先前创建的 Integration 项目,按照以下指示信息完成操作:
右键单击该 Integration 项目,然后单击“新建 > 消息流 ”。
将“消息流名称 ”设置为 FTEOutputHQ2BranchMFlow.msgflow ,然后单击“完成 ”。
在“消息流”编辑器中,添加并重命名下表中列出的节点。
节点类型
节点名
MQInput
Receive Stock Replenishment Invoice (MQ)
Compute
Prepare for FTEAgent
FTEOutput
Transfer to Branch (FTE)
按下表中所述连接节点。
节点名
终端
连接到此节点
Receive Stock Replenishment Invoice (MQ)
Out
Prepare for FTEAgent
Prepare for FTEAgent
Out
Transfer to Branch (FTE)(In)
Prepare for FTEAgent
Out1
Transfer to Branch (FTE)(Finish File)
定制“Receive Stock Replenishment Invoice (MQ)”节点:
右键单击“Receive Stock Replenishment Invoice (MQ)”节点,然后单击“属性 ”。
单击“基本 ”,将“队列名 ”设置为 FTE_STOCK_INVOICE_BRANCH
单击“输入消息解析 ”,将“消息域 ”设置为 XMLNSC 。
单击“高级 ”,然后选择“逻辑顺序 ”属性。
定制“Prepare for FTEAgent”节点:
右键单击“Prepare for FTEAgent”节点,然后单击“属性 ”。
单击“基本 ,将“ESQL 模块 ”设置为 FTENodesSampleMFlow.FTEOutputHQ2BranchMFlow_PrepareforFTEAgent
将“计算方式 ”设置为“本地环境和消息 ”。
双击“Prepare for FTEAgent”节点。
在 BEGIN 部分中添加以下 ESQL 语句:-- 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;
定制“Transfer to Branch (FTE)”节点:
右键单击“Transfer to Branch (FTE)”节点,然后单击“属性 ”。
单击“基本 ”,将“作业名 ”设置为您选择的名称,例如 Invoice to FTEBRANCH123
将“代理程序 ”设置为使用以下格式的相应代理程序名称:IB9NODE.FTEBRANCH123
如果您使用的是缺省配置,请将“队列管理器 ”设置为 IB9QMGR 。
单击“基本 ”,将“输入目录 ”设置为 /ToBranch
将“文件名 ”设置为 StockReplenishmentInvoice_*.xml
单击“记录和元素 ”,将“记录定义 ”设置为“记录是未修改的数据 ”。
创建 Integration 节点属性
要运行样本,您必须创建以下本地队列:
FTE_STOCK_INVOICE_BRANCH
FTE_STOCK_PROCESS_HQ
FTE_STOCK_REQ_BRANCH
创建以下代理归档 (BAR) 文件,并添加指定的消息流:
BRANCH_DRIVER_ARCHIVE.bar
HQ_ARCHIVE.bar
FTEInputBranch2HQMFlow.msgflow
FTEOutputHQ2BranchMFlow.msgflow
HQProcessingDriver.msgflow
有关创建代理归档的更多信息,请参阅创建代理归档 。
创建以下执行组,并部署指定的 BAR 文件:
FTEBRANCH123
BRANCH_DRIVER_ARCHIVE.bar
FTEHQ
请参阅创建执行组 和部署代理归档文件 。
返回到样本主页