Example - Refreshing a Document with Nested Parameters in Lists of Values

Nested parameters are also referred to as cascading parameters. In somes cases, a list of values may be dependent on other parameters value(s). The service handles those cases the same way as previously, except that the dependent parameters are listed in the List of Value information XML block.

Step 1: Send the initial GET call without any request body:

GET <webiURL>/documents/8816/parameters

The response returns the prompts at the first level in the hierarchy:

<parameters>
    <parameter optional="false" type="prompt" dpId="DP11">
        <id>1</id>
        <technicalName>Age from:</technicalName>
        <name>Age from:</name>
        <answer constrained="false" type="Numeric">
            <info cardinality="Single">
                <lov hierarchical="false" partial="false" refreshable="true">
                    <id>UNIVERSELOV_DS2.DO9</id>
                    <intervals>
                        <interval id="0">
                            <value>18</value>
                            <value>2600</value>
                        </interval>
                    </intervals>
                    <values>
                        <value>18</value>
                        <value>19</value>
                        . . .
                        <value>2600</value>
                    </values>
                    <columns mappingId="0">
                        <column id="0" type="Numeric">Age </column>
                    </columns>
                </lov>
            </info>
        </answer>
    </parameter>
    <parameter optional="false" type="prompt" dpId="DP11">
        <id>2</id>
        <technicalName>Date greater than</technicalName>
        <name>Date greater than</name>
        <answer constrained="false" type="DateTime">
            <info cardinality="Single">
                <lov hierarchical="false" partial="false" refreshable="true">
                    <id>UNIVERSELOV_DS2.DO17</id>
                    <intervals>
                        <interval id="0">
                            <value>1992-02-29T22:45:00.000+01:00</value>
                            <value>1992-11-11T03:55:00.000+01:00</value>
                        </interval>
                        . . .
                        <interval id="9">
                            <value>1995-10-13T01:00:00.000+01:00</value>
                            <value>1995-12-29T01:00:00.000+01:00</value>
                        </interval>                    
                    </intervals>                    
                    <values>
                        <value>1992-02-29T22:45:00.000+01:00</value>
                        <value>1992-09-03T17:15:00.000+02:00</value>
                        . . .
                        <value>1992-11-11T03:55:00.000+01:00</value>
                    </values>
                    <columns mappingId="0">
                        <column id="0" type="DateTime">Invoice Date </column>
                    </columns>
                </lov>
            </info>
        </answer>
    </parameter>
    <parameter optional="false" type="prompt" dpId="DP11">
        <id>3</id>
        <technicalName>Region in list:</technicalName>
        <name>Region in list:</name>
        <answer constrained="false" type="Text">
            <info cardinality="Multiple">
                <lov hierarchical="false" partial="false" refreshable="true">
                    <id>UNIVERSELOV_DS2.DO12</id>
                    <intervals>
                        <interval id="0">
                            <value>Arabia</value>
                            <value>Western Cape</value>
                        </interval>
                    </intervals>
                    <values>
                        <value>Arabia</value>
                        <value>Bavaria</value>
                        . . .
                        <value>Western Cape</value>
                    </values>
                    <columns mappingId="0">
                        <column id="0" type="String">Region </column>
                    </columns>
                </lov>
            </info>
        </answer>
    </parameter>
    <parameter optional="false" type="prompt" dpId="DP11">
        <id>4</id>
        <technicalName>To:</technicalName>
        <name>To:</name>
        <answer constrained="false" type="Numeric">
            <info cardinality="Single">
                <lov hierarchical="false" partial="false" refreshable="true">
                    <id>UNIVERSELOV_DS2.DO9</id>
                    <intervals>
                        <interval id="0">
                            <value>18</value>
                            <value>2600</value>
                        </interval>
                    </intervals>
                    <values>
                        <value>18</value>
                        <value>19</value>
                        . . .
                        <value>2600</value>
                    </values>
                    <columns mappingId="0">
                        <column id="0" type="Numeric">Age </column>
                    </columns>
                </lov>
            </info>
        </answer>
    </parameter>
    <parameter optional="false" type="prompt" dpId="DP11">
        <id>0</id>
        <technicalName>Enter values for CustomLOV_3promptDependant:</technicalName>
        <name>Enter values for CustomLOV_3promptDependant:</name>
        <answer constrained="false" type="Text">
            <info cardinality="Multiple">
                <lov hierarchical="false" refreshable="true">
                    <id>UNIVERSELOV_DS2.DO10c</id>
                    <parameters>
                        <id>1</id>
                        <id>2</id>
                        <id>3</id>
                        <id>4</id>
                    </parameters>
                </lov>
            </info>
        </answer>
    </parameter>
