4

私はシェアポイントプログラミングの初心者です。次のコードがあります。

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

私は根本的に間違ったことをしていると思います。誰でも私を助けることができますか?

4

5 に答える 5

3

この問題に関する専門家のコメントは次のとおりです:http://geek.hubkey.com/2007/09/locked-workflow.html

また、タスクリストの列を編集した場合は、次のリンクが役立つ場合があります:http ://social.msdn.microsoft.com/Forums/en-US/sharepointworkflow/thread/8ec834b6-5408-4079-bdfb-b88d341b36bf/

お役に立てれば

于 2008-12-17T12:15:38.517 に答える
1

SPWeb オブジェクトで、AllowUnsafeUpdates = true を設定します。エラーはなくなります。完了したら、AllowUnsafeUpdates を false に設定することを忘れないでください。

于 2009-04-12T22:56:42.333 に答える
1

実際には、SPWorkflowTask.AlterTask(SPListItem task, Hashtable htData, bool fSynchronus) メソッドを使用して、タスクの拡張プロパティを変更できます。ここでの Hashtable には、拡張プロパティが含まれています。

于 2009-03-12T10:42:28.707 に答える
0

タスク アイテムの SPBuiltInFieldId.WorkflowVersion プロパティを 1 に設定する必要があります。 -現在、実行中のワークフローによってロックされており、編集できません.aspx

于 2011-03-28T13:50:15.883 に答える
-1

残念ながら、ワークフローの外部からワークフロー タスクを変更することはできません。ワークフローにタスクを変更するように指示する必要があります。それに対する最善のアプローチが何であるかは100%わかりませんが、それに対する答えにも本当に興味があります:)

于 2008-12-16T15:03:14.967 に答える