cancel
Showing results for 
Search instead for 
Did you mean: 

BOBJ 4.1SP2 REST API REQUEST: documents/{documentId}/parameters, limit return LOVs count

Former Member
0 Kudos

Hi,

 

<children  xsi:type="queryspec:ConditionOperatorNode" logicalOperator="And">

              
    <children xsi:type="queryspec:ConditionDataNode"logicalOperator="Null">

       <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="DS0.DO2" comparisonOperator="InList">

                 
           <operands xsi:type="queryspec:QueryPromptOperand" free="true" userPosition="2" persistent="true" question="Enter values for        Period_Name:" lovIdentifier="DS0.DO2"/>                 
        </condition>              
    </children>

    

I have a prompt condition over field name Period_Name. The  table holds this column contains million of records.

 

Created a query above query specification to the data provider and same data provider linked to a document.

 

GET <webiURL>/documents/{documentId}/parameters.

 

When I am making the above  call, it is trying to get distinct LOVs for Period_Name and as it has huge records in the table, Request is throwing Request timed out exception. I set request time out to 30 mins, still no use.

 

Is there any option to limit max LOV return values from the above call, like top 5000 LOV values only.

Please help me.

Thanks in advance

 

Kalyan

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Kalyan,

Please try the below steps to get all LOVs for that parameter:

URL: http://<servername>:<port>/biprws/raylight/v1/documents/<docId>/parameters

Method: PUT

Request Body:

<parameters>
  <parameter>   
    <id>0</id>     <!-- takes the parameter id for which you want to retrieve the LOVs -->
    <answer>     
      <info>       
        <lov>        
          <query intervalId="0" intervalSize="250" refresh="true">       <!-- change intervalSize to the numeric value with the no. of maximum records for retrieval -->
            <sort order="Ascending" />               
          </query>       
        </lov>     
      </info>   
    </answer> 
  </parameter>
</parameters>

The intervalSize attribute of query tag contains the number of maximum records that you want to retrieve. The above URL gives you the response of the parameter's all possible LOVs in ascending order.

Hope this helps.

Thanks,

Shailendra

Former Member
0 Kudos

Hi Shaiendra,

Thank you so much for excellent information. Its working nicely. The API limits the LOV result to the defined size(intervalSize) fter getting the rows from the server.

I think initially BOBJ REST API getting all the records from the database without checking LOV limitation and the API filters top intervalSize rows and returns.

But in my case, one of our table has millions of records, and when BOBJ API trying to get distinct LOV from the that table, I am gettgin timeout exception from http request due to huge data in it.

So I would like run a query something like on the database

select distinct(col1) from table where ROWNUMBER < 5(intervalSize).

Finally I am looking something like limit LOVs on the database query result

Am I make sense?

Please help me with your thoughts.

Thanks

Kalyan


Answers (1)

Answers (1)

former_member183750
Active Contributor
0 Kudos

Looking at the Developer Help file:

SAP Web Intelligence RESTful web service SDK User Guide, SAP BusinessObjects Business Intelligence p...

I do not see any way of limiting the LOV using REST. I believe you'd have to do this at the report level. See:

1337579 - How to change the List of Values Batch Size in the WebI Report Server parameters to contro...

- Ludek

Senior Support Engineer AGS Product Support, Global Support Center Canada

Follow us on Twitter