Показать сообщение отдельно
Старый 21.02.2012, 15:49   #1  
KP0H is offline
KP0H
Участник
 
41 / 11 (1) +
Регистрация: 11.08.2011
Адрес: Тюмень
Update Task не приходит поле StateCode
Как правильно проверить что задача была закрыта.
Я сделал plugin на Update Task.
При срабатывании я проверяю статус задачи. Если статус есть - значит произошло событие смены статуса, проверяю на какой статус изменили. Если на 1 - значит задачу выполнили и я пускаю обработку события дальше.
Дело в том что это стабильно работало в нескольких плагинах, но в очередном перестало. Мне приходит сообщение что атрибута статус в плагин не пришло. Как это может быть если я завершаю задачу? Или как по другому можно отследить выполнение задачи?

X++:
// Obtain the target entity from the input parmameters.
                Entity task = (Entity)context.InputParameters["Target"];

                // Verify that the target entity represents an account.
                // If not, this plug-in was not registered correctly.
                if (task.LogicalName != "task")
                {
                    ToTrace("В контексте пришла не сущность \"Задача\".");
                    return;
                }

                if (!task.Contains("statecode"))
                {
                    ToTrace("Нет информации о статусе исполнения задачи. Выполение плагина завершено.");
                    return;
                }

                ToTrace("LN:{0};G:{1}", task.LogicalName, task.Id);

                ToTrace("Проверяем состояние задачи. {0}", (task["statecode"] as OptionSetValue).Value.ToString());
                if ((task["statecode"] as OptionSetValue).Value != 1)
                {
                    ToTrace("Состояние задачи не требует дальнейших действий. Выполнение плагина завершено.");
                    return;
                }