Как изменить статус задачи рабочего процесса sharepoint? - PullRequest
4 голосов
/ 16 декабря 2008

Я новичок в программировании на sharepoint. У меня есть следующий код:

SPWorkflowTask  task = some_getter();
task["Status"] = "Canceled";    
task.Update();

и я получаю SPException:

Microsoft.SharePoint.SPException: "This task is currently locked by a running workflow and cannot be edited."
at Microsoft.SharePoint.SPListItem.PrepareItemForUpdate(Guid newGuidOnAdd, Boolean bMigration, Boolean& bAdd, Boolean& bPublish, Object& objAttachmentNames, Object& objAttachmentContents, Int32& parentFolderId)
at Microsoft.SharePoint.SPListItem.UpdateInternal(Boolean bSystem, Boolean bPreserveItemVersion, Guid newGuidOnAdd, Boolean bMigration, Boolean bPublish, Boolean bNoVersion, Boolean bCheckOut, Boolean bCheckin, Boolean suppressAfterEvents)
at Microsoft.SharePoint.SPListItem.Update()
at mycode

Мне кажется, я делаю что-то в корне неправильно. Кто-нибудь может мне помочь?

Ответы [ 5 ]

3 голосов
/ 17 декабря 2008

Вот экспертный комментарий по этой проблеме: http://geek.hubkey.com/2007/09/locked-workflow.html

И, если вы редактировали столбцы в списке задач, эта ссылка может помочь: http://social.msdn.microsoft.com/Forums/en-US/sharepointworkflow/thread/8ec834b6-5408-4079-bdfb-b88d341b36bf/

надеюсь, это поможет

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

В вашем объекте SPWeb установите AllowUnsafeUpdates = true. Ошибка исчезнет. Не забудьте установить значение AllowUnsafeUpdates в false, когда вы закончите.

1 голос
/ 12 марта 2009

Фактически вы можете изменить расширенные свойства задачи, используя метод SPWorkflowTask.AlterTask (задача SPListItem, Hashtable htData, bool fSynchronus). Hashtable здесь содержит расширенные свойства.

0 голосов
/ 28 марта 2011

Необходимо установить для свойства SPBuiltInFieldId.WorkflowVersion элемента задачи значение 1 Я написал это здесь: http://blogs.technet.com/b/meamcs/archive/2011/03/26/workflow-error-this-task-is-currently-locked-by-a-running-workflow-and-cannot-be-edited.aspx

0 голосов
/ 16 декабря 2008

К сожалению, вы не можете изменить Задачу рабочего процесса извне рабочего процесса. Вы как-то должны указать рабочий процесс, чтобы изменить задачу. Я не уверен на 100%, каков наилучший подход к этому, и мне действительно интересны ответы и на этот вопрос :)

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