続・SharePoint 2007のワークフロー機能は「使える」のか?

このサイトの記事毎の PV を見てみると…まあ新しい記事の PV が順当に高いのですが、cl11-17(カテゴリ/ワークフロー機能)、それに「SharePoint 2007のワークフロー機能は「使える」のか?」に結構アクセスがあって驚きました。SharePoint のワークフロー機能は、かなり注目されているようです。

でもこれ、2年以上前の記事なんですよね。しかも SharePoint 2007 の検証段階で、ひと通り触った時点での感想をまとめただけという…。これでは、なんとなく申し訳ない気がします。

2年が経過し、ワークフローもそれなりに「使い倒し」ました。そこで、あらためて現時点における、私の考えをまとめてみたいと思います。

なお、前にも書きましたが、これはあくまでいちユーザである私個人の感想にすぎません。Microsoft を非難する意図も、また擁護する意図もありません。そこのところ、よろしくお願いします。


【続・SharePoint 2007のワークフロー機能は「使える」のか?】

まず最初に結論から書いてしまいますが、もし、日本企業的な「ワークフロー」、つまり稟議のような多段階・多経路の申請→承認業務を実現しようとされているようでしたら、断言しておきます。
SharePoint のワークフロー(以下 WF)に期待してはいけません。

SharePoint の WF 機能は、Windows Workflow Foundation というフレームワーク(.NET Framework の一部)をベースにしています。これを基盤に、SharePoint には 3通りの WF 実現手段があります。

1.標準の WF テンプレートを利用
2.SharePoint Designer による簡易開発
3.Visual Sutudio による開発

下に行くほど難易度が高いですが、実現できることも多くなります。

さて、まず 1.標準の WF テンプレート ですが…。
正直、これは使い物にならないと思います。

そもそもの仕様が悪いのか、それとも日本企業の業務にあわないのか。その辺りはいまいち判りませんが、とにかく使いにくい。しかも、完全にテンプレートとして固められているため、カスタマイズの余地がありません。我慢して使うか、使わないかの二択。私は使っていません。

次に 2.SharePoint Designer による簡易開発 です。
無償提供されるようになった SharePoint Designer を使えば、権限さえあれば、誰でもクライアント環境から、サーバにアクセスして、GUI ベースで WF を組むことができます。これはなかなか良くできた仕掛けなのですが、いくつか難点(というか制約)がありますので列挙してみます。

1)コンテンツの権限を設定できない
ワークフローですから、「起案後は修正不可」「閲覧できるのは関係者のみ」「却下後は再編集可能」「承認後全体に開示」など、ステータスに応じた動的なアクセス権変更は必須機能だと言えるでしょう。しかし、Designer による開発では、これが出来ません。※次バージョン SharePoint 2010 では出来るようになるようです。

2)簡単に無限ループする
WF が処理の中で情報を更新すると、それをトリガにして WF 自身が再起動→更新→また再起動… とループします。製品的には「仕様」なんでしょうが、私から見ると「バグ」にしか思えません。※SP2 で修正されました。

3)IF THEN はあるが RETURN がない
条件を設定して、その条件に合致した場合の処理を設定していくことが出来るのですが、「処理を前に戻る(RETURN)」ことが出来ません。このため、処理を繰り返し発生させたい場合。例えば、作業が完了するまでは毎日督促メールを送信する、ような機能の実現が難しいです。 ※上の仕様を無理矢理応用すると可能です。

4)処理中にユーザによる入力をさせられない
Designer による WF は、あくまで設定された条件に従って設定された処理を実行するだけのものですので、そこにユーザが介在する余地はありません。つまり、WF 実行後に、ダイアログを表示して確認を求めたり、承認者を選ばせたり、コメントを追記させたりすることが出来ません。

5)拾えるイベントが「新規作成時」「編集時」しかない
ユーザによる「保存」行為のタイミングでしか WF が動きません。「期限が切れたら」「一定時間更新がなかったら」など、エージェント的に自動実行させることができないのです。 ※その代わりに「待機」というアクションが用意されています。

6)横展開ができない
Designer で作成された WF は、特定のコンテンツに紐付いてしまうので(後から設定変更不可)設計を他で流用することが出来ません。毎回、同じような設計を一から起こすのは、ひどく面倒です。
ユーザが欲しがる処理なんてたいてい似通ってますからね。 ※ソースを直接編集すればコピーが可能です。

7)必ずユーザアカウントで動作する
WF は、実行したユーザのアカウントの権限で動作します。これを変更することはできません。もし WF がコンテンツを編集するものだった場合、ユーザに編集権限がなければエラーになります。WF の目的によっては、管理者アカウントで動作させたい時もあり、やや不便です。

最後に、3.Visual Sutudio による開発 です。
これは 100%コーディングですので、基本的にほぼなんでも出来ます。テンプレート化して、複数のコンテンツに適応することも可能です。ですが、完全にスクラッチからの開発ですので、WF 毎に、開発工数=費用がかかることは覚悟しなくてはいけません。

─と、以上のような理由から、私は SharePoint の標準機能「ワークフロー」で、日本的な「稟議」を実現するのはかなり無理があると考えます。SharePoint に過度に期待せず、WF に関しては、別に専用の製品を購入されることをお勧めします。今なら、SharePoint ネイティブなソリューションも色々とありますし。

しかし、では、SharePoint の「ワークフロー」は全く役に立たないのか?それも少し違います。

