Example - Responding to Cascading Parameters

The GET .../parameters call returns:
  • The list of possible values for the answer to a parameter of id=0, type prompt, and cardinality Multiple
  • A second parameter of id=1, type prompt, and cardinality Single

The first parameter needs to be answered so that you can get the list of values of the second parameter.

<parameters>
    <parameter dpId="DP0" type="prompt" optional="false">
        <id>0</id>
        <technicalName>pmEnter First Name of Customer</technicalName>
        <name>Enter First Name of Customer</name>
        <answer type="Text" constrained="false">
            <info cardinality="Multiple">
                <lov refreshable="true" partial="false" hierarchical="false">
                    <id>UNIVERSELOV_DS0.DO5a</id>
                    <values>
                        <value>Andre</value>
                        <value>Annie</value>
                        <value>Brian</value>
                        <value>Christine</value>
                        <value>Dan</value>
                        <value>Erika</value>
                        <value>Franz</value>
                        <value>George</value>
                        <value>Habib</value>
                        <value>Jack</value>
                        <value>Jan</value>
                        <value>Joe</value>
                        <value>John</value>
                        <value>Luke</value>
                        <value>Mary</value>
                        <value>Michele</value>
                        <value>Paul</value>
                        <value>Peter</value>
                        <value>Philip</value>
                        <value>Robert</value>
                        <value>Robin</value>
                    </values>
                    <columns mappingId="0">
                        <column type="String" id="0">First Name</column>
                    </columns>
                </lov>
            </info>
        </answer>
    </parameter>
    <parameter dpId="DP0" type="prompt" optional="false">
        <id>1</id>
        <technicalName>psInvoice Date</technicalName>
        <name>Enter Invoice Date:</name>
        <answer type="Date" constrained="false">
            <info cardinality="Single">
                <lov refreshable="true" hierarchical="false">
                    <id>UNIVERSELOV_DS0.DO6b</id>
                    <parameters>
                        <id>0</id>
                    </parameters>
                </lov>
            </info>
        </answer>
    </parameter>
</parameters>

You answer the parameter with the PUT .../parameters call. First, you query the list of values according to a certain pattern (a*).

Request body:

<parameters>
    <parameter dpId="DP0" optional="false" type="prompt">
        <id>0</id>
        <technicalName>pmEnter First Name of Customer</technicalName>
        <name>Enter First Name of Customer</name>
        <answer constrained="false" type="Text">
            <info cardinality="Multiple">
                <lov hierarchical="false" partial="false" refreshable="true">
                    <query>
                        <sort order="Descending"/>
                        <search>a*</search>
                    </query>
                </lov>
            </info>
        </answer>
    </parameter>
    <parameter dpId="DP0" optional="false" type="prompt">
        <id>1</id>
        <technicalName>psInvoice Date</technicalName>
        <name>Enter Invoice Date:</name>
        <answer constrained="false" type="Date">
            <info cardinality="Single">
                <lov hierarchical="false" refreshable="true">
                    <query>
                        <sort order="Descending"/>
                    </query>
                </lov>
            </info>
        </answer>
    </parameter>
</parameters>

The PUT call returns the possible values for the parameter of id=0 that correspond to the search pattern in the descending order.

Response:

<parameters>
    <parameter dpId="DP0" type="prompt" optional="false">
        <id>0</id>
        <technicalName>pmEnter First Name of Customer</technicalName>
        <name>Enter First Name of Customer</name>
        <answer type="Text" constrained="false">
            <info cardinality="Multiple">
                <lov refreshable="true" partial="false" hierarchical="false">
                    <id>UNIVERSELOV_DS0.DO5a</id>
                    <values>
                        <value>Annie</value>
                        <value>Andre</value>
                    </values>
                    <columns mappingId="0">
                        <column type="String" id="0">First Name </column>
                    </columns>
                </lov>
            </info>
        </answer>
    </parameter>
    <parameter dpId="DP0" type="prompt" optional="false">
        <id>1</id>
        <technicalName>psInvoice Date</technicalName>
        <name>Enter Invoice Date:</name>
        <answer type="Date" constrained="false">
            <info cardinality="Single">
                <lov refreshable="true" hierarchical="false">
                    <id>UNIVERSELOV_DS0.DO6b</id>
                    <parameters>
                        <id>0</id>
                    </parameters>
                </lov>
            </info>
        </answer>
    </parameter>
