我有一个MS CRM 4表单,当某些字段被更改时,我需要将这些字段写入Excel工作表。
所以,我编辑了表单字段onchange事件来调用crmform.save(),它触发一个插件运行,将字段值写入excel表的命名范围(1个单元格)。
但是,我不知道哪个字段导致了保存。有没有办法获得这些信息? (并非表单上的所有字段都需要转到Excel表格)
如果我使用它:DynamicEntity target =(DynamicEntity)Context.InputParameters [ParameterName.Target]; 我可以查看具体的字段,但我无法知道哪些字段发生了变化。
有什么建议吗?
答案 0 :(得分:1)
根据我的经验,只有更改的字段在更新实体时才具有值(在DynamicEntity中)。所以假设您有一个具有FirstName和Lastname的实体。如果您只更改LastName并保存。 LastName将有一个值,但FirstName为null(除非你有som javascript代码强制FirstName被提交)。
答案 1 :(得分:0)
如果您的插件是在您的实体的更新事件前触发的,那么您应该可以将IPluginExecutionContext.PreEntityImages
与您从DynamicEntity
获取的Target
进行比较}。
或者,如果您的插件是在更新的事件后触发的,那么您应该可以将IPluginExecutionContext.PreEntityImages
与IPluginExecutionContext.PostEntityImages
进行比较。
答案 2 :(得分:0)
看起来你已经采用了不同的方式,但另一个建议是创建一个隐藏字段 - “FieldThatChanged”。在您的字段中更改javascript,将该字段设置为更改字段的名称,然后在插件中访问该字段。
答案 3 :(得分:0)
答案 4 :(得分:0)
我建议使用@Forgotten Semicolon建议的前后图像。此外,设置过滤属性,以便仅在更改您关注的字段时触发插件。