SharePoint アドイン製品一覧
SharePoint 2010 開発のステップ・バイ・ステップ
Windows Azure 入門
Windows Azure How-To 集
WCF / WF 入門
環境:Office SharePoint Server (MOSS) 2007SharePoint Designer 2007Office Word 2007
設定だけで(開発をせずに) ワークフローから Office ドキュメン���の中身を更新する方法
こんにちは。
訳あって (Office 2007 のテクノロジーをまとめておきたいと考えています、、、)、かなり昔記載した こちらの投稿 の中身をすべて手順を追って記載しておきたいと思います。(そんなこと今更書かなくてもわかってるという方は、読み飛ばしてください)今回は、その投稿で説明を割愛していた SharePoint Designer によるワークフロー作成から記載します。(前回、ドキュメント情報パネルと関連付いた Word ドキュメントのドキュメントライブラリを作成する手順で記載しています、、、)
ここでは、こちら のブログに添付した「Contoso 人事データベースからマネージャを取得する」というカスタムアクションを使用していますので、このブログからプロジェクト (添付ファイル) をダウンロードし readme.txt に従ってインストールをおこなっておいてください。(開発者でない方もインストールをおこなえるように手順を記載しました。このアクティビティを使わない方は、下記で「Contoso 人事データベースからマネージャを取得する」を使っている箇所は飛ばして進んでください。)なお、この「Contoso 人事データベースからマネージャを取得する」というカスタムアクションは、内部では、実はマネージャの取得はおこなっておらず、そのまま入力されたユーザのアカウントを返すように実装されています(実際の開発ではコードやアクティビティ名などを変更して使用してください)。
今回は、ドキュメントを作成したユーザのマネージャを上記のアクティビティで取得して、このマネージャにタスクを割り当てて、タスクで「承認」がおこなわれたら前回作成したドキュメントの [承認者] 欄に承認者の名前を設定するようにワークフローを作成してみます。
以上で完了しました。
では動かしてみましょう。SharePoint で、前回作成したドキュメントライブラリにドキュメントを作成し ([承認者] 欄は空にしておきましょう)、このワークフローをスタートしてみましょう (開始時の自動実行を設定した方は登録と同時に実行されます)。すると、まずタスクが作成されます。
そしてそのタスクを開いて、[承認フラグ] をチェックしてタスクを完了すると、
ワークフローが完了し、ドキュメントの中の [承認者] 欄にマネージャの名前が設定されます。
タスク割り当てのフォームを (ヘッダーを付けるなどして) もっとかっこよくしたい場合には、SharePoint Designer を使って、作成された .aspx のフォームを編集することができます。
なお、ここでご紹介したようなタスク割り当てを伴うワークフローには注意するべき点があります。開発者の方はご存じかと思いますが、上記のようにカスタムなタスクフォームを作成した場合、内部ではカスタムのコンテンツタイプや列というものがサイトに生成され、これがタスクリストに割り当てられます。試しに [タスク] フォルダを表示し、[設定] - [リストの設定] を見ると、下記のようにワークフローの中で設定したコンテンツタイプと列が表示されます。
そして、SharePoint Designer でワークフローの削除をおこなっても、これらの設定は (サイトにおこなわれた設定であるため) 残り続けます。
つまり、SharePoint Designer でワークフローの削除や、作成を中止した場合には、上記のタスクリストの中に作成されたカスタムの 「コンテンツタイプ」、「列」、さらには、サイトに設定された同じカスタムの 「コンテンツタイプ」、「列」 を確実に削除するようにしてください (そうしないと、ゴミとなって残り続けることでしょう)。また、ワークフローを複数作成する場合にも上記のように「承認フラグ」のような一般的な名前を毎回使用していると、似た名前の列がどんどん増えていくことになります。ですので、収集するデータの命名は、他のワークフローとぶつからないような命名をおこなっておきましょう。
PingBack from http://www.basketballs-sports.info/basketball-chat/?p=1152