CRM Dynamics如何在浏览器窗口关闭时自动保存记录

时间:2016-03-07 14:56:58

标签: javascript dynamics-crm-2013

我有一个场景,我允许用户点击功能区按钮,然后我打开一个URL并将CRM表单数据作为参数传递给URL,在打开的URL网站中,我读取参数并对它们执行某些操作,现在我的问题是如何在用户关闭打开的网站URL时自动保存CRM记录,如何在CRM表单和打开的外部网站窗口之间建立链接。我知道JavaScript,但我可以使用parent.Xrm.Page.data.entity.save();在外部网站,这是可能的。请帮忙

1 个答案:

答案 0 :(得分:0)

不受支持的方法是使用Xrm.Internal.Dialog

用于调用外部窗口的功能区按钮脚本:

var encodeUrlParameter = "?data=" + encodeURIComponent('&param1=foo&param2=baz')

var src = "$webresource:new_your_webpage.html" + encodeUrlParameter;

var DialogOptions = new Xrm.DialogOptions();
DialogOptions.width = 540;
DialogOptions.height = 305;

Xrm.Internal.openDialog(src, DialogOptions, null, null, function (dialogResult) {
    if (dialogResult != null) {
        Xrm.Page.getAttribute("new_foo").setValue(dialogResult);
        Xrm.Page.data.entity.save();
    }
});

你的外部窗口代码来处理"好的,关闭"事件:

function Okay() {
    // set your return value
    Mscrm.Utilities.setReturnValue("foo");

    try {
        closeWindow(true); // Close the dialog box
    }
    catch (e) {
        Xrm.Utility.alertDialog(e.message);
    }
}

您的外部页面仍需要引用CRM全局上下文:

<script src="ClientGlobalContext.js.aspx" type="text/javascript"></script>