目标实体没有属性

时间:2013-07-24 14:39:02

标签: dynamics-crm-2011 crm

我正在使用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发出单独的查询,或者是否有办法从上下文中获取它?

谢谢!

1 个答案:

答案 0 :(得分:2)

两种方式。

  1. 插件注册工具中的图像,就像实体的快照一样,您可以从上下文中检索图像 - 与使用目标非常相似。在这种情况下,这可能是最好的方法。
  2. 使用检索Web服务调用,如果您需要从相关实体获取内容,但在从目标实体获取值时很少是最佳选择,这非常有用。
  3. Pre and Post Entity Images