2011-11-08 10 views
1

Sharepoint 2010でカスタムワークフロータスクが完了した後、現在このエラーが発生しています。「エラーが発生しました」というエラーが表示され、ワー​​クフローが正しく終了していない可能性があります。ワークフローをプログラムで終了する方法ほとんどのサイトで以下のコードを使用するように求められていましたが、コードを実装する方法はわかりません。Sharepoint 2010でワークフローを終了する方法

SPWorkflowCollection 
itemWorkflowCollection= listItem.Workflows; 
foreach (SPWorkflow itemWorkflow in itemWorkflowCollection) 
{ 
    //cycle workflows associated to the item (listItem) 
    if (!itemWorkflow.IsCompleted && itemWorkflow.InternalState == SPWorkflowState.Running) 
    { 
    foreach (SPWorkflowTask taskWorkflow in itemWorkflow.Tasks) 
    { 
     //cycle throught all tasks associated to the workflow 
     //if task is not completed 
     if (taskWorkflow["PercentComplete"].ToString() != “1″) 
     { 
     //you can cancel or change the running tasks before canceling the workflow 
     taskWorkflow["Status"] = “Canceled”; 
     taskWorkflow["PercentComplete"] = 1; 
     web.AllowUnsafeUpdates = true; 
     taskWorkflow.Update(); 
     } 
    } 
    SPWorkflowManager.CancelWorkflow(itemWorkflow); 
    } 
} 

答えて

0

あなたが表示されるコードは、を完了し、その内部状態がを実行しているですされていないワークフローをキャンセルします。この場合、関連するワークフロータスクはすべてキャンセルされ、最終的にワークフローはキャンセルされます。 ステータスが「エラーが発生しました」のワークフロー(WF)でこのコードを実行すると、何も起こりません。それはすでに終了しているようWFことを終了しようとする必要が -

は、「エラーが発生しました」WFは、エラーは、SharePointによってをキャンセルしたなかったことを意味します。

ここで行う必要があるのは、このWFがエラーを投げた理由を調べることです。まず、ワークフローのステータスページ(「電子メールを送信できませんでした」などのエラーの説明)を確認してから、Windowsイベントログでエラーがないかどうかチェックしてください(おそらく関連エラーはありません)。エラーの説明と詳細情報をULSログで探します。

+0

エラーのイベントログを確認する方法がわかりません –

+0

このエラーをデバッグする方法は本当にわかりません –

+0

エラーDwayneを指定していません。あなたは "エラーが発生しました"と言いました。私が前に言ったように、標準的なシェアポイントソースにエラーがないかチェックする必要があります。 –

関連する問題