Difference between revisions of "GetRecord"

From AgileApps Support Wiki
imported>Aeric
 
imported>Aeric
 
(13 intermediate revisions by the same user not shown)
Line 10: Line 10:
;Parameters:
;Parameters:
:;objectName:An [[Object Identifier]]
:;objectName:An [[Object Identifier]]
:;fields:The field-value pairs to get{{#ifeq: {{PAGENAME}}|Java API:Composite Objects|, where a field name of the form <tt>alias[.alias...].*</tt> or <tt>alias[.alias...].field</tt> indicates a [[Composite Object]] fetch|}}
:;fields:The fields to retrieve.
:;recordID:A [[Record Identifier]]
{{:FieldsInJavaAPIs}}
::* <tt>alias.*</tt> specifies all fields in the aliased object.
 
:;recordID:A [[Record Id]].
:;params:An optional [{{DOCHOST}}/javadocs/com/platform/api/Parameters.html com.platform.api.Parameters] object. Use it to specify the [[Java API:Record Handling#Retrieve Record Permissions Parameter|Retrieve Record Permissions Parameter]], in order to find out if the user has update or delete permissions on the record.
:;params:An optional [{{DOCHOST}}/javadocs/com/platform/api/Parameters.html com.platform.api.Parameters] object. Use it to specify the [[Java API:Record Handling#Retrieve Record Permissions Parameter|Retrieve Record Permissions Parameter]], in order to find out if the user has update or delete permissions on the record.


;Return:[[Result Class|<tt>Result</tt>]] object
;Return:
:[[Result Class|<tt>Result</tt>]] object. If the return code is greater than zero, use the <tt>getParameters()</tt> method to get a [[Parameters Class|Parameters]] object with the record's fields. (See the [[Java Code Samples]] for multiple examples of the <tt>getRecord</tt> API.)
 
:For a [[Composite Object]] relationship, the relationship ''alias'' becomes a "field" in the Parameters object. That field contains an ArrayList of embedded Parameters objects, one for each related record.
 
;Composite Record Example:
 
:This example assumes that a relationship has been established between Cases and a Contacts object, where Contact records have an email field and a [[Lookup]] to Cases. With that relationship, multiple contacts can be associated with a case. (In this example, the name of the alias relationship is assumed to be "contacts", matching the name of the object.)


{{#ifeq: {{PAGENAME}}|Java API:Composite Objects
:<syntaxhighlight lang="java" enclose="div">
|:For a relationship alias, the value returned is an ArrayList of Result objects, where each item in the list is a related record, and the Result object contains the fields in that record.
// Get the status field and two composite fields for a specified case record.
|
// Composite fields are identified as <alias>.<field1>, <alias>.<field2>, etc.
;Deprecated Field:
// The returned structure contains an array of Parameters for the "alias", where
:*<tt>workflow_owner</tt> - It is still present and can be used for updates, but it no longer contains any data when returned. Use this resource, instead: [[Java API:Record_Handling#getWFOwners|<tt>getWFOwners</tt>]].
// each Parameters item contains the fields from a related Contact.
{{:getRecord Examples}}
recordID = ...;
}}<noinclude>
Result result = Functions.getRecord("cases", "status,contacts.name,contacts.email", recordID);
<!--End of "not a composite page" section-->
if (result != null && result.getCode() == 1)
{
  Parameters params = result.getParameters();
  if (params != null)     
  {
      // Get the case status
      String caseStatus = params.get("status");
     
      // The "contacts" field contains the array of Parameters for associated Contacts.
      // Each entry in the array contains the fields for one record.
      // Here we get just the first entry from the array. (Loop to get them all.)
      ArrayList caseContacts = (ArrayList)params.getObject("contacts");
      HashMap contactParams = (HashMap)caseContacts.get(0); // Get first entry
      String name = (String)contactParams.get("name");      // Get the fields
      String email = (String)contactParams.get("email"); 
    }
}
</syntaxhighlight>
<noinclude>


[[Category:Java API]]
[[Category:Java API]]
[[Category:Record Handling]]
[[Category:Record Handling]]
</noinclude>
</noinclude>

Latest revision as of 03:21, 18 November 2014

Get a record, with specified fields.

Syntax
Result result = Functions.getRecord(String objectName, String fields, String recordID 
                  {, Parameters params} );
Parameters
objectName
An Object Identifier
fields
The fields to retrieve.
  • A comma-separated list of field names (Use the REST API:field Resource to get a complete list of fields.)
  • The asterisk ("*") wildcard specifies all fields.
  • For related-record fields in a Composite Object, specify the alias of the related object and the field name, where the alias is defined in the Object Relationships:
alias[.alias...].* or alias[.alias...].field
When fetched, an alias becomes a virtual "field" that contains an array of records from the related object, where each record contains the specified field(s).
  • alias.* specifies all fields in the aliased object.
recordID
A Record Id.
params
An optional com.platform.api.Parameters object. Use it to specify the Retrieve Record Permissions Parameter, in order to find out if the user has update or delete permissions on the record.
Return
Result object. If the return code is greater than zero, use the getParameters() method to get a Parameters object with the record's fields. (See the Java Code Samples for multiple examples of the getRecord API.)
For a Composite Object relationship, the relationship alias becomes a "field" in the Parameters object. That field contains an ArrayList of embedded Parameters objects, one for each related record.
Composite Record Example
This example assumes that a relationship has been established between Cases and a Contacts object, where Contact records have an email field and a Lookup to Cases. With that relationship, multiple contacts can be associated with a case. (In this example, the name of the alias relationship is assumed to be "contacts", matching the name of the object.)
// Get the status field and two composite fields for a specified case record.
// Composite fields are identified as <alias>.<field1>, <alias>.<field2>, etc.
// The returned structure contains an array of Parameters for the "alias", where
// each Parameters item contains the fields from a related Contact.
recordID = ...;
Result result = Functions.getRecord("cases", "status,contacts.name,contacts.email", recordID);
if (result != null && result.getCode() == 1)
{
   Parameters params = result.getParameters();
   if (params != null)      
   {
       // Get the case status
       String caseStatus = params.get("status");
       
       // The "contacts" field contains the array of Parameters for associated Contacts.
       // Each entry in the array contains the fields for one record.
       // Here we get just the first entry from the array. (Loop to get them all.)
       ArrayList caseContacts = (ArrayList)params.getObject("contacts");
       HashMap contactParams = (HashMap)caseContacts.get(0); // Get first entry
       String name = (String)contactParams.get("name");      // Get the fields
       String email = (String)contactParams.get("email");  
    }
}