一時停止したワークフローは「更新」フラグを失う

遅れてきたルーキー、といいますか…。
なんというか、今更!な発見をしてしまいました。

SP2 未適用の環境の場合、ワークフローのループ仕様(自分自身の値を更新すると「更新」がトリガされてワークフローが再起動してしまう)に悩まされます。
そのため、ループすることを前提で設計を組む必要があった訳ですが。
他の回避方法、つまりループさせない方法を偶然見つけてしまいました。

まず Designer でワークフローを作成します。
起動オプションは「新規」「変更」です。

第一ステップで、ループを想定し回避するロジックを組みます。

第二ステップで、更新日時の値を、有効期限列に挿入させます。

自分自身をアップデートしてしまいましたので、この時点で「更新」フラグが立ちます。
このまま、このリストでアイテムを作成すると、保存→新規フラグでワークフローが起動→自分の値を更新→更新フラグでワークフローが起動→第一ステップの判定で終了、という流れで、ワークフローが都合、二回起動する筈です。

しかし、ここで第三ステップを加えます。
「1分間停止」です。

さて、このワークフローを適用して、リストに新規アイテムを作成すると…。

何故かループしていません
一度起動しただけで終了しています。

試しに、第三ステップを削除してみます。

新規アイテムを追加─

ワークフローが四回走りました(あれあれ?)
一応、最後は”AvoidRoop”を記録して停止していますので、ループ回避ロジックそのものはきちんと動作しているようです。

つまり、総合するとこう言うことになります。
ワークフローで自分自身の値を更新すると、更新フラグが立つ。
しかし、一度停止することで、そのフラグは消去される

なんということでしょう…。
この仕様に1年前に気付けていれば、あんなに苦労せずに済んだのに…orz。

ところで、とある方から「SP2を適用したけど、ワークフローが多重起動する現象が修正されない」なんてお話を聞いたのですが、本当なんでしょうか?

SP2 の重大更新 ワークフローのサイクル起動を抑制
ワークフローをデザインする際の要注意点(小ネタ)


Author

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