cancel
Showing results for 
Search instead for 
Did you mean: 

How to create prompts for webi report using restful ?

Former Member
0 Kudos

Hi,

I need to create a prompts for the webi report in 4.2 using restful which has no predefined prompts.

1 . PUT method

/biprws/raylight/v1/documents/xxxx/parameters/

<parameters>

    <parameter optional="false" type="prompt" dpId="DP0">

        <id>0</id>

        <technicalName>Value >=</technicalName>

        <name>Value >=</name>

        <answer constrained="false" type="Numeric">

            <info cardinality="Single" keepLastValues="true">

                <previous>

                    <value>0</value>

                </previous>

            </info>

            <values>

                <value>0</value>

            </values>

        </answer>

    </parameter>

</parameters>

2. response

<error>

    <error_code>RWS 00057</error_code>

    <message>Method not allowed; method specified in the Request-Line is not allowed for the resource identified by the Request-URI (RWS 00057)</message>

</error>

Accepted Solutions (1)

Accepted Solutions (1)

daniel_paulsen
Active Contributor
0 Kudos

Hi Nirmal,

If your report does not have a prompt yet, that would explain the error.  You cannot add a parameter using the parameters api.  This API is for getting and answering prompts.

You will need to add the prompt to the queryspec of the dataprovider.

for example, if I have a report with no parameters and the following specification:

GET    /biprws/raylight/v1/documents/<docId>/dataproviders/DP0/specification

Accept: text/xml

<?xml version="1.0" encoding="UTF-8"?>

<queryspec:QuerySpec xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:queryspec="http://com.sap.sl.queryspec" version="17" dataProviderId="DP0">

    <queryParameters>

        <duplicatedRowsProperty activated="true" value="true"/>

        <maxRetrievalTimeInSecondsProperty value="0"/>

        <maxRowsRetrievedProperty value="0"/>

        <removeEmptyRowsProperty activated="true" value="true"/>

        <allowOtherUserToEditQueryProperty activated="true" value="true"/>

        <resetContextOnRefreshProperty activated="true" value="true"/>

        <stripQueryProperty/>

        <useBexQueryDefaultValue activated="true" value="true"/>

    </queryParameters>

    <queriesTree xsi:type="queryspec:QueryDataNode">

        <bOQuery name="Query 1" identifier="_KQQi4FQHEeaLlv5x6uBraQ">

            <resultObjects identifier="OBJ_376" name="Store name"/>

            <resultObjects identifier="OBJ_166" name="City"/>

            <resultObjects identifier="OBJ_218" name="State"/>

            <conditionPart/>

        </bOQuery>

    </queriesTree>

</queryspec:QuerySpec>

In order to add a prompt for "State" I would need to add the <conditionPart> to the query:

PUT    /biprws/raylight/v1/documents/<docId>/dataproviders/DP0/specification

Content-Type: text/xml

<?xml version="1.0" encoding="UTF-8"?>

<queryspec:QuerySpec xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:queryspec="http://com.sap.sl.queryspec" version="17" dataProviderId="DP0">

    <queryParameters>

        <duplicatedRowsProperty activated="true" value="true"/>

        <maxRetrievalTimeInSecondsProperty value="0"/>

        <maxRowsRetrievedProperty value="0"/>

        <removeEmptyRowsProperty activated="true" value="true"/>

        <allowOtherUserToEditQueryProperty activated="true" value="true"/>

        <resetContextOnRefreshProperty activated="true" value="true"/>

        <stripQueryProperty/>

        <useBexQueryDefaultValue activated="true" value="true"/>

    </queryParameters>

    <queriesTree xsi:type="queryspec:QueryDataNode">

        <bOQuery name="Query 1" identifier="_IN0mgFQGEeaLlv5x6uBraQ">

            <resultObjects identifier="OBJ_376" name="Store name"/>

            <resultObjects identifier="OBJ_166" name="City"/>

            <resultObjects identifier="OBJ_218" name="State"/>

            <conditionPart>

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

                    <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="OBJ_218" itemName="State" comparisonOperator="InList">

                        <operands xsi:type="queryspec:QueryPromptOperand" optional="false" free="true" userPosition="0" persistent="true" question="Enter value(s) for State" lovIdentifier="OBJ_218"/>

                    </condition>

                </conditionTree>

            </conditionPart>

        </bOQuery>

    </queriesTree>

</queryspec:QuerySpec>

Now I can get the prompt and provide values:

GET  /biprws/raylight/v1/documents/<docId>/parameters

