How to Call BIP SOAP Service in OIC

This is a frequent requirement in OIC , sometime you need to call BIP SOAP service in OIC to do integrations.

The reasons can be

  • The Rest service of the business object is not available
  • You have a custom Requirement based on a custom data set

So here are the steps to call a BI publisher SOAP service.

Test the BIP SOAP service in SOAP UI

  • Generate your ExternalReportWSSService url for your oracle fusion instance
  • Test your generated wsdl url in browser and make usre you see the wsdl data
  • launch SOAP UI and create a SOAP project
  • Add the generated wsdl to the soap project
  • configure authorization
  • Test the bip soap service
  • you wll get a result in binary form which is not readable like in image below

Sample SOAP Payload to call BIP report

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:pub="http://xmlns.oracle.com/oxp/service/PublicReportService">
   <soap:Header/>
   <soap:Body>
      <pub:runReport>
         <pub:reportRequest>
            <pub:XDOPropertyList>
               <!--Zero or more repetitions:-->
               <pub:metaDataList>
                  <!--Optional:-->
                  <pub:name>?</pub:name>
                  <!--Optional:-->
                  <pub:value>?</pub:value>
               </pub:metaDataList>
            </pub:XDOPropertyList>
            <pub:attributeCalendar>?</pub:attributeCalendar>
            <pub:attributeFormat>xml</pub:attributeFormat>
            <pub:attributeLocale>?</pub:attributeLocale>
            <pub:attributeTemplate>?</pub:attributeTemplate>
            <pub:attributeTimezone>?</pub:attributeTimezone>
            <pub:attributeUILocale>?</pub:attributeUILocale>
            <pub:byPassCache>?</pub:byPassCache>
            <pub:dynamicDataSource>
               <pub:JDBCDataSource>
                  <pub:JDBCDriverClass>?</pub:JDBCDriverClass>
                  <pub:JDBCDriverType>?</pub:JDBCDriverType>
                  <pub:JDBCPassword>?</pub:JDBCPassword>
                  <pub:JDBCURL>?</pub:JDBCURL>
                  <pub:JDBCUserName>?</pub:JDBCUserName>
                  <pub:dataSourceName>?</pub:dataSourceName>
               </pub:JDBCDataSource>
               <pub:fileDataSource>
                  <pub:dynamicDataSourcePath>?</pub:dynamicDataSourcePath>
                  <pub:temporaryDataSource>?</pub:temporaryDataSource>
               </pub:fileDataSource>
            </pub:dynamicDataSource>
            <pub:flattenXML>?</pub:flattenXML>
            <pub:parameterNameValues>
               <!--Zero or more repetitions:-->
               <pub:item>
                  <pub:UIType>?</pub:UIType>
                  <pub:dataType>?</pub:dataType>
                  <pub:dateFormatString>?</pub:dateFormatString>
                  <pub:dateFrom>?</pub:dateFrom>
                  <pub:dateTo>?</pub:dateTo>
                  <pub:defaultValue>?</pub:defaultValue>
                  <pub:fieldSize>?</pub:fieldSize>
                  <pub:label>?</pub:label>
                  <pub:lovLabels>
                     <!--Zero or more repetitions:-->
                     <pub:item>?</pub:item>
                  </pub:lovLabels>
                  <pub:multiValuesAllowed>?</pub:multiValuesAllowed>
                  <pub:name>?</pub:name>
                  <pub:refreshParamOnChange>?</pub:refreshParamOnChange>
                  <pub:selectAll>?</pub:selectAll>
                  <pub:templateParam>?</pub:templateParam>
                  <pub:useNullForAll>?</pub:useNullForAll>
                  <pub:values>
                     <!--Zero or more repetitions:-->
                     <pub:item>?</pub:item>
                  </pub:values>
               </pub:item>
            </pub:parameterNameValues>
            <pub:reportAbsolutePath>Custom/PRJReport.xdo</pub:reportAbsolutePath>
            <pub:reportData>cid:1571104333176</pub:reportData>
            <pub:reportOutputPath></pub:reportOutputPath>
            <pub:reportRawData>?</pub:reportRawData>
            <pub:sizeOfDataChunkDownload>-1</pub:sizeOfDataChunkDownload>
         </pub:reportRequest>
         <pub:appParams>?</pub:appParams>
      </pub:runReport>
   </soap:Body>
</soap:Envelope>
.

In OIC

  • Create a SOAP connection in OIC using the BIP wsdl url
  • Configure security authentication
  • Test and save the connection
  • Create a App driven on Scheduled orchestation based on your requirement
  • drag the SOAP connection into OIC process
  • Do the mapping as per the Soap payload above.
image global variable in Oracle OIC 1

basically you need to map 3 fields

image 1 global variable in Oracle OIC 2
<pub:attributeFormat>xml</pub:attributeFormat>
Set this value as xml

<pub:reportAbsolutePath>Custom/PRJReport.xdo</pub:reportAbsolutePath>

Set absolute path as per the folder structure including the xdo file name

<pub:sizeOfDataChunkDownload>-1</pub:sizeOfDataChunkDownload>

Set this as -1        

Reading Report Bytes

After doing the configuration to call bip soap service you will get a response in report bytes which is not readable.

You need to decode using the bas64 decode function.

image 2 global variable in Oracle OIC 3

IF the response ofreport bytes is like multi row and you want to read the file, the approach is to write the response in a stage file using opaque schema and then read the stage file with the selected schema of the format required.

Map reportbytes to Opaque element in stage file write activity

image 3 global variable in Oracle OIC 4

Then create another activity to Read Stage file and add the schema XSD file

image 4 global variable in Oracle OIC 5

If you have xml output you can conver to XSD schema by online tools

image 5 global variable in Oracle OIC 6

You May Like

FAQs:

How to read report bytes data?

use decode base 64 function in OIC.

wpsbutton
We will be happy to hear your thoughts

Leave a reply

Ads Blocker Image Powered by Code Help Pro

Ads Blocker Detected!!!

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock
Cloud Technologies Blog
Logo
Compare items
  • Total (0)
Compare
0
Shopping cart