Данный ключ отсутствует в словаре - PullRequest
1 голос
/ 07 декабря 2009

Я пытаюсь создать простой плагин для 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 Ответ

1 голос
/ 08 декабря 2009

Я исправил это, сначала сделав Пост-образ продавца в инструменте регистрации плагинов, а затем используя значения в Пост-образе вместо тех, которые поступают напрямую от продавца. Это я сделал, потому что при обновлении вы получаете только те значения, которые действительно изменились.

...