如何通过 CRM SDK 在实体更改时配置 view/form/dashboard 的自动更新

How to configure auto update of view/form/dashboard on entity change via CRM SDK

目前我们有以下情况: Account 实体包含 online_status 字段,该字段可以具有 offlineonline 值。我们有一个实体视图,它只显示在线帐户。

案例 1:

案例2:

我使用SDK更改在线状态:

using (var proxy = CreateCrmProxy(broker))
{
    proxy.EnableProxyTypes();
    var crmAccount = proxy.Retrieve(Account.EntityLogicalName, aggregateId, new ColumnSet()) as Account; 

    crmAccount.OnlineStatus = //new online status;
    proxy.Update(crmAccount);
}

CreateCrmProxy 方法创建 OrganizationServiceProxy class.

的实例

在这种情况下,online_status 字段更新成功,但视图中的网格仍处于旧状态,我需要按“刷新”按钮才能看到有效信息。

是否可以使用案例 2 中的技术触发视图自动更新?

提前致谢!

不,您不能使用插件来做到这一点,因为插件纯粹是后端,而子网格是前端 UI 构造。在进行更新后,您可能会通过调用 RetrieveMultiple 来做一些骇人听闻的事情,但是没有任何方法可以强制视图自行更新。

根据您的情况,更好的选择是通过 javascript 触发更改(REST 或 SOAP 调用就足够了),这样一旦更新完成,您就可以调用 control.refresh.它在仪表板上会变得有点棘手,因为您没有用于加载 javascript 的表单,并且视图将位于不同的窗格中,但是您可以使用 Web 资源做一些事情并使用父上下文.