特定のワークフローを一発(本当は二発)で起動させる方法

SharePoint のワークフロー機能には三種類の起動オプションがあります。[手動][新規][変更]です。

このうち、[新規][変更]は勝手に動いてくれるからよいのですが(良くない場合もありますが)、ユーザが任意にワークフローを実行して欲しい場合、SharePoint のGUIはあまりに冗長です。

ワークフローを実行するまでに

1.アイテムの名前をポイント
2.▼をクリック
3.ワークフローを実行
4.実行するワークフローをクリック
5.[開始]をクリック

なんと5アクションを要します。
エンドユーザに説明しにくいことこの上ありません。

そこで、このワークフローをもっと簡単に起動させる小技をご紹介します。

まず、一度、そのワークフローを手動で開始する画面まで辿ります。
以下のような、やたらと長いURLになっている筈です。
http://server/site/doc/Workflows/WFname/WFname.aspx?
List=xxxxxxxxxxxxxxxxxxxxx&ID=99
&TemplateID=xxxxxxxxxxxxxxxxxxxxxxxxxxx
&Source=xxxxxxxxxxxxxxxxxxxxxxxx

しかし、実際には
http://server/site/doc/Workflows/WFname.aspx?List=xxxxxxxxxxxxxxxxxxxxx&ID=99まであれば、その後ろのURLは不要です。
このURLをどこかにメモしておいて下さい。

さて、ここまでで、察しの良い方は気付かれたのではないでしょうか?
結局、ID=n の値が変化するだけですので、ID値を取得して、URLリンクを用意してやれば良い訳です。

そのための列を作成します。
種類は「ハイパーリンクまたは画像/ハイパーリンク」です。

次に、このリスト/ライブラリに SharePointDesignerでワークフローを設定します。
起動オプションは新規時、あとは管理者が手動で動かす場合も想定します。

これはドキュメントライブラリの場合にのみ必要なステップです。

ライブラリの場合、ファイルがアップロードされた時点でワークフローが走ります。
しかし、ユーザにはプロパティ編集画面が表示されるため、先にワークフローがプロパティを更新してしまうと、変更の競合でエラーになってしまいます。
そこで、ワークフローを一定時間待機させ、ユーザが保存し終わるのを待ちます。
当然、待機時間は長い方が安全です。
リストの場合は保存→即反映なので、このステップは不要です。

動的文字列作成アクションを使って、URLを変数に出力します。

先ほど取得したURLを入力して、ID数値部分は [参照の追加] からID値を挿入します。
最後は【 , 文字列】半角スペース コロン 半角スペース 文字列 です。
この半角スペースが重要で、ハイパーリンク列に値を入れる場合、この書式でないとエラーになります。

次のステップで、列に変数を挿入します。

これで完成です。

この方法で、ドキュメントライブラリに登録された提案書に投票する仕組みを作ってみました。
[投票+1] をユーザがクリックすると、ワークフロー起動画面に遷移します。

[開始]がクリックされると、ワークフローが起動して、[役立]列の値を +1 します。

残念ながら二重投票が出来てしまうのですが…。
まあ部内で利用する分には、そんなに気にする必要も無いでしょうね。

覚えておくと、ちょっとした際に役立つと思います。


Author

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