ワークフローの「状態」は内部的には数値

SharePointのワークフローは便利な機能ですが、その信頼性は必ずしも高くありません。設計仕様の漏れが原因でエラーになるのは仕方ないのですが、経験上、結構「偶然」が原因で処理に失敗し「エラー」になります。

この「エラー」がすこぶる厄介です。

まず問題なのはユーザにエラーであることが伝わりにくいこと。
もちろんワークフロー列には「エラー」と明示されますが、かならずビューにこの列が表示されているとは限りません。むしろ無いことが多いのではないでしょうか。
SharePointのワークフロー名はサイトでユニークである必要があり、かつ紐付られたリストではなくサイト単位でまとめて管理されるという仕様上、どうしても長い名前を設定されがちで、すると列名が長くなるため、ビューで利用しにくいのです。

そして更に困るのは、一度エラーになると、その解除に管理権限が必要なこと。
エラーしたワークフローは管理者にしか解除することが出来ず、かつそれまで次のワークフローが実行されません。

そのため、とりあえず管理者は「エラーしたワークフローがあれば直ぐにそれを知る」ことが必要になります。残念ながらエラー通知はSharePointの標準機能にはありません(VisualStudioで開発すれば可能ですが)ので、次善の策を考えます。

通知機能が使えそうです。
通知はビューと連動させ「このビューのアイテムに変更がある場合」条件でメールを送信させることができます。ワークフローの状態(列)が「(空白)」「完了」「進行中」「取り消し」以外だけを表示するビューをさくせいすれば、エラーをリアルタイムで拾うことが…できそうなのですが、実際には、すこし工夫が必要です。

上のように、表示さている文言「完了」「エラー」等でフィルタしても、ビューには何も表示されません。
SharePointはワークフローの状態を、内部では「数値」で所持しており、そのため、フィルタも数値で指定する必要があります。

ワークフローの状態を示す数値は以下のとおりです。

Not Started : 0
Failed on Start(開始時に失敗): 1
In Progress(進行中): 2
Error Occurred(エラー発生): 3
Canceled(取り消し): 4
Completed(完了): 5
Failed on Start (retrying): 6
Error Occurred (retrying): 7
Canceled: 15
Approved: 16
Rejected: 17

実はこの数値、[操作]→[データシート]で表示することで、簡単に確認することが出来ます。



Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9