Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plugins 字典中不存在给定的键_Plugins_Dynamics Crm_Dynamics Crm 4 - Fatal编程技术网

Plugins 字典中不存在给定的键

Plugins 字典中不存在给定的键,plugins,dynamics-crm,dynamics-crm-4,Plugins,Dynamics Crm,Dynamics Crm 4,我正在尝试为MS Dynamics CRM 4.0制作一个简单的插件,其中在订单更新时以SOAP消息的形式发送销售订单的数据。 奇怪的是,我每隔一次尝试保存/(执行插件)时就会出现这个错误。 因此,当我更新salesorder的(任何字段)并保存时,会出现以下错误: 当我在这之后立即再次保存时(在两次保存之间甚至不做任何更改),它会正确执行并提供我想要的所有数据。实际上每次都是一样的:第一次保存:错误,第二次保存:正确执行 你知道这是什么吗 这是我代码的第一部分;在本例中,它实际获取saleso

我正在尝试为MS Dynamics CRM 4.0制作一个简单的插件,其中在订单更新时以SOAP消息的形式发送销售订单的数据。 奇怪的是,我每隔一次尝试保存/(执行插件)时就会出现这个错误。 因此,当我更新salesorder的(任何字段)并保存时,会出现以下错误:

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

你知道这是什么吗

这是我代码的第一部分;在本例中,它实际获取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;
                }

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

我解决了这个问题,首先在plugin RegSitation工具中创建了salesorder的Post映像,然后使用Post映像中的值,而不是直接从salesorder提交的值。我这样做是因为在更新时,您只会得到实际更改的值。

我修复了这一问题,首先在插件注册工具中创建了salesorder的Post映像,然后使用Post映像中的值,而不是直接从salesorder提交的值。我这样做是因为在更新时,您只会得到实际更改的值。

我会使用Fiddler比较这两个请求-确保它们确实是完全相同的请求。我相信这个错误是访问动态实体的属性时的典型错误,而动态实体并不存在。但是salesorders可能会有一些CRM的额外行为,我不能对此发表评论(不知道这是您的插件还是CRM的内部)。如果fiddler跟踪没有帮助,我会附加调试器并逐步完成插件。另外,请随意发布一些插件代码。我会使用fiddler并比较两个请求-确保它们确实是完全相同的请求。我相信这个错误是访问动态实体的属性时的典型错误,而动态实体并不存在。但是salesorders可能会有一些CRM的额外行为,我不能对此发表评论(不知道这是您的插件还是CRM的内部)。如果fiddler跟踪没有帮助,我会附加调试器并逐步完成插件。另外,请随意发布一些插件代码。
   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;
                }