AgileApps Support Wiki Pre Release

Difference between revisions of "Request Object"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{DISPLAYTITLE:request Object}}
{{DISPLAYTITLE:request Object}}
The <tt>request</tt> object is available to any JSP [[Page]]. It contains information provided when the HTTP request is made.
The <tt>request</tt> object is available in any JSP [[Page]]. It contains information provided when the HTTP request is made. The information it contains can be used with the [[REST API:record Resource| REST record Resource]] or [[Java API:Record Handling|Java Record Handling]] APIs to get further information from the record.


When a JSP page is invoked by the platform, it contains identifiers for the record that was active when the JSP page was launched. Those identifiers can then be used with the [[REST API:record Resource| REST record Resource]] or [[Java API:Record Handling|Java Record Handling]] APIs to obtain further information from the record.
When a JSP page is invoked by an active record, the <tt>request</tt> object contains record identifiers.  


Record-identifying information is available when:
Record-identifying information is available when:
:* The JSP page is acting as a [[Print Templates|Print Template]].
:* The JSP page is acting as a [[Document Template]].
:* The JSP page is acting as a [[Custom Control]] on a record form.


To obtain the identifiers from the <tt>request</tt> object:
{{:Using the request Object}}
:<syntaxhighlight lang="java" enclose="div">
<%
  String object_id = request.getParameter("object_id");
  String record_id = request.getParameter("record_id");
%>
</syntaxhighlight>
 
To list all of parameters available in the <tt>request</tt> object and display their values:
:<syntaxhighlight lang="java" enclose="div">
<%
  String[] params = request.getParameterValues();
  for (int i=0; i<params.length; i++)
  {
    String paramName = params[i];
    String paramValue = request.getParameter( paramName );
  }
%>
</syntaxhighlight>

Latest revision as of 01:04, 3 December 2013

The request object is available in any JSP Page. It contains information provided when the HTTP request is made. The information it contains can be used with the REST record Resource or Java Record Handling APIs to get further information from the record.

When a JSP page is invoked by an active record, the request object contains record identifiers.

Record-identifying information is available when:

To get all of the parameters available in the request object, and their values:

<syntaxhighlight lang="java" enclose="div">

<%

 String[] params = request.getParameterValues();
 for (int i=0; i<params.length; i++)
 {
   String paramName = params[i];
   String paramValue = request.getParameter( paramName );
 }

%> </syntaxhighlight>

To obtain a record identifier from a request object sent by the platform:

With the object ID and record ID, use the getRecord API to retrieve the record.
<syntaxhighlight lang="java" enclose="div">

<%

 String object_id = request.getParameter("object_id");
 String record_id = request.getParameter("record_id");

%> </syntaxhighlight>

Notepad.png

Note: Although the object_id is alphanumeric, it can be used in any API that requires an object name.

To obtain a record identifier from a request object sent by a Custom Action button:

This code gets the record IDs and uses the searchRecords API to retrieve the records:
<syntaxhighlight lang="java" enclose="div">

<%

 // Get the object ID and the comma separated list of record IDs
 String object_id = request.getParameter("object_id");
 String selectedRecords = request.getParameter("selectedRecords"); 
 // Break the comma-separated list into record IDs. 
 // Join them with "OR" operands for use when searching for the records
 String filterCriteria = "";
 if (selectedRecords != null)
 {
   StringTokenizer st = new StringTokenizer(selectedRecords,",");
   while (st.hasMoreTokens())
   {
     if ( !"".equals(filterCriteria.trim()))
     {
        // Criteria string isn't empty, and we're adding another expression
        // Prefix the new expression with a boolean OR operator
        filterCriteria += " OR "
     }
     filterCriteria += "record_id = "+ st.nextToken();
   }
 }
 // Use the filter criteria to fetch the selected records
 // Here, we ask for the record_id and name fields
 Result results;
 results = Functions.searchRecords(object_id , "record_id,name", filterCriteria);
 int resultCode = results.getCode();
 if (resultCode < 0)
 {
    // Error occurred
 }
 else if (resultCode == 0)
 {
   // No records found. (This situation should never occur.)
 }
 else
 {
   // Records retrieved successfully
   // Process them here
   ParametersIterator iterator = results.getIterator();
   while(iterator.hasNext())
   {
     Parameters params = iterator.next();
     String recordID = params.get("record_id");
     String recordName = params.get("name");
     // Take additional action according to your business logic
   }
 }

%> </syntaxhighlight>