MS CRM - 获取导致表单保存的字段

时间:2010-04-05 13:54:06

标签: dynamics-crm dynamics-crm-4

我有一个MS CRM 4表单,当某些字段被更改时,我需要将这些字段写入Excel工作表。

所以,我编辑了表单字段onchange事件来调用crmform.save(),它触发一个插件运行,将字段值写入excel表的命名范围(1个单元格)。

但是,我不知道哪个字段导致了保存。有没有办法获得这些信息? (并非表单上的所有字段都需要转到Excel表格)

如果我使用它:DynamicEntity target =(DynamicEntity)Context.InputParameters [ParameterName.Target]; 我可以查看具体的字段,但我无法知道哪些字段发生了变化。

有什么建议吗?

5 个答案:

答案 0 :(得分:1)

根据我的经验,只有更改的字段在更新实体时才具有值(在DynamicEntity中)。所以假设您有一个具有FirstName和Lastname的实体。如果您只更改LastName并保存。 LastName将有一个值,但FirstName为null(除非你有som javascript代码强制FirstName被提交)。

答案 1 :(得分:0)

如果您的插件是在您的实体的更新事件前触发的,那么您应该可以将IPluginExecutionContext.PreEntityImages与您从DynamicEntity获取的Target进行比较}。

或者,如果您的插件是在更新的事件后触发的,那么您应该可以将IPluginExecutionContext.PreEntityImagesIPluginExecutionContext.PostEntityImages进行比较。

答案 2 :(得分:0)

看起来你已经采用了不同的方式,但另一个建议是创建一个隐藏字段 - “FieldThatChanged”。在您的字段中更改javascript,将该字段设置为更改字段的名称,然后在插件中访问该字段。

答案 3 :(得分:0)

是的,完全改变了我接近这个的方式。我在iframe中使用jquery传递所有确切的字段(名称/值对)我想要一个在ISV文件夹中运行的ASPX文件的方法,该文件采取必要的操作。谢谢你的建议!

答案 4 :(得分:0)

我建议使用@Forgotten Semicolon建议的前后图像。此外,设置过滤属性,以便仅在更改您关注的字段时触发插件。