2009-03-23 7 views
2

複数の状態を持つリストアイテムの基礎となるカスタムコンテンツタイプを作成したいとします。さまざまな状態が、このリストをインスタンス化するリストを決定します。ユーザーの操作に基づいて、状態、したがってリストの間を移動します。ワークフローまたはイベント受信者を使用する必要がありますか?

私はこれを実装するには、いくつかの選択肢があります。そのリストに関連する特定の機能を扱う各リストにワークフローを作成します

  1. を。必要に応じてアイテムを別のリストに移動し(アイテムを新しいリストにコピーし、元のアイテムを削除)、ワークフローを開始させます。
  2. 使用するカスタムコンテンツタイプでワークフローを作成し、さまざまなリスト間でアイテムを移動させます。コンテンツタイプのワークフローがサイトコレクション間でリストからリストに移動できるかどうかは不明です。
  3. カスタムコンテンツタイプのイベント受信者を使用して状態を管理します。ユーザーはアイテムに作用し、その状態を変更するので、イベント受信者は他のリストに自身のコピーを作成し、現在のリストで自分自身を削除します。私はこれがサイトコレクション全体で動作することを知っています。

どのような方法が最良ですか、そしてその理由は?絶対に動作しないものはありますか?私が見落とした方法はありますか?

答えて

3

私の意見では、これらのイベントレシーバーはリストではなくアイテムの後にあるので、使用してください。受信リストのコンテンツタイプを有効にする必要がありますが、このアプローチは、特定のコンテンツタイプの存在または不在に基づいてリストのワークフローを更新および削除するよりも簡単です。

ただし、アプローチを組み合わせてみませんか?コンテンツタイプのイベント受信者に、コンテンツタイプ固有のアクティビティを処理させ、リストに特定のアクティビティを処理させます。イベントレシーバは安価で柔軟性があります。 SharePointのワークフローとイベントレシーバーで が関連している(あなたは付属のワークフローでリストのイベントを見ればあなたがワークフローを開始するイベント・レシーバがあります。):一般的に言って

.B

3

ワークフローの利点は、(あなたはログイン・アクティビティを使用することを与えられた)ログを確認するために、ユーザのための可能性である

イベント・受信機の利点は、イベントの大多数です。ワークフローよりも柔軟性があります。

私はおそらくワークフローを選択しているので、ユーザーはアイテムが正しく処理されたかどうかを確認できます。

+0

イベントをログからのイベントレシーバーを防ぐ何? –

+0

イベント受信者がイベントをログに記録することはできませんが、ユーザーはこのログを見ることができません。 – user4531

+0

イベントをユーザーに表示できるリストに「ログ」されていない場合は、正しく表示されますか? –

1

私はワークフローの履歴をユーザーが何をするための監査証跡として必要とするので、各リストのアプローチに関連するワークフローを使用します。私はむしろコンテンツタイプのワークフローのアイデアが好きですが、これを振り返ってみると、これは私が行ったことに対するよりクリーンな解決策でした。

関連する問題