Get Object and Record ID from the Request Object
From AgileApps Support Wiki
When a JSP Page is launched from a context that is associated with a particular object record, the request object available in the JSP page contains the identifiers needed to obtain additional information from the record, using either the REST record Resource or the Java record handling APIs.
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>
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>