(Part 4) SharePoint ワークフローにおけるカスタムなワークフローステータスの設定

※ 以下、Tech ED T-405 セッションに関するフォローアップ記事 Part 4 です。 

  1. SharePoint Designer のカスタムアクティビティの開発で workflowProperties と同等の変数を使うには 
  2. SharePoint ワークフローで Modification Form (修正フォーム) を開発する際のいくつかのポイント
  3. Replicator を使いこなす (実行時にワークフローの流れを変える)
  4. SharePoint ワークフローにおけるカスタムなワークフローステータスの設定
  5. SharePoint ワークフロー : 上級者のための IListItemService の活用
  6. SharePoint の Workflow 用 Web Service を使ってシステム連携をおこなう

環境:
Microsoft Office SharePoint Server 2007
Visual Studio 2005 (及び Workflow 用の extensions)
Office SharePoint Server 2007 SDK

こんにちは。

こちらも前回同様、ECM Starter Kit のサンプルで充分見ることができますので、ポイントだけ記載します。

SharePoint ワークフローでカスタムにステータスを設定する方法についてです。

方法は簡単で、ワークフローマニフェスト (通常は workflow.xml) の MetaData のノードに、以下のように追加しておき、

<ExtendedStatusColumnValues>
  <StatusColumnValue>作成待ち</StatusColumnValue>
  <StatusColumnValue>調査待ち</StatusColumnValue>
  <StatusColumnValue>承認待ち</StatusColumnValue>
  <StatusColumnValue>設計承認完了</StatusColumnValue>
</ExtendedStatusColumnValues>

設定する際には、SharePoint のアクティビティの中の SetState を使います。(SetState は、WF にも同じ名前のアクティビティがありますので注意してください。WF のほうは、ステートマシンワークフローで遷移先の State を決めるためのもので、まったく用途の違うアクティビティです。また、この SharePoint 用の SetState は、「タスク」のステータスではなく「ワークフロー」のステータスなので注意をしてください。よって、Correlation Token もワークフローのトークンを設定してください。)

上記のようにステータス値を宣言すると、ステータスの ID が上記の並びの順番で割りふられ、SetState ではこのIDを使ってワークフローステータスを設定します。ID は予約された(既存で使用している) ID の次の番号から割り振られますので、SPWorkflowStatus.Max が開始番号となり、以降、1 ずつインクリメントして扱えば充分です。

しかし、一点だけポイントがあります。それは、セッション中にもご説明したように、このワークフローマニフェストで設定したワークフローステータスは、ワークフローを設定するリストごとに設定されるという点です。ですので、セッション中にご紹介したように、ワークフローのリプレースやバージョンアップをおこなう際、このワークフローステータスを変える必要があれば再度リストに設定しなおす必要があるため、ワークフローステータスに関しては設計の初期段階から入念にポリシーを検討した上で設定しておくことをおすすめします。

 

Advertisements

4 thoughts on “(Part 4) SharePoint ワークフローにおけるカスタムなワークフローステータスの設定

  1. こんにちは。 Tech ED 「T4-405 : Microsoft SharePoint Products and Technologies におけるワークフロー : 開発者向け詳述」 にご参加いただいた皆様、申し訳ございませんでした。もりだくさんすぎて、結局、予定していたデモの多くを残す結果となってしまいました。

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s