快速创建记录后刷新字段值基础记录

时间:2016-12-16 12:55:28

标签: javascript crm dynamics-crm-2013

我有一个实体表单(实体A),它包含一个子网格,用于显示另一个实体(实体B)的链接记录,其中多个B记录链接到一个A记录。 通过单击子网格上的“+”图标,实体B的记录链接到实体A,为实体B填写快速创建表单并保存。保存之后,新创建的记录B显示在记录A:所有预期形式的子网格中。

在填写实体B的快速创建表单时,需要填写包含金额的字段。保存后,服务器端插件获取链接到实体A的特定记录的实体B的所有记录,计算其所有金额的总和并填写实体A的记录形式的字段中的总金额。这也有效如预期的那样,新计算的值存储在数据库中。问题是在表单A上显示总金额的字段不会刷新。它继续显示与加载表单时相同的数量,并且仅在整页刷新后更新。每当实体B的新记录被链接时,该值就会更新。 A上的值仅在刷新页面时显示为“新”值。

问题是用户连续连接了10条B的记录,而没有刷新。我们得到了自动刷新字段的请求,但是我不知道是否可以这样做,所以:是否可以在on节点上刷新(/重新渲染)实体A形式的字段实体B的事件?我认为这必须在javascript中完成,因为它是字段值的客户端表示,并且字段值已经正确地存储在数据库中。

谢谢!

3 个答案:

答案 0 :(得分:0)

如果有帮助。它可以在C#中完成。您可以使用此处描述的逻辑制作插件。

该插件将使用Plugin Registration Tool注册。您必须为实体B添加两个步骤。第一个将具有创建消息,第二个将具有更新。对于第二步,您只需选择amount字段更新,因此只有在更新该字段时才会触发更新。

也可以使用Rollup Fields完成。它们可以在点击时更新,但如果频繁到您,则每12小时也会自动更新。

我不知道如何使用JavaScript,但我是CRM的新手,所以其他人可能会出现这种类型的解决方案,我也很乐意阅读它。

答案 1 :(得分:0)

使用JavaScript,您可以订阅网格刷新事件。从那里你有几个选择。

  1. 在刷新事件中,您可以触发rest调用以从服务器检索值,然后更新表单上的值。我也会禁用该字段的提交,因为您不希望客户端更新它。
  2. 或 - 明确调用保存。您要么必须确保表单有效,要么更改所有必需字段以不再需要允许保存发生。 save事件将从数据库返回更新的值并自动更新表单。
  3. 如果你以前从未打过休息电话,第一个选项可能更难,但恕我直言,这是更好的选择。

答案 2 :(得分:0)

我能想到的最简单的解决方案是通过向实体A的表单OnLoad事件添加新的处理程序来轮询该值。

然后,代码将使用setTimeout不断从REST API中读取字段的值,比较字段的内容,如果它被更改,它将调用Xrm.Page.data.refresh以异步方式重新加载表单没有整页重新加载。

另一个(恕我直言更好)选项:升级到更新版本。从2015 Update 1开始,子网格也有OnLoad个事件:你只需要处理它,调用Xrm.Page.data.refresh而不必反复ping服务器。

相关问题