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;
- //
- // 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;
Category: Zoho :: Article: 784



Add comment