Skip to Content

Use of BPM in File – SOAP – File PI 7.1 scenario – Design approach


This weblog intends to help the reader with knowledge of how to use a BPM in a File – SOAP – File scenario, PI is serving as a bridge to integrate file interface and remote client or a webservice provider.

File is an asynchronous interface, whereas SOAP or webservice is a synchronous interface. So a technical difficulty lies here in implementing the integration scenario including file as a sender and SOAP or webservice as a receiver. To overcome this dificulty BPM has been used to implement the scenario.

BPM :- The term BPM (Business Process Management) refers to the organization of business process
processing in general. This includes classic SAP Workflow in the SAP Backend as
well as message processing on the Integration Server.

Note:- Using a BPM in this scenario is one of the possible way for implementing the scenario but not a recommended one. This scenario is also possible without using a BPM . Refer File – RFC – File without a BPM – Possible from SP 19. for the same.



  • Knowledge of configuring the File sender adapter and the SOAP receiver adapter
  • Basic knowledge of what a WSDL is and how a Webservice and SOAP message works
  • Basic knowledge of how BPM works.

 Designing objects in Enterprise Services Repository

1. Create a new External Definition ED_Convertweight using the WSDL. In this weblog following link has been used to import the WSDL as an external definition:-

Sample screenshot of an External definition, created from an existing WSDL


Fig: 1.1 ED_Convertweight 

NOTE: choose category as wsdl



2. Create 2 Data Type DT_ConversionRequest (File Request) and DT_ConversionResponse(File response) as shown below:-




Fig: 1.2 DT_ConversionRequest



Fig: 1.3 DT_ConversionResponse


3. Create 2 Message Type MT_ConversionRequest and  MT_ConversionResponse for above mentioned Data type as shown below:- 


Fig: 1.4 MT_ConversionRequest 



 image Fig: 1.5 MT_ConversionResponse





4. Create Service Interface for above mentioned Message type as shown below:-


Fig 1.6 Outbound Async interface SI_ConversionRequest_OA for Message type MT_ConversionRequest  




Fig 1.7 Abstract Async interface SI_ConversionRequest_AA for Message type MT_ConversionRequest






Fig 1.8 Abstract Sync interface SI_Conversion_AS with MT_ConversionRequest as request message type and MT_ConversionResponse as response message type





Fig 1.9 Abstract Async interface SI_ConversionResponse_AA with MT_ConversionResponse message type




Fig 1.10 Inbound Async interface SI_ConversionResponse_IA with MT_ConversionResponse message type



Fig 1.11 Abstract Sync interface SI_SOAPinOut with ConvertWeightSoapIn as request message type and ConvertWeightSoapOut 


NOTE: For ConvertWeightSoapIn and ConvertWeightSoapOut message types Refer the External Definition created ED_Convertweight (Fig 1.1)






5. Create 2 Message Mapping  MM_ConversionRequest and MM_ConversionResponse. Find the sample screenshots below:-




Fig 1.12 Request Message Mapping MM_ConversionRequest, File -> SOAP







Fig 1.13 Response Message Mapping MM_ConversionResponse, SOAP -> File





6. Create Operation Mapping OM_Conversion_FileToSOAP with SI_Conversion_AS as the Source operation, SI_SOAPinOut as target oparation, MM_ConversionRequest (Request Mapping) and MM_ConversionResponse (Response mapping) as the Mapping programs. 

 Find the screenshot below:-


Fig 1.14 OM_Conversion_FileToSOAP  



MT_ConversionRequest   ->  MM_ConversionRequest   ->  ConvertWeightSoapIn    

   (File request)                 (Request message mapping)         (SOAP request)






Fig 1.15 OM_Conversion_FileToSOAP



 ConvertWeightSoapOut  ->  MM_ConversionResponse  ->  MT_Conversionresponse

   (SOAP response)               (Response message mapping)         (File response)







7. Create an Itegration Process or BPM as shown below :-


Fig 1.16 BPM


a) Receive Step – starts an integration process, receives request message from File sender adapter, define async mode of communication


b) Synchronous Send Step – send message to SOAP receiver adapter and gives the  response back , no acknowledgements are send, define sync mode of communication


c) Asynchronous send step – receive the SOAP output message and send it to  file  adapter  


  In the above BPM the first step i.e. receive step receives the file and hence triggers the BPM.The second step is a synchronous send step which triggers the call to SOAP, takes the output from SOAP and sends it further to the Asynchronous send step. The third step finally sends response message to a file.  


Following is the screenshot for Container elements :-



Fig 1.17 Object Area

This brings us to end of the design objects required for this scenario. Save and Activate all the objects created above.

**I might be discussing Configuration objects required for this scenario and testing the end to end scenario in my next blog. 

You must be Logged on to comment or reply to a post.
  • Hi,

    why do you propose using a BPM in this case
    if a scenario like that can be handled
    without a BPM ?

    this is not a good design in terms of performance I guess – so maybe you should at least mention that in your blog ? (that is a possible way but not a recommended one? ) and if possible
    please mention that at the beginning
    so as not to confuse other people

    thank you,

    Michal Krawczyk

    • Hi,

      I have used BPM sue to the follow stated reason:-

      File is a asynchronous interface, whereas SOAP or web service is a synchronous interface. So a technical difficulty lies here in implementing the integration scenario including file as a sender and SOAP or web service as a receiver. To overcome this difficulty BPM has been used to implement the scenario.

      If my assumption is wrong kindly guide me for the same, as i am just a beginer in PI. This is my first blog and i really appretiate the comments given by you as it will enhance my knowledge.

      Thanks & Regards,
      Kokil Handa

      • Hi,

        >>>File is a asynchronous interface, whereas SOAP or web service is a synchronous interface.

        as I mentioned – there is no need to use a BPM
        in this case as as of XI 3.0 you can do it without a BPM – ref
        File – RFC – File without a BPM – Possible from SP 19.

        so please – add info to your blog:

        1. that this method with a BPM is much slower that then one without a BPM
        2. that this is not a recommended way in this case

        ok ?

        I don’t want the users to be confused
        as the info clearly suggests that this is a good way to handle scenarios like this
        and the fact is that…. it’s not.. as BPM is not needed

        thank you,

        Michal Krawczyk

      • If this is BPM content, please tag it as such so that it can be routed to the appropriate moderators for content.
        It looks like this was inadvertently released without PI expertise checking contents beforehand so I would request you either update the content or we shall set it back to draft.  No point in having misleading content posted.
    • I will like to add more that this is a File – soap – file scenario. In this scenario the file is sending a request to a webservice for weight conversion and the SOAP result is send back to file…..

      So i think BPM is necessary in this case.


  • Why this when we already have blogs that discuss on Async Sync scenarios? The only change is see here is that instead of RFC in the old blog its a SOAP call.

    I think you are new to blogging and dont want to discourage you but;

    1. This is an information already available
    2. the design is an old one. there are better designs as mentioned by Mike available now

    Do think over the subject you are posting from next time onwards.
    Hope to see new information from you.