Sharepoint - попытка получить значение поля задачи в рабочий процесс - PullRequest
0 голосов
/ 16 апреля 2009

Я делаю рабочий процесс автомата sharepoint. Первое состояние имеет «создать задачу с типом контента» в качестве задачи. Тип содержимого имеет поле с именем «isApproved». Я не использую какие-либо формы инфопат. Я пытаюсь получить значение в этом поле, чтобы оценить, одобрен документ или нет. Независимо от того, что я делаю, я получаю «объект не установлен на экземпляр объекта».

Я пробовал все следующее:

createTaskWithContentType1_TaskProperties1.ExtendedProperties["isApproved"].ToString();
onTaskChanged1_AfterProperties1.ExtendedProperties["isApproved"].ToString(); 
onTaskChanged1.AfterProperties1.ExtendedProperties["isApproved"].ToString();

Что я делаю не так ???

Ответы [ 3 ]

1 голос
/ 16 апреля 2009

Однажды у меня были похожие проблемы, и мне пришлось получить идентификатор поля для доступа к полю. Вот как я это сделал:

Guid isApprovedFieldId = worflowProperties.TaskList.Fields["isApproved"].Id;  
string approvalStatus = (string)(onTaskChanged1_AfterProperties1.ExtendedProperties[isApprovedFieldId]);  
0 голосов
/ 19 ноября 2010

Аллен,

В дополнение к тому, что сказал Абс. Я также рекомендую вам проверить, что поле действительно существует, прежде чем получить его идентификатор Вот так ...

if (worflowProperties.TaskList.Fields["isApproved"] != null)
{
   Guid isApprovedFieldId = worflowProperties.TaskList.Fields["isApproved"].Id;  
   string approvalStatus = (string)(onTaskChanged1_AfterProperties1.ExtendedProperties[isApprovedFieldId]);
}
0 голосов
/ 02 ноября 2009

Я знаю, что этот ответ приходит слишком поздно, но я полагал, что многие люди приходят через эту публикацию ...

Поле «isApproved» является функцией формы задачи infopath, обычно используемой msft в примерах рабочих процессов. Это поле, безусловно, недоступно в базовых задачах с типом контента, которые на самом деле являются простыми формами задач SharePoint, совершенно не связанными с InfoPath и полем «isApproved». То, что вам нужно будет сделать, это захватить подпроцедуры задачи, запросить поле «статус» и определить, выполнил ли пользователь задачу. Если вы добавили в задачу еще один столбец с именем «Одобрено», запросите это поле с помощью метода taskItem ["fieldName"], а не [Расширенные свойства].

Надеюсь, это кому-нибудь поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...