2011-06-28 51 views
0

對於我當前的項目,我必須在自定義工作項更改爲特定狀態時向數​​據庫添加記錄。爲此,您可以構建一個在WorkItemChanged事件中觸發的TFS插件。然而,我們的公司政策不允許我們構建這些插件,因爲它是針對所有項目集合中的每個工作項目進行處理的。這項行動僅適用於少數團隊項目。WorkItemChanged事件客戶端

我的問題:是否可以創建一些客戶端插件(也許是一個VS插件),而不是在這個事件上觸發一個動作?或者有沒有辦法爲這個事件創造另一種傾聽者?

任何建議將不勝感激,在此先感謝。

回答

0

最後,我在WorkItem editform中創建了一個自定義控件。在此控件中,我可以實現創建數據庫記錄所需的所有邏輯。

因此,不是將組合框狀態設置爲onhold狀態,現在有一個按鈕完全相同,執行我的自定義編碼,因此向我們的數據庫添加一條記錄。

1

您可以實施基於輪詢的警報系統,而不是讓TFS爲您提供警報。

我會創建一個簡單的工作項目查詢,選擇您感興趣的工作項目並按「更改日期」列排序。然後,我會編寫一個簡單的程序,使用TFS SDK運行此工作項目查詢並根據結果進行通知,從而保持民意測驗之間的高水準。 (TFS SDK示例有一個運行工作項查詢的示例。)

請注意,與基於輪詢的方法相比,無論您的公司策略如何設置SOAP偵聽器都有優勢。 TFS使用的基於SOAP的警報系統是爲TFS基礎架構組件之間的通信而開發的。期望您配置的SOAP端點具有高可用性 - 如果您的機器停機,SOAP服務崩潰或您的IP地址發生變化,您將開始在事件日誌中看到TFS抱怨。在我切換到類似警報系統的基於輪詢的模型之前,我在我的TFS服務器上填寫了事件日誌。

+0

謝謝你的回答。這肯定是許多場景的一個選擇。然而,我必須在數據庫中處理的記錄創建了一個用於服務級別協議的Onhold開始/結束時間。所以它必須有點實時。 – PietjePoeier

+0

Double post,顯然有編輯帖子的時間限制。 因此,讓我們說我們可以每分鐘運行一次該程序或服務,我們查詢集合中的每個工作項目,查看它是否已設置爲特定狀態,如果是,則創建一個新的Db記錄。如果我弄錯了,請糾正我。 問題:如果在此期間狀態得到重置或設置爲另一個狀態,是否可以查詢處理狀態列表? – PietjePoeier

+0

我明白了。所以你基本上有一個「擱置」的標誌,你正在查詢處於該狀態的物品......?輪詢項目是非常棘手的,這樣你就不會在這種情況下錯過狀態改變。 (您可以查看最近修改過的工作項並抓取他們的歷史記錄,但這非常乏味)。另一種選擇是使用TFS Alerts Explorer,它允許您配置更細緻的警報,以便管理員可能更高興並使用SOAP或電子郵件警報適當的:http://visualstudiogallery.msdn.microsoft.com/c255a1e4-04ba-4f68-8f4e-cd473d6b971f –