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