1

我正在尝试为 MS Dynamics CRM 4.0 制作一个简单的插件,其中在更新订单时在 SOAP 消息中发送销售订单的数据。奇怪的是,每次我尝试保存/(执行插件)时都会收到此错误。因此,当我更新销售订单的(任何字段)然后保存时,我收到错误:

The given key was not present in the dictionary.

当我在那之后立即再次保存(甚至在两次保存之间没有更改任何内容)时,它会正确执行并为我提供我想要的所有数据。真的是每次都一样:第一次保存:错误,第二次保存:正确执行。

任何想法这可能是什么?

这是我的代码的第一部分;在这种情况下,它实际上获得了 salesorder 的数据集:

   public class CompleteOrderPlugin : IPlugin


    {      


        public void Execute(IPluginExecutionContext context)
        {




                DynamicEntity entity = null;
                if (context.InputParameters.Properties.Contains(ParameterName.Target) &&
                        context.InputParameters.Properties[ParameterName.Target] is DynamicEntity)
                {

                    entity = (DynamicEntity)context.InputParameters[ParameterName.Target];
                    if (entity.Name != EntityName.salesorder.ToString()) { return; }

                }
                else
                {

                    return;
                }

剩下的就是我使用属性值来填充我自己的变量的地方。

4

1 回答 1

1

我通过首先在插件注册工具中制作销售订单的发布图像,然后使用发布图像中的值而不是直接来自销售订单的值来解决此问题。我这样做是因为在更新时您只能获得实际更改的值。

于 2009-12-08T19:43:44.260 回答