JavaScript CRM 表单的 serviceIsBusy 错误 OnSave?

JavaScript serviceIsBusy error OnSave of CRM form?

CRM 365 内部部署。

我有一个 Accounts.js,其中包含针对该示例简化的以下代码:

Xrm.Page.data.save().then(
    function() {
        Xrm.Utility.alertDialog("Record saved");
     },
    function(error) {
        Xrm.Utility.alertDialog(error.message);
    });

想法是表单保存,然后当异步保存完成时它会触发警告对话框说 'record saved'。

问题是错误函数正在被触发,但错误只是'serviceIsBusy'。

任何人都可以解释如何解决这个问题或问题是什么吗?

实际上Xrm.Page.data.save()是从实体表单调用相同的保存按钮动作,但是如果你从表单保存事件本身调用这个方法,那么它会在循环中结束。

由于您希望使用 .then() 处理程序来满足自定义需求,您可以阻止默认的 save 操作并像您一样调用手动 save

你可以理解形式this community thread

function onSave(context){
    context.getEventArgs().preventDefault();

    Xrm.Page.data.save().then(
      function() {
        Xrm.Utility.alertDialog("Record saved");
     },
      function(error) {
        Xrm.Utility.alertDialog(error.message);
    });
}

遗憾的是,官方方法不适用于 OnPremise CRM 365。我完全不知道为什么,甚至没有时间进行故障排除。

我在堆栈溢出的某处找到的解决方案是这种'old'方式:

   //trigger form save and wait 1 sec
    Xrm.Page.data.entity.save();
    setTimeout(function () {
        saveAccountOK(context);
    }, 3000);