覆盖MARK COMPLETE功能区按钮以进行自定义活动

时间:2016-09-27 17:41:18

标签: javascript dynamics-crm crm

我需要覆盖MARK COMPLETE功能区按钮以进行自定义活动。

需要填充一个字段才能完成活动。

如果是的话,我必须检查天气区域是否已填充并完成活动。

我计划编写JS函数来检查字段并完成活动,并使用RIBBON WORKBENCH将此功能应用于功能区按钮。

我有两个问题: - 有没有完成活动的JS命令? - 如果我将此功能添加到功能区按钮,它将覆盖默认'完成'功能,还是我需要以某种方式禁用此功能?

随时告诉我是否需要更详细地阐述这些问题。

2 个答案:

答案 0 :(得分:1)

我不会覆盖默认行为,您最终会得到一个开箱即用的按钮,这个按钮很可能会恢复到应用CU或CRM升级时的状态。

标记为完全触发OnSave,利用这一事实,为什么不让你OnSave寻找保存模式值? 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;
    }
};

答案 1 :(得分:0)

我根据您的回复制作了一些功能。希望这能完成这项工作。

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');
        }   

    }
};