Dynamics CRM 统一服务台弹出结果

Dynamics CRM Unified Service Desk Popup Result

我们使用的是 2.0 美元的 Dynamics CRM 2016,系统返回结果时遇到弹出窗口问题。

有几个地方我们在新windows中打开webresources(作为浮动面板),在新window中做一些工作然后需要与父window交互以设置一些字段。

这在使用 window.open 和 window.parent.Xrm... 设置值的浏览器中完美运行。但是在美元中,window.parent 变量为空,我们找不到任何其他方法让父 window 设置一个值。

如有任何帮助或示例,我们将不胜感激。

这可能是一个分为两部分的挑战。第一个挑战涉及确保您的 Web 资源实际上是在 USD 中加载的,在托管控件中而不是外部浏览器 windows。第二个挑战涉及所涉及的托管控件之间的通信,一旦一切都在 USD 内发生。

在 USD 中,如果 window.open 正在启动外部浏览器 windows,那么您的 Window 导航规则(或缺少导航规则)允许您的 Web 资源导航离开 USD。要在此处根据需要传递值,有必要使用 Window 导航规则来控制此类导航。定义一个位于 FloatingPanel 上的托管控件,并试验规则,直到您的 Web 资源按需要加载。

如果 Web 资源加载到托管控件中,则它只需要使用 USD。当需要 return 值时,检查是否 window.IsUSD,并引发自定义事件:

https://msdn.microsoft.com/en-us/library/dn864970.aspx#EventMoniker

这将允许您编写可使用事件键值对的操作调用,这些键值对可在事件期间使用 [[替换语法]] 访问。这些操作调用可以在您的 "parent" 控件上运行 XrmCommand(USD 只是将其视为其他一些非父托管浏览器),因此您的 return 值最终可以找到它们的方式。