【发布时间】:2014-04-14 08:51:21
【问题描述】:
我是 CRM 2011 的新手。我在 Common.js 文件中创建了一个 javascript 函数。该函数将在多种形式的其他函数中调用。此函数还包含 FetchXML 查询。在每个表单中,我创建了一个包含对我的通用函数的调用的特定函数。我在表单的 OnSave 事件上调用此特定函数。问题是,当我在保存时调用特定函数时,在通用函数中,我将对刚刚保存的实体进行 FetchXML 查询,但 FetchXML 查询在保存发生之前返回值(我刚刚保存的实体它调用了具有 FetchXML 查询的函数,我在 FetchXML 查询的结果中看不到更改后的属性及其新值!)。我尝试了另一种解决方案,而不是从 OnSave Dialogue 调用特定函数,我使用了 Xrm.Page.data.entity.addOnSave(My specific function) 方法来确保在保存表单后调用它,但它仍然存在获取旧值。你能帮帮我吗?
谢谢, 瓦卢德
【问题讨论】:
-
什么用例要求您检索更新实体的先前值?正如下面的 Guide Preite 所述,您想要完成的任务并不容易获得,但有一些复杂的解决方法可以实现您的目标 - 它们需要大量编码和对 CRM 开发的透彻理解,才能阅读审计主目录,以便您可以检索最后的更新实体的变化。
-
如果您想要当前记录中的值,请不要使用 FetchXML - 在 onSave 事件期间直接从表单中获取它们。如果您想要来自相关记录的数据,那么无论是在保存之前还是之后运行都无关紧要,因为该数据来自数据库,与对当前记录所做的更改无关。
-
对不起,我想我没有很好地解释我的请求。我没有说我需要更新前的值,它恰恰相反。想想一个字段被更改的表单,当我保存时,我在 Common.js 中调用了一个函数,该函数 Fetch 许多实体包括更新的实体,但获取的结果不包含该字段的新值:(跨度>
标签: dynamics-crm-2011 dynamics-crm dynamics-crm-4 dynamics-crm-online