Difference between revisions of "Data Policy Code Samples"
From LongJump Support Wiki
imported>Aeric m (Text replace - ' getEnv(' to ' Functions.getEnv(') |
imported>Aeric m (Text replace - 'functionParams' to 'requestParams') |
||
Line 19: | Line 19: | ||
params.add("activity_type", "Fax"); | params.add("activity_type", "Fax"); | ||
params.add("notes", "Functions - logactivity"); | params.add("notes", "Functions - logactivity"); | ||
Result result = Functions.logActivity("Adding an activity using logActivity via Custom Code", | Result result = Functions.logActivity("Adding an activity using logActivity via Custom Code", requestParams.get("object_id"), requestParams.get("id"),getEnv(ENV.USER.ID), params); | ||
Functions.debug("Result from logActivity:" + result.getMessage()); | Functions.debug("Result from logActivity:" + result.getMessage()); | ||
return result.getMessage(); | return result.getMessage(); | ||
Line 29: | Line 29: | ||
:<syntaxhighlight lang="java" enclose="div"> | :<syntaxhighlight lang="java" enclose="div"> | ||
//This function closes tasks related to any record in any object | //This function closes tasks related to any record in any object | ||
Functions.debug("Object :" + | Functions.debug("Object :" + requestParams.get("object_id")+ | ||
"\n Function : Search And Update Tasks for :"+ | "\n Function : Search And Update Tasks for :"+ requestParams.get("record_id")); | ||
String recId = | String recId = requestParams.get("record_id"); | ||
//Search for all tasks that are associated with the CASE object | //Search for all tasks that are associated with the CASE object | ||
//The search filter is hard coded here to look for case | //The search filter is hard coded here to look for case | ||
Line 38: | Line 38: | ||
Result result = Functions.searchRecords("TASK", "record_id,subject,status", "reference_type contains 'CASE'"); | Result result = Functions.searchRecords("TASK", "record_id,subject,status", "reference_type contains 'CASE'"); | ||
int resultCode = result.getCode(); | int resultCode = result.getCode(); | ||
Functions.debug( | Functions.debug(requestParams.get("object_id")+":Result message for searching TASKS is " + result.getMessage()); | ||
Functions.debug( | Functions.debug(requestParams.get("object_id")+" :Result code for searching TASKS is " + resultCode); | ||
if(resultCode < 0) | if(resultCode < 0) | ||
{ | { | ||
Line 50: | Line 50: | ||
{ | { | ||
// No records found. Take action according to your business logic | // No records found. Take action according to your business logic | ||
Functions.debug( | Functions.debug(requestParams.get("object_id")+" : No TASKS found using the search function."); | ||
} | } | ||
else | else | ||
Line 104: | Line 104: | ||
Functions.debug("Function : Add & Update Event"); | Functions.debug("Function : Add & Update Event"); | ||
Parameters params = Functions.getParametersInstance(); | Parameters params = Functions.getParametersInstance(); | ||
params.add("reference_id", | params.add("reference_id", requestParams.get("record_id")); | ||
params.add("reference_type", | params.add("reference_type", requestParams.get("object_id")); | ||
params.add("description", "Check your calendar to make sure the event is recorded."); | params.add("description", "Check your calendar to make sure the event is recorded."); | ||
params.add("start_date", new Date()); | params.add("start_date", new Date()); | ||
Line 113: | Line 113: | ||
params.add("assigned_to", Functions.getEnv(ENV.USER.ID)); | params.add("assigned_to", Functions.getEnv(ENV.USER.ID)); | ||
Result result = Functions.addEvent("Meeting! " + | Result result = Functions.addEvent("Meeting! " + requestParams.get("object_id"), | ||
Functions.getEnv(ENV.USER.ID), new Date(), 11, 15, 30, params); | Functions.getEnv(ENV.USER.ID), new Date(), 11, 15, 30, params); | ||
Functions.debug("Result of addEvent: " + result.getMessage()); | Functions.debug("Result of addEvent: " + result.getMessage()); | ||
Line 193: | Line 193: | ||
// To associate the sendEmail activity to a particular record | // To associate the sendEmail activity to a particular record | ||
//Retrieve the record ID from the | //Retrieve the record ID from the requestParams object | ||
String recordID = | String recordID = requestParams.get("id"); | ||
//Retrieve the object ID from the funtionParams object | //Retrieve the object ID from the funtionParams object | ||
String objectID = | String objectID = requestParams.get("object_id"); | ||
//Log the record ID to the log | //Log the record ID to the log |
Latest revision as of 22:07, 19 October 2012
These code samples can be used to construct your own Data Policies. The comments embedded in the code samples explain their functionality.
Log Activity
This example logs an activity for a given object identifier and activity identifier.
Functions.debug("Function: logActivity"); Parameters params = Functions.getParametersInstance(); params.add("subject", "Subject : Adding log call via function"); params.add("description", " This is a log call added via function"); params.add("status", "In Progress"); params.add("sales_notes", "Confirmed the project amount with the contact"); params.add("action_type", "Email"); params.add("contact_id", "2015353331"); //If you had a custom field in your Task object //Go to the link Objects » Tasks to get the field name //The display name of the custom field should not be used to update the field //Get the name of custom field to update the field params.add("custom11", "custom field update using function"); params.add("activity_type", "Fax"); params.add("notes", "Functions - logactivity"); Result result = Functions.logActivity("Adding an activity using logActivity via Custom Code", requestParams.get("object_id"), requestParams.get("id"),getEnv(ENV.USER.ID), params); Functions.debug("Result from logActivity:" + result.getMessage()); return result.getMessage();
Close Tasks with Status Equal to In Progress
This example finds all the tasks whose status field contains "In Progress" for a given record identifier and changes the status to "Completed".
//This function closes tasks related to any record in any object Functions.debug("Object :" + requestParams.get("object_id")+ "\n Function : Search And Update Tasks for :"+ requestParams.get("record_id")); String recId = requestParams.get("record_id"); //Search for all tasks that are associated with the CASE object //The search filter is hard coded here to look for case //But you can pass the search string dynamically to your Parameters //object when you call this function Result result = Functions.searchRecords("TASK", "record_id,subject,status", "reference_type contains 'CASE'"); int resultCode = result.getCode(); Functions.debug(requestParams.get("object_id")+":Result message for searching TASKS is " + result.getMessage()); Functions.debug(requestParams.get("object_id")+" :Result code for searching TASKS is " + resultCode); if(resultCode < 0) { // Some error happened. String msg = "Related Tasks could not be retrieved"; Functions.debug(msg + ":\n" + result.getMessage()); // Log details Functions.throwError(msg + "."); // Error dialog } else if(resultCode == 0) { // No records found. Take action according to your business logic Functions.debug(requestParams.get("object_id")+" : No TASKS found using the search function."); } else { //Records retrieved successfully Functions.debug("Number of tasks found using search function:" + resultCode); //Iterate through the set of records found ParametersIterator iterator = result.getIterator(); //Work with all the records retrieved using searchRecords API in a while loop while(iterator.hasNext()) { // Take action according to your business logic //Get the records using the Iterator object in to Parameter object Parameters params = iterator.next(); String taskID = params.get("record_id"); Functions.debug(" TASK: TASKID is " + taskID); String subjectInfo = params.get("subject"); Functions.debug(" Task Subject is: " + subjectInfo); String taskStatus = params.get("status"); Functions.debug(" Task Status is " + taskStatus); //We need to check for the status of the task //If the task is 'In Progress', we will update it if(taskStatus.equals("In Progress")) { Result getRecordResult = Functions.getRecord("TASK", "subject,status,reference_id,reference_type", taskID); Functions.debug("Result from getRecord:\n" + getRecordResult.getMessage()); Functions.debug("Reference Id from getRecord: " + (getRecordResult.getParameters()).get("reference_id")); params.add("status", "Completed"); params.add("end_flag", 1); params.add("ownerID", Functions.getEnv(ENV.USER.ID)); params.add("assigned_id", Functions.getEnv(ENV.USER.ID)); params.add("description", "Check Activity history for Completed tasks. "); params.add("subject", "Completing Tasks on Case Close!"); params.add("date_modified", new Date()); params.add("action_type", "Email"); //Check to see if the reference ID of the task //Update the task only if the reference Id matches the current record ID if(((getRecordResult.getParameters()).get("reference_id")).equals(recId)) { Functions.debug("Related Task found!"); Result updateTaskResult = Functions.updateRecord("TASK", taskID, params); Functions.debug("Update Task Result:" + updateTaskResult.getMessage()); } } } }
Add and Update an Event
This example adds an event for a given object identifier.
Functions.debug("Function : Add & Update Event"); Parameters params = Functions.getParametersInstance(); params.add("reference_id", requestParams.get("record_id")); params.add("reference_type", requestParams.get("object_id")); params.add("description", "Check your calendar to make sure the event is recorded."); params.add("start_date", new Date()); params.add("subject", "Calender - adding an appointment"); // the following line is optional; // it demonstrates how you can use the getEnv function to retrieve the USER values params.add("assigned_to", Functions.getEnv(ENV.USER.ID)); Result result = Functions.addEvent("Meeting! " + requestParams.get("object_id"), Functions.getEnv(ENV.USER.ID), new Date(), 11, 15, 30, params); Functions.debug("Result of addEvent: " + result.getMessage()); if(result.getCode() != -1) { // Some code to populate the eventID. //eventId is required to use updateEvent String eventID = result.getID(); Functions.debug("Event ID for event added using addEvent:" + eventID); // code to add description to the Event. params.add("subject", "Weekly status meeting!!"); Result result2 = Functions.updateEvent(eventID, params); Functions.debug("Result from updateEvent:" + result2.getMessage()); } else { Functions.debug("Error in adding event" + result.getID()); }
Add an Opportunity
This example adds an opportunity record.
//An opportunity can be added to an account or to a contact or prospect Parameters params = Functions.getParametersInstance(); params.add("name", "Opportunity-" + new Date()); params.add("close_date", new Date()); params.add("stage","Prospecting"); //Associating the opportunity with a contact //Make sure you modify the record ID in the next line //of code to match your CONTACT's record ID params.add("contact_id", "1072726531"); //The following lines of code show how to update lookup fields //Lookup fields can be updated //during an add operation but the key-value pair should be the //lookup field name and the record ID of the record //'lookuptotestcustomizations' is the record identifier of a user-defined lookup field //'account_id' is the record identifier of a system-defined lookup field params.add("lookuptotestcustomizations", "1637926708"); params.add("account_id", "2101896782"); //Relate the opportunity to the ACCOUNT object using the function params.add("related_to_type", "ACCOUNT"); //The record ID of the ACCOUNT object is being hard coded here params.add("related_to_id", "2101896782"); if(!params.equals("")) { Result addRecResult = Functions.addRecord("OPPORTUNITY_V2", params); Functions.debug("Opportunity Add Record:" + addRecResult); if(addRecResult.getCode() != 0) { String msg = "Error adding Opportunity"; Functions.debug(msg + ":\n" + addRecResult.getMessage()); // Log details Functions.throwError(msg + "."); // Error dialog } else { Functions.debug("Success on adding an Opportunity"); requestParams.add("opportunity_id",addRecResult.getID()); } } else { Functions.debug("Parameters object is null."); }
Send an Email Message with a Template
This example shows how to use the sendEmailUsingTemplate Java API call to send an email message with a template.
String attachmentIdList = ""; Functions.debug("Within contract object"); // To associate the sendEmail activity to a particular record //Retrieve the record ID from the requestParams object String recordID = requestParams.get("id"); //Retrieve the object ID from the funtionParams object String objectID = requestParams.get("object_id"); //Log the record ID to the log Functions.debug("Record ID of record from current object : " + recordID); //Make the API call by passing the appropriate parameters //For parameter explanations, check the JAVA API Result result = Functions.sendEmailUsingTemplate(objectID, recordID, "mia@financiocorp.com", "mia@financiocorp.com", "Testing sendEmail Using Template", "1869974057twn1678149854", "", ""); Functions.debug("Post sendEmail API call from current object: " + objectID); if(result.getCode() != 0) Functions.debug("Error in sending email!" + result.getMessage()); else Functions.debug("Success on sendEmail, check inbox : " + result.getMessage());
Add Note and Relate it to a Record
This function adds a note to a record in an object.
Parameters noteParams = Functions.getParametersInstance(); noteParams.add("description", "Very important to keep track of what is going on using Notes."); noteParams.add("title", "Add Notes!"); noteParams.add("reference_id", requestParams.get("record_id")); noteParams.add("reference_type", requestParams.get("object_id"); //Currently the sample is relating the note to an object which has 'name' as an identifier field, for example, the 'name' field in the Account object noteParams.add("reference_name", requestParams.get("name"); Result addNote = Functions.addRecord("NOTE", noteParams); Functions.debug("Result of adding a NOTE:" + addNote.getMessage()); Functions.debug("Code from adding a note:" + addNote.getCode());