Skip to Content

BRM call not happening from PI UDF


I am following the below sdn link to call BRM Rule from a PI mapping.When I traced the UDF, realized that the BRM call statement is not reacting and it is not yielding any result post this statement in the UDF. When I tried to execute my webservice from the SOAP UI, I get the following message

"org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: error: Unexpected element: TAG_END"

But when I test the service in WS Navigator it shows the correct result.

Below statement is not working in the UDF--

// 3. Call BRM

XmlPayload resPayload = (XmlPayload);

Anyone clue on this is really appreciated.



Add comment
10|10000 characters needed characters exceeded

2 Answers

  • Posted on Aug 01, 2012 at 05:51 AM

    Problem is now resolved and the solution goes like this:

    SOAP BRM Look up call expects an outbound binding for the response and hence it throws that exception.

    1. Hence create a dummy Service Interface e.g "Dummy" (with only 1 field "Field1")

    2. Create a business component(earlier called Business Service) e.g "BLService". No need to create it, if it is already created for the SOAP BRM receiver channel.

    3. Create a dummy communication channel e.g "Dummy" (type SOAP sender) under BLService

    4. Create another Integrated Configuration with Sender = BLService , Receiver=BLService, Sender Channel = Dummy , Outbound Processing Channel = SOAP receiver channel already configured for the BRM, No Operation Mapping, Sender Interface = "Dummy" and Receiver Interface = "Dummy".

    Now run the scenario. It should do the trick now..

    Since we are on PI single stack with only Java so ICO is the only option to make the outbound binding. Otherwise in dual stack perhaps it could be achieved using a receiver agreement.

    Add comment
    10|10000 characters needed characters exceeded

  • Posted on Jul 17, 2012 at 07:55 AM


    it may not be the way you've wanted but as per my blog:

    there is a way to call BRM (from BRF) without writing any line of code 😊 just using RFC lookup,


    Michal Krawczyk

    Add comment
    10|10000 characters needed characters exceeded