Tuesday, 18 August 2020

Calling of OTBI report from WEBSERVICE or API

 

How to execute OTBI report from WEBSERVICE :

WSDL for analytics report 

https://[YourDomain].fa.em2.oraclecloud.com/analytics-ws/saw.dll/wsdl/v7

Enter this WSDL in SOAPUI Tool 

First of all generate session id to execute it by entering username and password in SAWSESSIONSERVICE in LOGON


The take the session ID and enter into executexmlQuery in  xmlviewservice


Remove all question marks in PAYLOAD and enter session id generated above and report path only 

PAYLOAD be like this :

/***********************

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v7="urn://oracle.bi.webservices/v7">

   <soapenv:Header/>

   <soapenv:Body>

      <v7:executeXMLQuery>

         <v7:report>

            <v7:reportPath>/shared/Custom/report_name</v7:reportPath>

            <v7:reportXml></v7:reportXml>

         </v7:report>

         <v7:outputFormat></v7:outputFormat>

         <v7:executionOptions>

            <v7:async></v7:async>

            <v7:maxRowsPerPage></v7:maxRowsPerPage>

            <v7:refresh></v7:refresh>

            <v7:presentationInfo></v7:presentationInfo>

            <v7:type></v7:type>

         </v7:executionOptions>

         <v7:reportParams>

            <!--Zero or more repetitions:-->

            <v7:filterExpressions></v7:filterExpressions>

            <!--Zero or more repetitions:-->

            <v7:variables>

               <v7:name></v7:name>

               <v7:value></v7:value>

            </v7:variables>

            <!--Zero or more repetitions:-->

            <v7:nameValues>

               <v7:name></v7:name>

               <v7:value></v7:value>

            </v7:nameValues>

            <!--Zero or more repetitions:-->

            <v7:templateInfos>

               <v7:templateForEach></v7:templateForEach>

               <v7:templateIterator></v7:templateIterator>

               <!--Zero or more repetitions:-->

               <v7:instance>

                  <v7:instanceName></v7:instanceName>

                  <!--Zero or more repetitions:-->

                  <v7:nameValues>

                     <v7:name></v7:name>

                     <v7:value></v7:value>

                  </v7:nameValues>

               </v7:instance>

            </v7:templateInfos>

            <!--Optional:-->

            <v7:viewName></v7:viewName>

         </v7:reportParams>

         <v7:sessionID>bga66ovite1kntelup8tom880o0nmt4ncealchi0vdv36vqt</v7:sessionID>

      </v7:executeXMLQuery>

   </soapenv:Body>

</soapenv:Envelope>

***********************/

it will give you output 

Now if you want to call with parameters then 

create one presentation variable in OTBI report and assign that variable to column 

and now call that parameter from SOAP UI webservice 


/***************************payload will be like *********/

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v7="urn://oracle.bi.webservices/v7">

   <soapenv:Header/>

   <soapenv:Body>

      <v7:executeXMLQuery>

         <v7:report>

            <v7:reportPath>/shared/Custom/report_name</v7:reportPath>

            <v7:reportXml></v7:reportXml>

         </v7:report>

         <v7:outputFormat></v7:outputFormat>

         <v7:executionOptions>

            <v7:async></v7:async>

            <v7:maxRowsPerPage></v7:maxRowsPerPage>

            <v7:refresh></v7:refresh>

            <v7:presentationInfo></v7:presentationInfo>

            <v7:type></v7:type>

         </v7:executionOptions>

         <v7:reportParams>

            <!--Zero or more repetitions:-->

            <v7:filterExpressions></v7:filterExpressions>

            <!--Zero or more repetitions:-->

            <v7:variables>

               <v7:name>p_bu</v7:name>

               <v7:value>xxxx</v7:value>

            </v7:variables>

            <!--Zero or more repetitions:-->

            <v7:nameValues>

               <v7:name></v7:name>

               <v7:value></v7:value>

            </v7:nameValues>

            <!--Zero or more repetitions:-->

            <v7:templateInfos>

               <v7:templateForEach></v7:templateForEach>

               <v7:templateIterator></v7:templateIterator>

               <!--Zero or more repetitions:-->

               <v7:instance>

                  <v7:instanceName></v7:instanceName>

                  <!--Zero or more repetitions:-->

                  <v7:nameValues>

                     <v7:name></v7:name>

                     <v7:value></v7:value>

                  </v7:nameValues>

               </v7:instance>

            </v7:templateInfos>

            <!--Optional:-->

            <v7:viewName></v7:viewName>

         </v7:reportParams>

         <v7:sessionID>bga66ovite1kntelup8tom880o0nmt4ncealchi0vdv36vqt</v7:sessionID>

      </v7:executeXMLQuery>

   </soapenv:Body>

</soapenv:Envelope>

/**********************************************************/

It will give only dedicated output .

Thanks and Enjoy