Print

Zoho CRM & Deluge: Adding 10 minutes to a CRM Date Time field

What?
I already have an article documenting Pushing a value to a datetime field in CRM but wanted another article here to remind me of the Deluge code I need to add/subtract time.

Why?
Just want to add 10 minutes to a date/time field in ZohoCRM and wanted a refresher for use in a client system. The usual error is something similar to the following:
{ "code": "INVALID_DATA", "details": { "expected_data_type": "datetime", "api_name": "Check_Date_Time" }, "message": "invalid data", "status": "error" }
How?
We're going to parse the created date and time parts as well as the timezone, add 10 minutes, re-assemble it in a format that CRM likes, and update the field:
copyraw
//
// parse date into yyyy-MM-dd (using subString - reliable)
v_LeadCreatedDate = r_LeadDetails.get("Created_Time").subString(0,4) + "-" + r_LeadDetails.get("Created_Time").subString(5,7) + "-" + r_LeadDetails.get("Created_Time").subString(8,10);
//
// parse date into yyyy-MM-dd (using toString - often works)
v_LeadCreatedDate = r_LeadDetails.get("Created_Time").toString("yyyy-MM-dd");
//
// parse time into HH:mm:ss
v_LeadCreatedTime = r_LeadDetails.get("Created_Time").getSuffix("T").getPrefix("+");
//
// combine into a sql format yyyy-MM-dd HH:mm:ss
v_LeadCreatedDateTime = v_LeadCreatedDate + " " + v_LeadCreatedTime;
//
// add 10 minutes to it and put in CRM format
v_LeadCreatedTime = v_LeadCreatedDateTime.toTime().addMinutes(10).toString("yyyy-MM-dd'T'HH:mm:ss");
//
// get the timezone in use
v_ThisTimeZone = r_LeadDetails.get("Created_Time").getSuffix("+");
//
// append the timezone
v_LeadTimeDelay = v_LeadCreatedTime + "+" + v_ThisTimeZone;
//
// update the record
m_UpdateLead = Map();
m_UpdateLead.put("Check_Date_Time", v_LeadTimeDelay);
r_UpdateLead = zoho.crm.updateRecord("Leads", p_LeadID, m_UpdateLead);
info r_UpdateLead;
  1.  // 
  2.  // parse date into yyyy-MM-dd (using subString - reliable) 
  3.  v_LeadCreatedDate = r_LeadDetails.get("Created_Time").subString(0,4) + "-" + r_LeadDetails.get("Created_Time").subString(5,7) + "-" + r_LeadDetails.get("Created_Time").subString(8,10)
  4.  // 
  5.  // parse date into yyyy-MM-dd (using toString - often works) 
  6.  v_LeadCreatedDate = r_LeadDetails.get("Created_Time").toString("yyyy-MM-dd")
  7.  // 
  8.  // parse time into HH:mm:ss 
  9.  v_LeadCreatedTime = r_LeadDetails.get("Created_Time").getSuffix("T").getPrefix("+")
  10.  // 
  11.  // combine into a sql format yyyy-MM-dd HH:mm:ss 
  12.  v_LeadCreatedDateTime = v_LeadCreatedDate + " " + v_LeadCreatedTime; 
  13.  // 
  14.  // add 10 minutes to it and put in CRM format 
  15.  v_LeadCreatedTime = v_LeadCreatedDateTime.toTime().addMinutes(10).toString("yyyy-MM-dd'T'HH:mm:ss")
  16.  // 
  17.  // get the timezone in use 
  18.  v_ThisTimeZone = r_LeadDetails.get("Created_Time").getSuffix("+")
  19.  // 
  20.  // append the timezone 
  21.  v_LeadTimeDelay = v_LeadCreatedTime + "+" + v_ThisTimeZone; 
  22.  // 
  23.  // update the record 
  24.  m_UpdateLead = Map()
  25.  m_UpdateLead.put("Check_Date_Time", v_LeadTimeDelay)
  26.  r_UpdateLead = zoho.crm.updateRecord("Leads", p_LeadID, m_UpdateLead)
  27.  info r_UpdateLead; 
Category: Zoho :: Article: 784