我有一个场景,我允许用户点击功能区按钮,然后我打开一个URL并将CRM表单数据作为参数传递给URL,在打开的URL网站中,我读取参数并对它们执行某些操作,现在我的问题是如何在用户关闭打开的网站URL时自动保存CRM记录,如何在CRM表单和打开的外部网站窗口之间建立链接。我知道JavaScript,但我可以使用parent.Xrm.Page.data.entity.save();在外部网站,这是可能的。请帮忙
答案 0 :(得分:0)
不受支持的方法是使用Xrm.Internal.Dialog
用于调用外部窗口的功能区按钮脚本:
var encodeUrlParameter = "?data=" + encodeURIComponent('¶m1=foo¶m2=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>