</parameters>

Another PUT call with the values for the parameter of id=0 as input is needed to get the values for the second parameter of id=1.

Request body:

<parameters>
    <parameter dpId="DP0" optional="false" type="prompt">
        <id>0</id> 
        <technicalName>pmEnter First Name of Customer</technicalName>
        <name>Enter First Name of Customer</name>
        <answer constrained="false" type="Text">
            <info cardinality="Multiple">
                <lov hierarchical="false" partial="false" refreshable="true">
                    <query>
                        <sort order="Descending"/>
                        <search>a*</search>
                    </query>
                </lov>
            </info>
            <values>
                <value>Andre</value>
                <value>Annie</value>
            </values>
        </answer>
    </parameter>
    <parameter dpId="DP0" optional="false" type="prompt">
        <id>1</id>
        <technicalName>psInvoice Date</technicalName>
        <name>Enter Invoice Date:</name>
        <answer constrained="false" type="Date">
            <info cardinality="Single">
                <lov hierarchical="false" refreshable="true">
                    <query>
                        <sort order="Descending"/>
                    </query>
                </lov>
            </info>
        </answer>
    </parameter>
</parameters>

Response:

<parameters>
    <parameter dpId="DP0" type="prompt" optional="false">
        <id>1</id>
        <technicalName>psInvoice Date</technicalName>
        <name>Enter Invoice Date:</name>
        <answer type="Date" constrained="false">
            <info cardinality="Single">
                <lov refreshable="true" partial="false" hierarchical="false">
                    <id>UNIVERSELOV_DS0.DO6b</id>
                    <values>
                        <value>1995-09-16T17:04:00.000+02:00</value>
                        <value>1994-12-24T07:47:00.000+01:00</value>
                        <value>1994-12-14T16:26:00.000+01:00</value>
                        <value>1994-07-24T05:55:00.000+02:00</value>
                        <value>1994-04-06T12:43:00.000+02:00</value>
                        <value>1993-12-13T10:05:00.000+01:00</value>
                        <value>1993-12-01T15:54:00.000+01:00</value>
                        <value>1993-10-07T00:16:00.000+01:00</value>
                        <value>1993-07-08T00:12:00.000+02:00</value>
                        <value>1993-05-22T02:00:00.000+02:00</value>
                        <value>1993-05-12T02:35:00.000+02:00</value>
                        <value>1993-01-24T13:55:00.000+01:00</value>
                        <value>1992-11-28T15:26:00.000+01:00</value>
                        <value>1992-11-24T19:05:00.000+01:00</value>
                        <value>1992-10-07T04:27:00.000+01:00</value>
                    </values>
                    <columns mappingId="0">
                        <column type="DateTime" id="0">Invoice Date </column>
                    </columns>
                </lov>
            </info>
        </answer>
    </parameter>
</parameters>

The last PUT call with the value chosen for the parameter of id=1 as input returns a successful message.

Request body:

<parameters>
    <parameter dpId="DP0" optional="false" type="prompt">
        <id>0</id>
        <technicalName>pmEnter First Name of Customer</technicalName>
        <name>Enter First Name of Customer</name>
        <answer constrained="false" type="Text">
            <info cardinality="Multiple">
                <lov hierarchical="false" partial="false" refreshable="true">
                    <query>
                        <sort order="Descending"/>
                        <search>a*</search>
                    </query>
                </lov>
            </info>
            <values>
                <value>Andre</value>
                <value>Annie</value>
            </values>
        </answer>
    </parameter>
    <parameter dpId="DP0" optional="false" type="prompt">
        <id>1</id>
        <technicalName>psInvoice Date</technicalName>
        <name>Enter Invoice Date:</name>
        <answer constrained="false" type="Date">
            <info cardinality="Single">
                <lov hierarchical="false" refreshable="true">
                    <query>
                        <sort order="Descending"/>
                    </query>
                </lov>
            </info>
            <values>
                <value>1993-05-22T02:00:00.000+02:00</value>
            </values>
        </answer>
    </parameter>
</parameters>

Response:

<success>
    <message>The resource of type "Query" with identifier "6366177434639509348" has not been modified.</message>
    <id>6366177434639509348</id>
</success>