2

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

谢谢!

4

1 回答 1

2

两种方式。

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

前后实体图像

于 2013-07-24T15:07:49.987 回答