【问题标题】:How to get Finish button event in BPF in CRM 365?如何在 CRM 365 中的 BPF 中获取完成按钮事件?
【发布时间】:2020-07-22 15:35:23
【问题描述】:

我在 CRM 365 中创建了一个 BPF。在第一阶段选择一个值后,另一个阶段被打开,这将是最后一个阶段。正如您在屏幕截图中看到的,我需要在单击“完成”按钮时调用 javascript 函数。如果我收到该事件,我将检查 Create Follow up 字段的值。如果那不是,那么我以后会做一些逻辑。

现在我的问题是:如何在那个阶段获取完成按钮事件,以便它转到 javascript 代码?

请指点一下?

【问题讨论】:

  • 在提出这个问题之前,我已经尝试过您的回答。我已经完成了您所说的确切步骤,但我无法在那个 addOnProcessStatusChange 中获得触发事件。在检查 F12 时,我看到当我单击 Finish 按钮时,调试器并没有转到该函数。
  • 不幸的是,我们没有完成按钮的直接事件。所以更好地解决代码为什么它不工作。
  • 有谁可以帮我解决这个问题?

标签: javascript dynamics-crm dynamics-crm-online dynamics-365


【解决方案1】:

这是一个实体表单的 JavaScript Web 资源的工作示例,

var PUBLISHER = PUBLISHER || {};

PUBLISHER.pub_entityname = PUBLISHER.pub_entityname || (function () {

    return {

        onFormLoad: function (executionContext) {
            var formContext = executionContext.getFormContext();
            // Declare BPF OnProcessStatusChange event handler and pass in
            // your own function. Execution context is passed in automatically.
            formContext.data.process.addOnProcessStatusChange(BpfStatusChange);
        }

    };

    function BpfStatusChange(executionContext) {
        var formContext = executionContext.getFormContext();
        var bpfStatus = formContext.data.process.getStatus();

        if (bpfStatus === "finished") {
            // Do something.
        } else if (bpfStatus === "aborted") {
            // Do something.
        } else if (bpfStatus === "active") {
            // Do something.
        }
    }

})();

需要在表单的“onLoad”事件中手动创建“OnProcessStatusChange”事件处理程序。提供三种 BPF 状态,当用户单击“完成”或“下一步”按钮时,如果业务流程的状态发生变化,这将做出反应。

MS Docs

【讨论】:

    猜你喜欢
    • 2021-06-10
    • 2019-04-17
    • 2012-01-03
    • 2016-11-28
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    相关资源
    最近更新 更多