Dan

Former Member
0 Kudos

I tried by adding the following query specification . It is successfully saving but not returning any parameters when I execute GET  /biprws/raylight/v1/documents/<docId>/parameters

Note : version of SAP BusinessObjects BI Platform 4.2 Support Pack 2

Result for GET  /biprws/raylight/v1/documents/<docId>/parameters

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<parameters/>

Query spec :

<?xml version="1.0" encoding="UTF-8"?>

<queryspec:QuerySpec xmlns:queryspec="http://com.sap.sl.queryspec" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="17" dataProviderId="DP0">

   <queryParameters>

      <duplicatedRowsProperty activated="true" value="true" />

      <maxRetrievalTimeInSecondsProperty value="0" />

      <maxRowsRetrievedProperty value="0" />

      <removeEmptyRowsProperty activated="true" value="true" />

      <allowOtherUserToEditQueryProperty activated="true" value="true" />

      <resetContextOnRefreshProperty activated="true" value="true" />

      <stripQueryProperty />

      <useBexQueryDefaultValue activated="true" value="true" />

   </queryParameters>

   <queriesTree xsi:type="queryspec:QueryOperatorNode" id="1" queryOperator="Union">

      <children xsi:type="queryspec:QueryDataNode">

         <bOQuery name="Combined Query 1" identifier="2">

            <resultObjects identifier="DS0.DO1df" name="Reserves Expense" />

            <resultObjects identifier="DS0.DO6ec" name="Net Incurred Expense" />

            <resultObjects identifier="DS0.DO217" name="Accident Description Corp Code" />

            <resultObjects identifier="DS0.DO1ff" name="Accident Description Corporate" />

            <resultObjects identifier="DS0.DO5df" name="Body Part" />

            <resultObjects identifier="DS0.DO5d7" name="NCCI Nature of Injury" />

            <resultObjects identifier="DS0.DO5e1" name="Detail Loss Location" />

            <resultObjects identifier="DS0.DO70d" name="Claim Recovery Total Indemnity" />

            <resultObjects identifier="DS0.DO29a" name="Customer Name" />

            <resultObjects identifier="DS0.DO268" name="Claim Count" />

            <resultObjects identifier="DS0.DO2eb" name="Paid Total" />

            <resultObjects identifier="DS0.DO18e" name="Customer ID" />

            <resultObjects identifier="DS0.DFab" name="Claim Cust Total Net Inc &gt;=" />

            <resultObjects identifier="DS0.DOca7" name="Claim Setup Type Description" />

            <resultObjects identifier="DS0.DO9f5" name="Claim Status Description" />

            <resultObjects identifier="DS0.DOb1" name="Claim Level Coverage" />

            <resultObjects identifier="DS0.DO1f3" name="Site Lowest" />

            <resultObjects identifier="DS0.DO241" name="Jurisdiction State" />

            <resultObjects identifier="DS0.DO2ea" name="Date of Loss" />

            <resultObjects identifier="DS0.DO20d" name="Claim Closed Date" />

            <resultObjects identifier="DS0.DO2f9" name="Policy Year" />

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

               <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="DS0.DO18e" itemName="Customer ID" comparisonOperator="InList">

                  <operands xsi:type="queryspec:QueryPromptOperand" optional="true" free="true" userPosition="0" persistent="true" question="Enter Customer ID:" lovIdentifier="DS0.DO18e" />

               </condition>

               <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="DS0.DFab" itemName="Claim Cust Total Net Inc &gt;=" comparisonOperator="GreaterThanOrEqualTo">

                  <operands xsi:type="queryspec:QueryPromptOperand" optional="true" free="true" userPosition="0" persistent="true" question="Claim Total Net Incurred &gt;=" lovIdentifier="DS0.DFab" />

               </condition>

               <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="DS0.DOca7" itemName="Claim Setup Type Description" comparisonOperator="EqualTo">

                  <operands xsi:type="queryspec:QueryPromptOperand" optional="true" free="true" userPosition="0" persistent="true" question="Select Claim Setup Type(s):" lovIdentifier="DS0.DOca7" />

               </condition>

               <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="DS0.DO9f5" itemName="Claim Status Description" comparisonOperator="EqualTo">

                  <operands xsi:type="queryspec:QueryPromptOperand" optional="true" free="true" userPosition="0" persistent="true" question="Enter Claim Status:" lovIdentifier="DS0.DO9f5" />

               </condition>

               <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="DS0.DOb1" itemName="Claim Level Coverage" comparisonOperator="EqualTo">

                  <operands xsi:type="queryspec:QueryPromptOperand" optional="true" free="true" userPosition="0" persistent="true" question="Enter Claim Level Coverage:" lovIdentifier="DS0.DOb1" />

               </condition>

               <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="DS0.DO1f3" itemName="Site Lowest" comparisonOperator="EqualTo">

                  <operands xsi:type="queryspec:QueryPromptOperand" optional="true" free="true" userPosition="0" persistent="true" question="Enter Lowest Site Code:" lovIdentifier="DS0.DO1f3" />

               </condition>

               <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="DS0.DO241" itemName="Jurisdiction State" comparisonOperator="EqualTo">

                  <operands xsi:type="queryspec:QueryPromptOperand" optional="true" free="true" userPosition="0" persistent="true" question="Enter Jurisdiction State:" lovIdentifier="DS0.DO241" />

               </condition>

               <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="DS0.DO2ea" itemName="Date of Loss" comparisonOperator="GreaterThanOrEqualTo">

                  <operands xsi:type="queryspec:QueryPromptOperand" optional="true" free="true" userPosition="0" persistent="true" question="Enter From Date Of Loss:_Enter To Date Of Loss:" lovIdentifier="DS0.DO2ea" />

               </condition>

               <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="DS0.DO20d" itemName="Claim Closed Date" comparisonOperator="GreaterThanOrEqualTo">

                  <operands xsi:type="queryspec:QueryPromptOperand" optional="true" free="true" userPosition="0" persistent="true" question="Enter From Claim Closed Date:_Enter To Claim Closed Date:" lovIdentifier="DS0.DO20d" />

               </condition>

               <condition xsi:type="queryspec:ComparisonCondition" conditionType="Comparison" itemIdentifier="DS0.DO2f9" itemName="Policy Year" comparisonOperator="EqualTo">

                  <operands xsi:type="queryspec:QueryPromptOperand" optional="true" free="true" userPosition="0" persistent="true" question="Enter From Policy Year:_Enter To Policy Year:" lovIdentifier="DS0.DO2f9" />

               </condition>

            </conditionTree>

         </bOQuery>

      </children>

      <propertyBag key="DUPLICATED_ROWS_UNDEFINED_VALUE" value="-1" />

      <propertyBag key="RESET_CONTEXT_ON_REFRESH_UNDEFINED_VALUE" value="-1" />

      <propertyBag key="ALLOW_THE_USER_TO_EDIT_QUERY_UNDEFINED_VALUE" value="-1" />

   </queriesTree>

