IBM Integeration BUS:跟踪节点

时间:2015-11-27 09:21:06

标签: ibm-mq ibm-integration-bus

在简单的消息流中,有3个节点。一个是MQ输入节点,它接收xml输入。其他是MQ Output节点,它接收从MQ输入传递的msg。在两者之间有跟踪节点。跟踪节点配置为在文件中生成跟踪。它跟踪整个xml msg,它在文件中的内容。如果我想跟踪联系号码等xml文件的单个标记,该怎么办?

即:

<contactDetails>
    <contactName>Acme</contactName>
    <contactNumber>09200209</contactNumber>
</contactDetails>

我应该使用哪种模式?我尝试过${Body.contactDetails.contactNumber}${Environment.contactDetails.contactNumber},但输出结果为空。有人可以帮忙吗?

编辑:以下是整个信息:

<?xml version="1.0" encoding="utf-8"?>
<tns:In_Request xmlns:tns="http://www.ibm.lab.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <ActionRequest>O</ActionRequest>
    <DateRequest>10/12/2005</DateRequest>
    <customerNumber>1</customerNumber>
    <customerName>ACME Hardware</customerName>
    <customerDetails>
        <customerAddress1>1254 Main St</customerAddress1>
        <customerAddress2>Suite 12</customerAddress2>
        <customerCity>Dime Box</customerCity>
        <customerState>TX</customerState>
        <customerCountry>USA</customerCountry>
        <customerPostalCode>76543</customerPostalCode>
        <customerCreditLimit>1200</customerCreditLimit>
        <customerCreditScore>123</customerCreditScore>
    </customerDetails>
    <contactDetails>
        <contactFirstName>Freddy</contactFirstName>
        <contactLastName>Bloggs</contactLastName>
        <contactPhoneNumber>555-123-6543</contactPhoneNumber>
    </contactDetails>
    <requestDecision>Y</requestDecision>
    <comments>Just a Comment</comments>
    </tns:In_Request>

1 个答案:

答案 0 :(得分:0)

我现在看到了问题。 引用中的主体指向解析消息的域的根元素,例如如果您在邮件的输入节点上将邮件域设置为XMLNSC,则为Root.XMLNSC,而不是邮件的根元素。

如果要从示例消息中跟踪元素contactPhoneNumber的值,则应使用以下引用: $ {身体*:In_Request.contactDetails.contactPhoneNumber}

因此,在Body之后,您必须指定元素的整个路径。需要*:部分,因为消息中的根元素位于命名空间中。