on 05-21-2014 2:45 PM
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
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
Looking at the Developer Help file:
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:
- Ludek
Senior Support Engineer AGS Product Support, Global Support Center Canada
Follow us on Twitter
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
74 | |
9 | |
7 | |
7 | |
6 | |
6 | |
6 | |
6 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.