cancel
Showing results for 
Search instead for 
Did you mean: 

BPM BpmPatternCollectTime problem

former_member212767
Participant
0 Kudos
87

Hi,

I've been trying to get the example pattern BpmPatternCollectTime from SAP to work on PI 7.1. This pattern waits for messages and collects them into one message. I've checked my BPM against the SAP BPM and the only difference is that I'm using XSLT mapping in the Transformation step. Is this causing the problem ?

I've checked all the blogs I could find, searched for SDN messages, checked SXI_CACHE etc. to no avail.

Scenario is: I'm sending multiple IDOCS from SAP HR system via PFAL, each has 200 persons in them.

I map the IDOCs to the target format (XML) and collect them in the BPM and send to file adapter.

Problem is I only get the first IDOC contents in target message, and the rest are missing.

When I look at the BPM workflow log, Container tab, I can see that there are 3 messages in the MESSAGE_IN entry. I can open them and see the contents fine. This leads me to believe that my Correlation is working ok.

Also in the Block step the COLLECTMESSAGELIST contains 3 entries as it should.

Correlation says:

<CorrelationKey Version="001"><ID>SAP HR</ID></CorrelationKey>

Where 'SAP HR' is the content of the correlation XPath query I defined.

MESSAGES_OUT in the BPM workflow log contain the same 3 messages.

TRACE in the BPM workflow log shows that the mapping of the Transformation step executed ok. Transformation step Operations Mapping is using an XSLT mapping that is copying the input to output as is.

When the BPM is finished the target message only contains the first IDOC data.

How can I get the rest of the data to append to the target message ?

Kind Regards,

Jari Pakarinen

View Entire Topic
Former Member
0 Kudos

Few basis checks-

1.Make sure you enabled the 'multiline' for the target abstract interface(container object).

2.Make sure you enabled the 'append' mode in container properties.

former_member212767
Participant
0 Kudos

Hi,

Thank you for your reply.

Multiline is enabled on the CollectMessageList Abstract interface.

Container operation is 'Append'.

Do you know if XSLT mapping could be the problem in the Transformation step ?

XSLT is this:


<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://xxxxxxxx" xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
  <xsl:template match="/">
      <xsl:copy-of select="*"/>
  </xsl:template>
</xsl:stylesheet>

BR, Jari

Edited by: Jari Pakarinen on Oct 6, 2010 3:42 PM

former_member212767
Participant
0 Kudos

Hi,

Using this mapping XSLT I was able to get the BPM working:


<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns="http://xxxx.com/xxx" xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
  <xsl:template match="/">
    <ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
      <ns0:Message1>
        <xsl:copy-of select="*"/>
      </ns0:Message1>
    </ns0:Messages>
  </xsl:template>
</xsl:stylesheet>

This means you have to wrap the mapping inside

<ns0:Messages><ns0:Message></ns0:Message1></ns0:Messages> 

tags. This took a while to find out.

Jari