我正在使用 SDK 为 CRM 2011 编写插件。该插件旨在作为操作后插件同步执行。该插件将触发一个步骤,该步骤应该检索两个属性并根据它找到的内容执行一些逻辑。然而不幸的是,有问题的属性不在目标的 Attributes 集合中。(它们不是用户正在更新的字段)。即使它们没有被主动更新,我也需要能够读取这些属性。这是我的代码:
Dim context As IPluginExecutionContext = CType(serviceProvider.GetService(GetType(IPluginExecutionContext)), IPluginExecutionContext)
If context.InputParameters.Contains("Target") AndAlso TypeOf context.InputParameters("Target") Is Entity Then
Dim entity As Entity = CType(context.InputParameters("Target"), Entity)
If entity.LogicalName.Equals("contact") Then
Try
Dim attribute1 As Object = entity.Attributes("abc") ' not in Attributes collection
Dim attribute2 As Object = entity.Attributes("def") ' not in Attributes collection
Catch ex as Exception
...
所以我的问题是,从插件中检索实体属性的最佳方法是什么?我是否需要使用 OrginizationService 向 CRM 发出单独的查询,或者有没有办法从上下文中获取它?
谢谢!