0

请参阅以下由 rtf 模板使用的 XML 模板。我在 XML 中添加了 2 条注释,以 --> 开头

<ORDER_HEADER>
  <HEADER_ROW>
    <ORIG_SYS_DOCUMENT_REF>001529872197</ORIG_SYS_DOCUMENT_REF>
    <SALESREP>
      <SALESREP_ROW/>
    </SALESREP>
    </SOLD_TO_CONTACT>
    <SHIP_TO_CONTACT>                                    --> This SHIP TO comes under ORDER HEADER
      <SHIP_TO_CONTACT_ROW>
        <PHONE_NUMBER>6042333125201</PHONE_NUMBER>
        <EMAIL_ADDRESS>abc@gmail.com</EMAIL_ADDRESS>
      </SHIP_TO_CONTACT_ROW>
    </SHIP_TO_CONTACT>
    <ORDER_LINES>
      <ORDER_LINES_ROW>
        <ORIG_SYS_LINE_REF>001521970</ORIG_SYS_LINE_REF>
        <ITEM_NUMBER>0158ABCSD012836</ITEM_NUMBER>
        <ORDERED_QUANTITY>2</ORDERED_QUANTITY>
        <SHIP_TO_CONTACT>                                --> This SHIP TO comes under ORDER LINES which again comes under ORDER HEADER
          <SHIP_TO_CONTACT_ROW/>
        </SHIP_TO_CONTACT>
        <INVOICE_TO_CONTACT>
          <INVOICE_TO_CONTACT_ROW/>
        </INVOICE_TO_CONTACT>
        <DELIVER_TO_CONTACT>
          <DELIVER_TO_CONTACT_ROW/>
        </DELIVER_TO_CONTACT>
      </ORDER_LINES_ROW>
    </ORDER_LINES>
  </HEADER_ROW>
</ORDER_HEADER>

我正在设计一个模板,我需要在其中显示 Ship To 联系人详细信息,因此我在模板中创建了一个 for 循环作为结尾。在我预览它时加载 XML 后,我得到 2 行供发货联系,因为 xml 中有 2 个 SHIP_TO_CONTACT 部分。

我的问题是如何仅从 ORDER HEADERS 而不是从 ORDER LINES 显示 SHIP_TO_CONTACT 的记录?

我正在使用 EBS 12.1.3。

谢谢

4

1 回答 1

1

您需要将 a 添加./到 for-each 对象。这将迫使 BI Publisher 保持在该级别。

<?for-each:ORDER_HEADER/HEADER_ROW?>
<?ORIG_SYS_DOCUMENT_REF?>
<?for-each:./SHIP_TO_CONTACT/SHIP_TO_CONTACT_ROW?>
<?PHONE_NUMBER?>
<?end for-each?>
<?end for-each?>

我用这个 XML 进行了测试;您提供的 XML 似乎有几个问题。

<ORDER_HEADER>
  <HEADER_ROW>
    <ORIG_SYS_DOCUMENT_REF>001529872197</ORIG_SYS_DOCUMENT_REF>
    <SHIP_TO_CONTACT>                              
      <SHIP_TO_CONTACT_ROW>
        <PHONE_NUMBER>6042333125201</PHONE_NUMBER>
        <EMAIL_ADDRESS>abc@gmail.com</EMAIL_ADDRESS>
      </SHIP_TO_CONTACT_ROW>
    </SHIP_TO_CONTACT>
    <ORDER_LINES>
      <ORDER_LINES_ROW>
        <ORIG_SYS_LINE_REF>001521970</ORIG_SYS_LINE_REF>
        <ITEM_NUMBER>0158ABCSD012836</ITEM_NUMBER>
        <ORDERED_QUANTITY>2</ORDERED_QUANTITY>
        <SHIP_TO_CONTACT>                             
          <SHIP_TO_CONTACT_ROW><PHONE_NUMBER>test</PHONE_NUMBER></SHIP_TO_CONTACT_ROW>
        </SHIP_TO_CONTACT>
      </ORDER_LINES_ROW>
    </ORDER_LINES>
  </HEADER_ROW>
</ORDER_HEADER>
于 2018-09-20T23:23:26.183 回答