2011-06-28 1 views
0

私の現在のプロジェクトでは、カスタム作業項目が特定の状態に変わったときにデータベースにレコードを追加する必要があります。このために、WorkItemChangedイベントで起動するTFSプラグインを構築することができます。しかし、当社のポリシーでは、これらのプラグインはすべてのプロジェクト収集で各作業項目ごとに処理されるため、作成することはできません。このアクションは、いくつかのチームプロジェクトでのみ必要です。WorkItemChangedイベントクライアント側

私の質問:代わりにこのイベントでアクションを発生させるクライアントサイドプラグイン(おそらくVSプラグイン)を作成することは可能ですか?または、このイベントのリスナーを別の種類のリスナーを作成するために、どこかにあるのですか?

事前に感謝の意を表します。

答えて

0

最後に、私はWorkItemの編集フォームのカスタムコントロールを作成しました。このコントロール内では、データベースレコードを作成するために必要なすべてのロジックを実装できます。

このように、コンボボックスの状態をオンホールド状態に設定する代わりに、まったく同じことをするボタンがあり、私のカスタムコーディングが実行され、データベースにレコードが追加されます。

1

アラートをTFSでドライブする代わりに、ポーリングベースのアラートシステムを実装できます。

変更したい仕事項目を選択し、変更日付列でソートした簡単な作業項目クエリを作成します。次に、この作業項目のクエリを実行し、結果に基づいて通知を行い、投票の間に高い水準点を維持するために、TFS SDKを使用した簡単なプログラムを作成します。

このポーリングベースのアプローチには、企業ポリシーに関係なくSOAPリスナーを設定する方法に比べて利点があります。 TFSが使用するSOAPベースのアラートシステムは、TFSインフラストラクチャのコンポーネント間の通信用に開発されました。マシンがダウンしたり、SOAPサービスがクラッシュしたり、IPアドレスが変更されたりすると、イベントログにTFSが表示されることがあります。同様のアラートシステムのポーリングベースのモデルに切り替える前に、私はTFSサーバーのイベントログを書きました。

+0

ありがとうございました。これは確かに多くのシナリオではオプションになります。しかし、データベースで処理しなければならないレコードは、サービスレベル契約に使用されるOnhold開始/終了時間を作成します。だからそれはややリアルタイムでなければならない。 – PietjePoeier

+0

二重の投稿、明らかに投稿を編集するためのタイムラインがあります。 このプログラムやサービスを毎分実行できるとしたら、コレクション内のすべての作業項目を照会し、その特定の状態に設定されているかどうか調べ、新しいDbレコードを作成します。これが間違っていたら私を修正してください。 質問:状態がリセットされたり、別の状態に設定されたりすると、処理された状態のリストを照会することはできますか? – PietjePoeier

+0

私は参照してください。だからあなたは基本的に "保留中"の旗を持っていて、あなたはその状態にあるアイテムを照会しています...?この場合、状態の変更を見逃さないような項目をポーリングするのは難しいです。 (最近修正された作業項目を見て履歴をクロールすることもできますが、それは面倒です)。もう1つの選択肢はTFS Alerts Explorerを使用して、管理者が喜んでいるかもしれない詳細なアラートを設定し、適切なSOAPまたは電子メールによるアラート:http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f –

関連する問題