</queryspec:QuerySpec>

daniel_paulsen
Active Contributor
0 Kudos

Hi Nirmal,

It looks like you need to enclose the <conditionTree> inside of a <conditionPart> tag, which is missing in the request.

<conditionPart>

     <conditionTree>

          <condition>....</condition>

          <condition>....</condition>

     </conditionTree>

</conditionPart>

Dan

former_member197386
Active Contributor
0 Kudos

Hi Nirmal,

A way to proceed could be to create the desired query in Webi client. After that, use the REST API to get the query specification of this query.

Regards,

Anthony

Former Member
0 Kudos

Thanks Daniel and Antony,

Also my requirement is to show default values or last selected values in the prompt when user open the report in launchpad

Eg: for the below parameter, i need to show like 'Regular' in the selected value section.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<parameters>

    <parameter optional="false" type="prompt" dpId="DP0">

        <id>0</id>

        <technicalName>Enter value(s) for  Type Description</technicalName>

        <name>Enter value(s) for  Type Description</name>

        <answer constrained="false" type="Text">

            <info cardinality="Multiple" keepLastValues="true">

                <lov hierarchical="false" partial="false" refreshable="true" searchable="true" mandatorySearch="false">

                    <id>UNIVERSELOV_DS0.DOca7</id>

                    <updated>2016-07-29T15:30:24.000-05:00</updated>

                    <values>

                        <value>Converted Let Rest</value>

                        <value>Let Rest          </value>

                        <value>Regular           </value>

                    </values>

                    <columns mappingId="0">

                        <column id="0" type="String">Type Description </column>

                    </columns>

                </lov>

                <previous>

                    <value id="0">Regular            </value>

                </previous>

            </info>

            <values>

                <value id="0">Regular            </value>

            </values>

        </answer>

    </parameter>

</parameters>

former_member197386
Active Contributor
0 Kudos

Please, could you open a new thread for this new question?

Regards,

Anthony

Answers (0)