开发包含其他节点的消息流

这是执行简单消息扩充方案的第一阶段。本主题说明以下过程:
  1. “代理应用程序开发”透视图中,创建以下资源:
    • 消息集项目和名为 MAPPING3_COMPLEX_messages 的消息集,确保消息集支持 XML 有线格式的名称空间
    • 名为 COMPLEX 的消息定义文件,该文件具有带 comp 前缀的目标名称空间 www.complex.net
  2. 创建消息 addev1、addev1s 和 addev1n,这些消息具有以下结构:
    addev1
       bool (xsd:boolean) local element
       bin (xsd:hexBinary) local element
       dat (xsd:dateTime) local element
       dec (xsd:decimal) local element
       dur (xsd:duration) local element
       flt (xsd:float) local element
       int (xsd:int) local element
       str (xsd:string) local element
    addev1s
       bin (xsd:hexBinary) local element
       dat (xsd:dateTime) local element
       dur (xsd:duration) local element
       str (xsd:string) local element
    addev1n
       dec (xsd:decimal) local element
       flt (xsd:float) local element
       int (xsd:int) local element
  3. 创建名为 MAPPING3_COMPLEX_flows 的消息流项目。
  4. 创建名为 addev1 的消息流,其中包含:
    MQInput ->Filter -> Mapping -> Compute
                         \ \ --> RCD -> MQOutput
                          \-> Mapping1-----------/
  5. 在 Filter 节点中,设置以下 ESQL:
    IF Body.bool THEN
                RETURN TRUE;
                     ELSE
                         RETURN FALSE;
            END IF;
  6. 在连接到 Filter true 终端(Mapping1)的 Mapping 节点中,打开映射并选择 addev1 作为源,addev1s 作为目标。
  7. 如下所示,将源联结到目标:
    bin --- bin
    dat --- dat
    dur --- dur
    str --- str
  8. 在电子表格窗格中,展开“属性”并设置下列值:
    MessageType | 'addev1s'
  9. 右键单击目标 dat 并单击 If
  10. $source/comp:addev1/str = 'dat' 替换条件 fn:true()。
  11. 将 dat 的值设置为 $source/comp:addev1/dat + xs:duration("P3M")
  12. 右键单击条件,然后单击 Else
  13. 右键单击目标 dur 并单击 If
  14. $source/comp:addev1/str = 'dur' 替换条件 fn:true()。
  15. 将 dur 的值设置为 $source/comp:addev1/dur + xs:duration("P1Y")
  16. 右键单击条件,然后单击 Else
  17. 在连接到 Filter 节点(Mapping)的 false 终端的节点中,打开映射并选择 addev1 作为源,addev1n 作为目标。
  18. 如下所示,将源联结到目标:
    dec --- dec
    flt --- flt
    int --- int
  19. 在电子表格窗格中,展开“属性”并设置下列值:
    MessageType | 'addev1n'
  20. 将 Compute 节点中的 ESQL 设置为:
    CALL CopyMessageHeaders();
            SET OutputRoot.MRM.dec = InputBody.dec * 10;
            SET OutputRoot.MRM.flt = InputBody.flt * 10;
            SET OutputRoot.MRM.int = InputBody.int * 10;
  21. 在 ResetContentDescriptor 节点中,将消息域设置为 XMLNS 并选中重置消息域复选框。
  22. 使用适当的 RFH2 头创建三个实例消息:
    <comp:addev1 xmlns:comp="http://www.complex.net">
    <bool>1</bool>
    <bin><![CDATA[010203]]></bin>
    <dat>2005-05-06T00:00:00+00:00</dat>
    <dec>19.34</dec>
    <dur>P2Y4M</dur>
    <flt>3.245E+2</flt>
    <int>2104</int>
    <str>dat</str>
    </comp:addev1>
    <comp:addev1 xmlns:comp="http://www.complex.net">
    <bool>1</bool>
    <bin><![CDATA[010203]]></bin>
    <dat>2005-05-06T00:00:00+00:00</dat>
    <dec>19.34</dec>
    <dur>P2Y4M</dur>
    <flt>3.245E+2</flt>
    <int>2104</int>
    <str>dur</str>
    </comp:addev1>
    <comp:addev1 xmlns:comp="http://www.complex.net">
    <bool>0</bool>
    <bin><![CDATA[010203]]></bin>
    <dat>2005-05-06T00:00:00+00:00</dat>
    <dec>19.34</dec>
    <dur>P2Y4M</dur>
    <flt>3.245E+2</flt>
    <int>2104</int>
    <str>dat</str>
    </comp:addev1>
已创建下列资源:
现在部署消息集和消息流。

部署消息集和消息流

这是执行简单消息扩充方案的第二阶段。本主题说明如何部署消息集和消息流,并通过代理运行实例消息。
  1. 创建名为 addev1 的 BAR 文件。
  2. 将消息集 MAPPING3_COMPLEX_messages 和消息流 addev1 添加到 BAR 文件。
  3. 将 BAR 文件部署到代理。
  4. 将实例文档放在输入队列上。
输出消息类似于:
<comp:addev1s xmlns:comp="http://www.complex.net">
<bin><![CDATA[010203]]></bin>
<dat>2005-08-06T00:00:00-01:00</dat>
<dur>P2Y4M</dur>
<str>dat</str>
</comp:addev1s>
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ar25251_1_