admin 管理员组文章数量: 887006
ZohoCRM
关于Deluge
Zoho专有脚本语言可以处理开发人员可能要执行的任何任务。 凭借内置的包装程序和强大的执行引擎,它已发展成为最快,最灵活的脚本语言之一。(官方介绍自动翻译结果)
我这次要干什么
使用ZohoCRM不到3个月,想在里面配置一个字段验证规则,确保结束时间必须大于开始时间。
实现的步骤
找可行的方法
中国的服务商建议我用函数验证实现,他们服务是收费的,所以只能告诉我怎么实现,我要自己研究实现。
鼓捣脚本我最擅长了,那就开始对着文档敲吧,当然敲之前心里还是屡一下实现的逻辑,虽然这个并不复杂。
函数实现的逻辑
在保存和编辑表单时,验证开始时间和结束时间的关系。
- 验证结束时间必须大于开始时间。
- 验证开始时间必须小于结束时间。
将上述函数验证分别分配到结束时间和开始时间的验证逻辑即可。
实现的代码
Zoho deluge
entityMap = crmAPIRequest.toMap().get("record");
// field17,field16 的确认参考下图
endTime = entityMap.get("field17").toTime("yyyy-MM-dd'T'HH:mm:ss");
startTime = entityMap.get("field16").toTime("yyyy-MM-dd'T'HH:mm:ss");
response = Map();
if(endTime > startTime)
{response.put('status','success');
}
else
{response.put('status','failure');response.put('message','服务开始时间不能晚于结束时间.');
}
return response;
确认字段的名称需要到开发者空间的API里找。
我踩过的坑
本身这件事情可以自己搞定的,结果花费了很多时间去找zoho的官方客服,官方客户直接在线联系即可,非常方便,服务及时,热情,有问必答,帮写代码,文末附上他们提供的函数代码。
为什么花了这么多时间呢?代码就这么简单。
一开始我的代码是这么写的,没加 “yyyy-MM-dd’T’HH:mm:ss”,使用说明上也没说要加。
结果获取的时间只有日期,时间都是00:00:00
endTime = entityMap.get("field17").toDateTime();
startTime = entityMap.get("field16").toDateTime();
官方的客服是很热情,但是一直没有看出来这个问题,给了我一个逻辑更复杂的验证代码,让我测试,直到第二次才解决,远程的时候也是必须使用zoho join,那叫一个卡,经常说不能控制。
TeamViewer已经做得那么好了,不能兼容一下吗?
Zoho 官方给的函数验证代码
entityMap = crmAPIRequest.toMap().get("record");
d2 = entityMap.get("field16").toDateTime();
d1 = entityMap.get("field6").toDateTime();
response = Map();
diff = d1.daysBetween(d2);
if(diff > 0)
{response.put('status','success');
}
else if(diff == 0)
{hdiff = d1.hoursbetween(d2);if(hdiff == 0){m1 = d1.getMinutes();m2 = d2.getMinutes();h1 = d1.getHour();h2 = d2.getHour();if(h1 < h2){response.put('status','success');}else if(h1 == h2){m = m1 - m2;if(m >= 0){response.put('status','failure');response.put('message','end Time should earlier then start time.');}}}else{response.put('status','success');}
}
else if(diff < 0)
{response.put('status','failure');response.put('message','end Time should earlier then start time.');
}
return response;
我的提议
把文档写清楚,你好,我好,大家好,自助解决问题,节省多少时间。
本着造福后人的原则,我就给zoho 提了些意见,希望在使用说明上加强一下,但是人家的回复是这是因为CRM的时间是ISO时间,必须指定格式,没接下茬儿。
那我就写出来分享一下吧,希望能节省你一点儿时间。
官方的答复如下,供您参考:
Please find the below clarifications from the deluge team
toTime() and toTime(yyyy-MM-dd’T’HH:mm:ss); and toDateTime(yyyy-MM-dd’T’HH:mm:ss); -->These are same, but will differ for the from format.On conversion of the format, ie From which format to which format , it will be differ.
zoho.currenttime.toTime();
from CRM field, we will display fields in ISO format so have to use the below format.
endTime = entityMap.get(“field16”).toDateTime(yyyy-MM-dd’T’HH:mm:ss);
本文标签: ZohoCRM
版权声明:本文标题:ZohoCRM 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1732353308h1533714.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论