Difference between revisions of "Using the request Object"

From AgileApps Support Wiki
imported>Aeric
imported>Aeric
Line 28: Line 28:
:<syntaxhighlight lang="java" enclose="div">
:<syntaxhighlight lang="java" enclose="div">
<%
<%
  // Get the object ID a the comma separated list of record IDs
   String object_id = request.getParameter("object_id");
   String object_id = request.getParameter("object_id");
   String selectedRecords = request.getParameter("selectedRecords");  
   String selectedRecords = request.getParameter("selectedRecords");  
  // Break the comma-separated list into record IDs.
  // Join them with "OR" operands for use when doing a search for the records
   String filterCriteria = "";
   String filterCriteria = "";
   if (selectedRecords != null)
   if (selectedRecords != null)
Line 43: Line 47:
     }
     }
   }
   }
   Result result;
 
   result = Functions.searchRecords(object_id , "record_id,name", filterCriteria);
  // Use the filter criteria to fetch the selected records
   int resultCode = result.getCode();
  // 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)
   if (resultCode < 0)
   {
   {
Line 52: Line 59:
   else if (resultCode == 0)
   else if (resultCode == 0)
   {
   {
     // No records found. Take action according to your business logic
     // No records found. (This situation should never occur.)
   }
   }
   else
   else
   {
   {
     //Records retrieved successfully
     // Records retrieved successfully
     ParametersIterator iterator = result.getIterator();
    // Process them here
     ParametersIterator iterator = results.getIterator();
     while(iterator.hasNext())
     while(iterator.hasNext())
     {
     {
Line 63: Line 71:
       String recordID = params.get("record_id");
       String recordID = params.get("record_id");
       String recordName = params.get("name");
       String recordName = params.get("name");
       // Take action according to your business logic
       // Take additional action according to your business logic
     }
     }
   }
   }
%>
%>
</syntaxhighlight>
</syntaxhighlight>

Revision as of 20:15, 11 January 2013

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

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

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

<%
  String object_id = request.getParameter("object_id");
  String record_id = request.getParameter("record_id");
%>

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:

A Custom Action button can be applied to one record, or to several records at one time, if the user took advantage of the More Actions feature in the record list view. Because it can be applied to more than one record at a time, the process for obtaining record IDs differs somewhat.

Here is the code that does the job:

<%
  // Get the object ID a 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 doing a search for the records
  String filterCriteria = "";
  if (selectedRecords != null)
  {
    StringTokenizer st = new StringTokenizer(selectedRecords,",");
    while (st.hasMoreTokens())
    {
      if ( !"".equals(filterCriteria.trim()))
      {
        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
    }
  }
%>