In this article we will see the steps to invoke a BI Report in an Integration and then the steps to read its base64 encoded output.
we will do the development by breaking it into 2 parts :
PART 1 : Steps to invoke a BI Report
PART 2 : Steps to read the base64 encoded report output.
Lets start the development : ~
PART 1 : Steps to invoke a BI Report :
Lets develop one schedule integration where we will configure a soap adapter connection to call the BI Report using runReport Operation and then do the mappings. First we will create the connection and then create the integration.
Create Connection :
Here we will configure " ExternalReprtWSSService WSDL URL " which can be used to run a report. The same connection we will use in below steps while developing integration.
- Navigate to connection window and select SOAP adapter, give any meaningful name for connection.
- Enter the ExternalReportWSSService WSDL URL and Select the TLS Version. TLS Version depends on your ERP Cloud Application Instance. Mostly it is TLSv1.1
WSDL URL Format : https://<your oracle cloud application instance domain>/xmlpserver/services/ExternalReportWSSService?WSDL
- Enter the *Username and *Password of the Oracle Cloud Application Instance. Click SAVE and TEST the Connection.
Create Integration :
Here we will create the integration using the above configured SOAP connection, do the mappings of required field and then do one round of testing.
- Search for the connection which we have created above and select it.
- Enter some meaning full name(ex: invoke BI Report) and then click NEXT.
- Select the operation = runReport and then click NEXT
- In headers configuration window, select Accept attachments in response. Click Next
- SOAP Endpoint configuration completed. Click Done.
STEP 2 : Now let's do the MAPPINGS. We will pass all the required fields to invoke BI report ( like Report Path, Report Parameters Name and its Value etc.)
- Expand the "parameterNameValues" element
- Expand "Item" and then enter your BI Report Parameter name in name* element (as shown in below image)
- Now expand values* and map or pass Parameter Values in Item element (as shown in below image)
- Parameter names and its values configuration completed
*Note : suppose you have multiple parameters for your BI Report then you have to repeat the Item tag and then pass the Parameter name and its Values similar as in above Step 2.
(check below image for reference)
Step 3 : Inside this step we will enable the tracking and do one round of testing.
- Enable the Tracking
- BI Report call configuration completed. Click save and Close the integration edit window.
- Activate the integration
- Submit the integration by clicking Submit now and then click on Instance Id to track the flow
- Once processing succeeded , open the flow by clicking start time
- Click on active stream and check the payload received as output from report
very use fill and understandable can do any one by following this blog
ReplyDeleteThanks :)
DeleteHi Kabir ,
ReplyDeleteThanks for the Article on BI Report integration with OIC .
1. We have a use-case that there can be multiple BI report at a given point of time . How can we read the mutiple reports in OIC
2.Can you tell me scenario where we are passing some parameters in runReport() operation
Dear
Delete1. you have to call it separately because for each BIP you may have unique report path, its unique parameters.
2. In the above blog only I have passed parameter to call runReport() operation.Please cross check :)
Hi Kabir,
ReplyDeleteNeed small info..what happens if BI report sends empty data..how to handle this exception in OIC..
Note : below is just a suggestion for your requirement not the solution :)
DeleteUsing 'If' condition and 'stringlength' function you can achieve this :
If stringlength (-- report response i.e. *reportBytes --- )> 0
then only proceed to execute downstream flow
otherwise stop or send error notification using notification action.
Hi Kabir,
ReplyDeleteFor multiple values my report is not working. Even if we pass repeating elements in below format-
a
b
c
Report is giving me output only for "a". Whatever first value in items tag, its considering that only.
However, i tried a,b,c this is giving me correct result but in this case how we can restrict count till 1k since IN clause is having limitation.