Skip to Content
0
Former Member
Jul 11, 2014 at 02:24 PM

Need help with XML response to refresh document with context and prompts

37 Views

I've been working with the Restful api for a few weeks now and have been able to figure out most of what I need to automate testing of our reports. However, one task that I have not been able to figure out is how to refresh a document that contains both a context and two prompts for dates.

Here is what I have tried, and what the API responds with.

1) I queried the API for this document's parameters using the following call after logging in -

headers = {:accept=>'application/xml', :content_type=>'application/xml', :x_sap_logontoken=>@token}

url = "http://our.url.net:6405/biprws/raylight/v1/documents/12345/parameters"

RestClient.get(url, headers)

The response from the API is:

<parameters>

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

<id>0</id>

<technicalName>cQuery 1</technicalName>

<name>Select a context</name>

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

<info cardinality="Single">

<lov partial="false">

<values>

<value id="CTX_1">LOAN</value>

<value id="CTX_9">LOAN_APPLICATION</value>

</values>

</lov>

<values>

<value id="CTX_1">LOAN</value>

<value id="CTX_9">LOAN_APPLICATION</value>

</values>

<previous>

<value id="CTX_9">LOAN_APPLICATION</value>

</previous>

</info>

<values>

<value id="CTX_9">LOAN_APPLICATION</value>

</values>

</answer>

</parameter>

</parameters>

2) This tells me I need to supply a context, so I then replace my RestClient.get call with a RestClient.put call with the following payload:

<parameters>

<parameter>

<id>0</id>

<answer>

<values>

<value id=\"CTX_9\"/>

</values>

</answer>

</parameter>

</parameters>

3) This satisfies the context portion of the refresh. The API replies with the following response, telling me I need to answer two prompts -

<parameters>

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

<id>1</id>

<technicalName>psEnter value(s) for Start Date of Application Received Date</technicalName>

<name>Enter value(s) for Start Date of Application Received Date</name>

<answer type=\"DateTime\" constrained=\"false\">\

<info cardinality=\"Single\"/>

</answer>

</parameter>

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

<id>2</id>

<technicalName>psEnter value for End Date of Application Received Date</technicalName>

<name>Enter value for End Date of Application Received Date</name>\

<answer type=\"DateTime\" constrained=\"false\">

<info cardinality=\"Single\"/>

</answer>

</parameter>

</parameters>

4) Here is where I am having problems. I have tried all kinds of permutations of the below payload/response body. All I ever get from the API is a 400 - BadResponse error.

<parameters>

<parameter>

<id>0</id>

<answer>

<values>

<value id=\"CTX_9\"/>

</values>

</answer>

</parameter>

</parameters>

<parameters>

<parameter type=\"prompt\">

<id > 1 </ id>

<answer type=\"DateTime\">

<values>

<value>2012-06-11T09:50:54.000-04:00</value>

</values>

</answer>

</parameter>

<parameter type=\"prompt\">

<id > 2 </ id>

<answer type=\"DateTime\">

<values>

<value>2014-07-11T09:50:54.967-04:00</value>

</values>

</answer>

</parameter>

</parameters>

I am not very good with XML and the terminology around it, and I haven't received much training around using the Restful API other than the SDK documentation. I have a feeling there is something very basic that Im missing here. What is the correct XML needed in the response body to properly refresh the document?