覆盖自定义的 MARK COMPLETE 功能区按钮 activity
Override MARK COMPLETE ribbon button for custom activity
我需要覆盖我制作的自定义 activity 的 MARK COMPLETE 功能区按钮。
需要填写一个字段才能完成 activity。
如果是这样,我必须检查天气字段是否已填充并完成 activity。
我计划编写 JS 函数来检查字段并完成 activity,并使用 RIBBON WORKBENCH 将此函数应用于功能区按钮。
我有两个问题:
-有没有完成activity的JS命令?
- 如果我将此功能添加到功能区按钮,它会覆盖默认的 'complete' 功能,还是我需要以某种方式禁用此功能?
请随时告诉我是否需要详细说明这个问题。
我不会覆盖默认行为,您最终会得到一个开箱即用的按钮,该按钮很可能会恢复到应用 CU 或升级 CRM 时的状态。
标记为完成会触发 OnSave, leveraging this fact, why don't you on OnSave look for the save mode value? Save Mode 58 on activities are Save as Completed 并执行您的任务?
function onSave(executionContext) {
var eventArgs = executionContext.getEventArgs();
var saveMode = eventArgs.getSaveMode();
if (saveMode === 58) { //Mark as complete
//do something
//checks failed,don't want the user to mark as complete?
eventArgs.preventDefault();
return false;
}
};
我根据您的回复做了一些功能。希望这能完成工作。
function onSave(executionContext) {
var eventArgs = executionContext.getEventArgs();
var saveMode = eventArgs.getSaveMode();
if (saveMode === 58) {
var sendDate = Xrm.Page.getAttribute("ad_sampleproductssenton");
Xrm.Page.ui.clearFormNotification('sampleId');
if((sendDate=== null)||(sendDate==="undefined")){
Xrm.Page.ui.setFormNotification("You have to populate 'Sample Product Sent On' field!", "ERROR", 'sampleId');
eventArgs.preventDefault();
return false;
}else{
Xrm.Page.ui.clearFormNotification('sampleId');
}
}
};
我需要覆盖我制作的自定义 activity 的 MARK COMPLETE 功能区按钮。
需要填写一个字段才能完成 activity。
如果是这样,我必须检查天气字段是否已填充并完成 activity。
我计划编写 JS 函数来检查字段并完成 activity,并使用 RIBBON WORKBENCH 将此函数应用于功能区按钮。
我有两个问题: -有没有完成activity的JS命令? - 如果我将此功能添加到功能区按钮,它会覆盖默认的 'complete' 功能,还是我需要以某种方式禁用此功能?
请随时告诉我是否需要详细说明这个问题。
我不会覆盖默认行为,您最终会得到一个开箱即用的按钮,该按钮很可能会恢复到应用 CU 或升级 CRM 时的状态。
标记为完成会触发 OnSave, leveraging this fact, why don't you on OnSave look for the save mode value? Save Mode 58 on activities are Save as Completed 并执行您的任务?
function onSave(executionContext) {
var eventArgs = executionContext.getEventArgs();
var saveMode = eventArgs.getSaveMode();
if (saveMode === 58) { //Mark as complete
//do something
//checks failed,don't want the user to mark as complete?
eventArgs.preventDefault();
return false;
}
};
我根据您的回复做了一些功能。希望这能完成工作。
function onSave(executionContext) {
var eventArgs = executionContext.getEventArgs();
var saveMode = eventArgs.getSaveMode();
if (saveMode === 58) {
var sendDate = Xrm.Page.getAttribute("ad_sampleproductssenton");
Xrm.Page.ui.clearFormNotification('sampleId');
if((sendDate=== null)||(sendDate==="undefined")){
Xrm.Page.ui.setFormNotification("You have to populate 'Sample Product Sent On' field!", "ERROR", 'sampleId');
eventArgs.preventDefault();
return false;
}else{
Xrm.Page.ui.clearFormNotification('sampleId');
}
}
};