给定的密​​钥不在字典中

时间:2009-12-07 12:55:23

标签: plugins dynamics-crm dynamics-crm-4

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

The given key was not present in the dictionary.

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

任何想法可能是什么?

这是我的代码的第一部分;在这种情况下,它实际获取销售订单的数据集:

   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;
                }

其余的是我使用属性中的值来填充我自己的变量。

1 个答案:

答案 0 :(得分:1)

我通过首先在插件注册工具中制作销售订单的后期图像然后使用Post Image中的值而不是直接来自salesorder的值来修复此问题。我这样做是因为在更新时你只得到实际改变的值。