Webservice executeXMLQuery with executeXMLQuery — Oracle Analytics

Oracle Analytics Cloud and Server

Welcome to the Oracle Analytics Community: Please complete your User Profile and upload your Profile Picture

Webservice executeXMLQuery with executeXMLQuery

Received Response
113
Views
4
Comments
User_Z8Y6M
User_Z8Y6M Rank 3 - Community Apprentice

Hi,

I managed to execute web service executeXMLQuery, but I do not know how to apply a filter expression.

Has anyone managed to execute executeXMLQuery web service with <v7:filterExpressions></v7:filterExpressions>

Can you please provide the syntax with an example?

Thanks,

Ark

<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>path/name</v7:reportPath>

         </v7:report>

         <v7:outputFormat>SAWRowsetSchemaAndData</v7:outputFormat>

         <v7:executionOptions>

            <v7:async>true</v7:async>

            <v7:maxRowsPerPage>10</v7:maxRowsPerPage>

            <v7:refresh>false</v7:refresh>

            <v7:presentationInfo>false</v7:presentationInfo>

            <v7:type>1</v7:type>

         </v7:executionOptions>

<v7:filterExpressions>??????????</v7:filterExpressions>

  <v7:sessionID>xxxxxxxxxxxxxxxxxxxxx</v7:sessionID>

      </v7:executeXMLQuery>

   </soapenv:Body>

</soapenv:Envelope>

Answers

  • What did you try so far?

    I generally used executeSQLQuery as it gave me more options, while the executeXMLQuery is "like" when you run an analysis on screen, so the filters depends on the filters you defined in the analysis itself (as the doc says).

  • User_Z8Y6M
    User_Z8Y6M Rank 3 - Community Apprentice

    Hi Gianni,

    Thanks for the comment.

    If I want to pool data from obiee analysis from an external system, the executeXMLQuery is very convenient,

    because I need to apply to the report path/name only and don't need to understand how the analysis was created.

    I managed to do that when I do not need to pass parameters.

    But, if I need to apply to the same analysis each time with a different filter,

    for instance, first time "Table"."Field" = ' a', and the second time "Table"."Field" = 'a'   ,

    I do not know the syntax of  <v7:filterExpressions>??????????</v7:filterExpressions>

    Thanks,

    Ark

  • I was hoping the Java client generated from the WSDL would give me the direct answer, but it doesn't (it even lack a method to set it ).

    Then I remembered the doc gives extra hints and not just a structure for this parameter : https://docs.oracle.com/middleware/1221/biee/BIEIT/structures.htm#i1019665

    Look at "Table 2-73 How Filter Expressions Are Applied to an Analysis in Oracle BI EE Web Services", there is a method called.

    Also have a look at https://oraclebizint.wordpress.com/2007/07/31/customizing-obi-ee-soap-api/  and the comments of July 22, 2008 and the few answers underneath it.

    You are executing an Analysis which is just a bunch of XML, the filters also needs to be XML. So you need to get the right syntax using the OBIEE XML structure for it.

    That's why I always stay with "executeSQLQuery" as it takes a logical SQL directly without bothering with XML (so a filter in the query is just in the WHERE clause).

  • User_Z8Y6M
    User_Z8Y6M Rank 3 - Community Apprentice

    I've managed to do that. Following the syntax:

       <v7:filterExpressions>

           <![CDATA[<sawx:expr xsi:type="sawx:string" op="equal" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:saw="com.siebel.analytics.web/report/v1.1"               xmlns:sawx="com.siebel.analytics.web/expression/v1.1" subjectArea="SA Name">

                        <sawx:expr xsi:type="sawx:sqlExpression">"Presentation Table"."Filed Name" </sawx:expr>

                        <sawx:expr xsi:type="sawx:string">abcdefg</sawx:expr></sawx:expr>

                   ]]>

                </v7:filterExpressions>