我正在使用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发出单独的查询,或者是否有办法从上下文中获取它?
谢谢!
答案 0 :(得分:2)
两种方式。