Dynamics CRM 2016在线 - 使用对话框后刷新记录

问题描述:

我在我的功能区上有一个自定义按钮,可以启动对话框。这是我将放在一起的解决方案资格认证解决方案的一部分。Dynamics CRM 2016在线 - 使用对话框后刷新记录

创建帐户/联系人/机会和给出的选择正常工作,以及将潜在客户的状态更改为合格。问题是,当用户完成对话并关闭它时,他们仍然在查看处于其原始状态的Lead。

如何强制窗体刷新以显示其新状态?

我已经看到一个Javascript解决方案在线(codeplex),Process.js - callDialog()这看起来很受欢迎,但它不想按照创建者对我的CRM版本所述的方式工作 - 总是会得到一个无效的URL错误消息&它会在表单加载时以及使用自定义按钮时触发。

有没有人遇到过这样的需求,你是如何解决它的?

谢谢

编辑:这里是我在我的丝带按钮目前使用的JS。我在哪里放置刷新呼叫,以及在关闭对话框时,我该如何调用正在使用的事件。 我试着在这段代码的底部添加一个刷新调用,但是它的调用在开始时打开对话框,这并没有多大用处,因为我希望看到的更改应用于整个对话框本身。 感谢

Develop1_RibbonCommands_runDialogForm = function(objectTypeCode, dialogId) { 
 
    var primaryEntityId = Xrm.Page.data.entity.getId(); 
 
    var rundialog = Mscrm.CrmUri.create('/cs/dialog/rundialog.aspx'); 
 
    rundialog.get_query()['DialogId'] = dialogId; 
 
    rundialog.get_query()['ObjectId'] = primaryEntityId; 
 
    rundialog.get_query()['EntityName'] = objectTypeCode; 
 
    var hostWindow = window; 
 
     if (typeof(openStdWin) == 'undefined') { 
 
      hostWindow = window.parent; // Support for Turbo-forms in CRM2015 Update 1 
 
     } 
 
     if (typeof(hostWindow.openStdWin) != 'undefined') { 
 
      hostWindow.openStdDlgWithCallback(rundialog, hostWindow.buildWinName(null), 615, 480, Xrm.Page.data.refresh(false)); 
 
     } 
 
} 
 
})();

+1

嗨alex,你可以写为功能区按钮的JavaScript。你只需要使用javascript运行对话框并使用下面的代码来刷新表单'Xrm.Utility.openEntityForm(Xrm.Page.data.entity.getEntityName(),Xrm.Page.data.entity.getId());' – Nachiket

退房的Xrm.Page.data (client-side reference),你要打电话Xrm.Page.data.refresh()

根据您启动对话框的方式,并假设您的对话框是托管在CRM中的Web资源,对话框可以恢复为其启动的窗体并调用刷新,或者可能使用回调。

EDIT(根据您发布的代码):如果函数openStdDlgWithCallback的第5个参数是当对话框关闭你要传递的功能像Xrm.Page.data.refresh或包裹你的电话的功能function(){Xrm.Page.data.refresh()}回调。目前您的代码正在执行该功能,这就是您马上看到刷新的原因。

+0

感谢马特,我已经将我的JS添加到了原始文章中 - 请帮助您解决您的建议。 – alex13p

+0

我根据你的代码更新了我的答案 –

+0

早上第一件事就是试试这个,并报告回来。谢谢! – alex13p

使用openStdDlgWithCallback您可以订阅对话框关闭后运行的回调函数。您可以在回调函数中使用Xrm.Page.data.refresh()

+0

这看起来确实会刷新,但它在对话框打开之前触发。如果我更改了一个字段,然后点击了自定义按钮,它会询问我是否想先保存更改 - 如果单击确定继续,则会刷新表单(恢复我的更改),然后打开对话框。我需要这个以相反的顺序发生! – alex13p

+0

用更新的代码更新您的文章。 – dynamicallyCRM

+0

确定完成了,同时还解决了如何正确添加代码到这里的帖子! – alex13p