</parameters>
Note There is a <parameters><id>1</id><id>2</id><id>3</id><id>4</id></parameters> block nested inside the last parameter.
Step 2: Resolve the nested parameters to allow the main LOV to be filled in with values

PUT <webiURL>/documents/8816/parameters

Request body:

<parameters>
    <parameter>
        <id>1</id>
        <answer>
            <values>
                <value>1</value>
            </values>
        </answer>
    </parameter>
    <parameter>
        <id>2</id>
        <answer>
            <values>
                <value>1970-01-01T00:00:00.000+00:00</value>
            </values>
        </answer>
    </parameter>
    <parameter>
        <id>3</id>
        <answer>
            <values>
                <value>Arabia</value>
                <value>Bavaria</value>
                . . .
                <value>West Nepal</value>
                <value>Western Cape</value>
            </values>
        </answer>
    </parameter>
    <parameter>
        <id>4</id>
        <answer>
            <values>
                <value>150</value>
            </values>
        </answer>
    </parameter>
</parameters>

A second call that includes the reference to the XML file will get the corresponding second level values:

<parameters>
    <parameter optional="false" type="prompt" dpId="DP11">
        <id>0</id>
        <technicalName>Enter values for CustomLOV_3promptDependant:</technicalName>
        <name>Enter values for CustomLOV_3promptDependant:</name>
        <answer constrained="false" type="Text">
            <info cardinality="Multiple">
                <lov hierarchical="false" partial="false" refreshable="true">
                    <id>UNIVERSELOV_DS2.DO10c</id>
                    <intervals>
                        <interval id="0">
                            <value>AKOUTEY</value>
                            <value>du Toit</value>
                        </interval>
                    </intervals>
                    <values>
                        <value>AKOUTEY</value>
                        <value>Arai</value>
                        <value>Baker</value>
                        . . .
                        <value>du Randt</value>
                        <value>du Toit</value>
                    </values>
                    <columns mappingId="0">
                        <column id="0" type="String">CustomLOV_3promptDependant </column>
                    </columns>
                </lov>
            </info>
        </answer>
    </parameter>
</parameters>
When the list of nested parameters supplied is incomplete

Resolving only some of the nested parameters does not allow the main LOV to be filled in with values. In the body example below, only parameters 1 and 4 are provided. The response will request parameters 3 and 4 as can be seen in the response below.

PUT <webiURL>documents/8816/parameters

Request body:

<parameters>
    <parameter>
        <id>1</id>
        <answer>
            <values>
                <value>29</value>
            </values>
        </answer>
    </parameter>
    <parameter>
        <id>4</id>
        <answer>
            <values>
                <value>72</value>
            </values>
        </answer>
    </parameter>
</parameters>

A call that includes the reference to the XML file will get the response below:

<parameters>
    <parameter optional="false" type="prompt">
        <id>2</id>
        <technicalName>Date greater than</technicalName>
        <name>Date greater than</name>
        <answer constrained="false" type="DateTime">
            <info cardinality="Single">
                <lov hierarchical="false" refreshable="true">
                    <id>UNIVERSELOV_DS2.DO17</id>
                </lov>
            </info>
        </answer>
    </parameter>
    <parameter optional="false" type="prompt">
        <id>3</id>
        <technicalName>Region in list:</technicalName>
        <name>Region in list:</name>
        <answer constrained="false" type="Text">
            <info cardinality="Multiple">
                <lov hierarchical="false" refreshable="true">
                    <id>UNIVERSELOV_DS2.DO12</id>
                </lov>
            </info>
        </answer>
    </parameter>
    <parameter optional="false" type="prompt" dpId="DP11">
        <id>0</id>
        <technicalName>Enter values for CustomLOV_3promptDependant:</technicalName>
        <name>Enter values for CustomLOV_3promptDependant:</name>
        <answer constrained="false" type="Text">
            <info cardinality="Multiple">
                <lov hierarchical="false" refreshable="true">
                    <id>UNIVERSELOV_DS2.DO10c</id>
                    <parameters>
                        <id>2</id>
                        <id>3</id>
                    </parameters>
                </lov>
            </info>
        </answer>
    </parameter>
</parameters>