cancel
Showing results for 
Search instead for 
Did you mean: 

Dynamic File name

former_member335553
Active Contributor
0 Kudos
119

Hi ,

Our integration is C4C ->HCI-->SAP PI-->SAP BW and 2 asynchronous interfaces.

1. SAP BW queries C4C for Customer reports(Analytics) wherein Report name is sent in the request message along with 3 other constant fields .(File to SOAP )

2. C4C sends the response - detailed report back to BW which is transfered as a file.(SOAP to File )

[Synchronous response received from C4C from Step 1 is passthroughed in HCI and sent as a HTTP message to SAP PI , synchronous interface ends here.

2 nd interface start- PI has HTTP sender which will receive the BW report from HCI  and send it as a file to BW system. ]

There are 15 reports which will be handled  through this interface .

However expectation is to have individual file names(ideally report names) for each report received in BW .

In the response message there is no unique field and the report directly starts with the line items .

Could you please advise how to create the file names based on the report name sent in the request . 

or is there any other option to have this file name created dynamically by making the interface synchronous

We are on PI 7.5 and do not have BPM in place

This is the request message sent to C4C

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bw="http://sap.com/bw">

   <soapenv:Header/>

   <soapenv:Body>

      <bw:OperationalDataProvisioningFetchDataDirectRequest>

         <SubscriberTypeID>SAP_BW</SubscriberTypeID>

         <ContextID>BYD_MDAV</ContextID>

         <OperationalDataProviderID>CODACTU$F</OperationalDataProviderID>

             <SupportXMLFormatCode>ABAP_XML</SupportXMLFormatCode>

      </bw:OperationalDataProvisioningFetchDataDirectRequest>

   </soapenv:Body>

</soapenv:Envelope>

where<OperationalDataProviderID>CODACTU$F</OperationalDataProviderID> has the report name and is the only changing field for every run .

Thanks

Anusha

View Entire Topic
former_member182412
Active Contributor
0 Kudos

HI Anusha

if you use async to sync bridge using modules in soap receiver adapter then you can save the payload value using GetPayloadValueBean and put the same value back into response message by using PutPayloadValueBean and this value you can use it in dynamic configuration to set the file name dynamically