あくまで、「稟議」機能として捉えた場合、力不足なのであって、これを「ワークフロー」だとは考えず、「ワークフローという名前の SharePoint 拡張機能」だと割り切ってしまえば、かなり活用の幅があります。条件に応じてコンテンツを更新させたり、移動させたり。メールを送信させたり。特に、Infopath と非常に相性が良く、組み合わせれば、とても使い勝手の良い「ワークフローっぽい帳票ソリューション」になります。

通常、SharePoint の開発(カスタマイズ)は、その後のバージョンアップ時に大きなリスクとなりますが、「ワークフロー」による機能拡張なら、あくまで Windows Workflow Foundation というフレームワークの範疇ですので、このリスクは最小限で済みます。これは大きなポイントです。

Microsoft さんは SharePoint をあたかも「何でも出来る魔法の箱」的に宣伝する傾向がありますが(売る側としては当然かもしれませんけど)、製品としての限界を見極め、無理に全てを SharePoint に担わせようとしないことが、結局のところユーザとってベストな選択だと思います。

最後に、私が知っている範囲で、SharePoint 関連 WF ソリューションをご紹介して、〆させていただきます。
(2009年8月9日現在。他にあったら教えてください)

OpenCube Work Flow R-1(OpenCube DATA)
※Microsoft と NTT データの共同出資会社。SharePointネイティブ。
PetitWorkflow(JBCC)
※簡易WF。出来ることは限られるが、格安。小規模導入むけ。
eValue NS SharePoint Portal Server連携ソリューション(大塚商会)
イントラマート intra-mart(NTTデータ)
※2009年4月に SharePoint 連携を表明。でも OpenCube と競合しないの?
ShareVis(TFORT)
※日本ではまだ実績がないが米国では sps2003 の頃からかなり売れているらしい
SmartWorkflow スマートワークフロー(CSK Winテクノロジ)

2009/08/09 追記:
Microsoft のサイトに公認(?)ソリューション一覧ページがありました。
SharePoint Server 2007 対応 パートナー製品一覧
情報頂きましたくーぱー様、ありがとうございました。

SharePoint 2007のワークフロー機能は「使える」のか?


これまでのコメント

  1. くーぱー より:

    AGENT: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)
    こんにちは。いつも参考にさせていただいています。

    MSサイトに公認(?)WFソ\リューションがまとまっていますのでリンクを貼\っておきますね。
    http://www.microsoft.com/japan/sharepoint/Solutions/default.mspx#ttl08

    WF以外にもいろいろ掲載されています。
    私はどちらかというと管理者なので、アーカイビングはどこかで必要になると思っているのですが、どれもけっこうな金額なんだろうなぁ。。

  2. saruhiko より:

    AGENT: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
    おお!そう言えばそんなサイトがありましたね!
    ありがとう御座います。完全に失念してました。

    アーカイビングですか。…確かにどれも高そうな臭いがしますね(笑)
    実は私自身は、業務運用面での「管理者」に過ぎないため、ウチで利用しているバックアップソ\リューションの正式な名前を知らなかったりします(汗)
    今度、きちんと調べてみます…。

  3. Ma より:

    AGENT: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; Tablet PC 2.0; InfoPath.2)
    こんにちは、下記のサイトのサイトを参照していただければと思います。

    exDirectorという製品があります、その中ワークフローの機能があります。
    <http://www.microsoft.com/japan/office/2007/sharepoint/SharePointSolution/TepsysDetail.mspx&gt;

  4. saruhiko より:

    AGENT: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
    exDirectorは私もとても気になる製品です。
    が、ウチの環境がまだSQL2000で、この製品はそれに非対応なんです…。
    非常~に残念です。
    利用されている方からは「便利!」という話を聞いているのですが。

  5. ももちろ より:

    いまさらの書き込みですが失礼します。
    マニアックさんがご紹介されているうちのeValueワークフローですが・・
    こちらは小規模単位での利用に限っては悪くないかもしれません。
    開発手法は画面開発とワークフロー作成をして、両方をがっちゃんこするのですが、以下の欠点があります。
    ・画面にベタで情報を持つらしい
    →申請を起動したときにワークフローのステップの情報を画面に持つのか、その後ワークフロー側を変更しても、起票時のフローのまま進もうとします。。
    部署変更があったときとか大変です。。
    あと、画面側に分岐などの条件付けの値を設定します。それもテキストベースで、フィールド名やIDなど持たないです。なので間違ってスペースを入れたりしちゃったらもうそれで、分岐がききません。
    ・画面がもろ一番単純なHTMLでかいてまーすって感じです。
    →テーブルのBorderまるみえだし、一行には1パーツしか置けません。
    説明文の一部だけ強調で色を変えたいと思っても、全部が同じ色になるなど、ちょっと何かカッコよくしようとすると開発になります。
    ・フローの設定も大変
    →すべてがタブ形式の管理画面であり、いちいちタブを開かないと何を設定したかわからない。。時間がかなりかかります。

    などなど、今大変困っています。。

  6. 中村 和彦 より:

    なるほど、貴重な情報、ありがとうございます。
    「ワークフロー」は私達のイメージする範囲があまりに広範で多様なので、なかなか難しいですよね。自社に最適な製品を見つけられれば一番なのですが、そもそも、自社内の要件もそのときそのときで変化しますからね(苦笑)

login

Author

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