我正在定制我们的CRM解决方案。由于时区不同,有时案例或任务中的截止日期不一致,因为时间默认为午夜12点。因此,对于不同的时区,截止日期可能是一天或更早。
为了解决这个问题,我们将截止日期字段的默认时间(逻辑名称=“followupby”)设置为晚上7点。我们正在使用Java脚本函数为截止日期字段创建一个OnChange事件,如下所示。在“处理程序属性”对话框中设置库和函数名称,我选中“将执行上下文作为第一个参数传递”选项。因此,在我的函数下面,它接收'context'参数:
setCaseDueDate: function (context) {
var oField = context.getEventSource().getValue();
var sTmp = oField;
var hours =19;
var minutes = 0;
var seconds = 0;
if (typeof (oField) != "undefined" && oField != null) {
var newTime = new Date(sTmp.getFullYear(), sTmp.getMonth(), sTmp.getDate(), hours, minutes, seconds);
context.getEventSource().setValue(newTime);
}
},
但是我不断收到一条错误消息“此字段的自定义事件出错。错误'setCaseDueDate'未定义。”
我的函数中的某些值是未定义的,还是可能没有正确获取'context'参数?
谢谢,非常感谢您的帮助。
的 的 ** * 更新的 * < / EM> ** * ** * ** *
没关系......我把我的函数放在现有的Javascript函数集合中,然后我决定投入一个单独的新的webresource,它现在正在工作......很奇怪但是很有效。
感谢。
答案 0 :(得分:0)
您定义JavaScript函数的代码是错误的,请尝试使用
function setCaseDueDate(context) {
// rest of the code
}
并且要更改日期,不需要上下文,例如:
function setCaseDueDate() {
var fieldName = "followupby";
var sTmp = Xrm.Page.getAttribute(fieldName).getValue();
if (currentDate != null) {
var newTime = new Date(sTmp.getFullYear(), sTmp.getMonth(), sTmp.getDate(), 19, 0, 0);
Xrm.Page.getAttribute(fieldName).setValue(newTime);
}
}