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