我正在尝试为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;
}
其余的是我使用属性中的值来填充我自己的变量。
答案 0 :(得分:1)
我通过首先在插件注册工具中制作销售订单的后期图像然后使用Post Image中的值而不是直接来自salesorder的值来修复此问题。我这样做是因为在更新时你只得到实际改变的值。