2010-04-15 90 views
0

我們使用Sharepoint Services 3.0作爲項目跟蹤工具。我們有一個包含您的基本信息(描述等)的列表,另外我們還有一個「分配人員」列,該列是Person或Group類型,用於將列表項與個人關聯。此列支持多種選擇。當有多個人在一個項目中時,Sharepoint警報不起作用

我們希望設置警報,以便每個人只有在分配給列表項時纔會收到警報電子郵件。我們採取的方法是在此列表上設置一個視圖,該視圖經過篩選以顯示指定人員等於[我]的列表項目,然後在此列表上創建一個警報,該警報設置爲當有人更改某個電子郵件時發送電子郵件出現在視圖中的項目。

當指定人員列中只有一個人時,此功能很好。當分配人員列中有多個人員時,該功能不起作用。

有人知道爲什麼這不起作用,或者我能做些什麼來排除故障?有沒有更好的方法來達到最終結果?我們可以創建幾個「分配人員」列,但不允許多個選擇,但這看起來有點笨拙。

回答

0

它適用於一個人但不是多人的原因是因爲支票是針對個人的。您的觀點所做的比較是,Assigned是否等於[Me],而不是Assigned是否將[Me]作爲其實體之一。

不使用is equal to的列表過濾器,而是使用列表過濾器contains。這應該夠了吧。

編輯迴應評論

要訪問的對象模型,你需要使用Visual Studio。我不知道使用SharePoint Designer來完成這種事情的一種方法,但也許有一些瘋狂的數據庫查看您可以做的事情。無論如何...滿足您的實際需求...

以下代碼示例說明了一種實現您的目標的非常基本的方法。

using (SPSite site = new SPSite("yourwebsiteurlhere")) 
{ 
    using (SPWeb web = site.OpenWeb()) 
    { 
     SPList list = web.Lists["titleoflist"]; 
     SPView view = list.Views["filteredviewname"]; 
     view.Query = "<Where><Contains><FieldRef Name=\"assignfield\"/><Value Type=\"Integer\"><UserID Type=\"Integer\" /></Value></Contains></Where>"; 
     view.Update(); 
    } 
} 

替換「yourwebsiteurlhere」與該網站的網址,「titleoflist」與您的問題列表的標題,「filteredviewname」與視圖的名字,而「assignfield」與你使用的內部名稱您的分配領域。如果您是通過標準SharePoint用戶界面創建的,則應該是沒有空格的字段名稱。

至於在哪裏運行代碼,您可以將這種事情放在一次性工作流程中。我有時只是爲了確保我有必要的特權。希望這可以幫助!

如果您無法/不允許使用Visual Studio,那麼您的解決方案可能必須是查看第三方解決方案。

+0

感謝您的回覆。但是,sharepoint告訴我,包含的過濾器類型不能用於此類型的列。我想知道我是否需要第三方組件(如http://www.software112.com/products/sharepoint-people-contains-filter-webpart.html) – csm8118 2010-04-15 19:13:57

+0

你是對的。但是,如果您有權訪問對象模型並可以直接編輯SPView,而不是第三方組件,則應該可以使用CAML查詢來實現此目的。如果你需要我構建一個示例代碼片段,請告訴我,我將編輯我的帖子,@ csm8118 – 2010-04-15 19:18:32

+0

請提供示例代碼片段。我認爲我應該有充分的權利來編輯,但我沒有嘗試過。我需要在共享點設計者還是其他方面做到這一點? – csm8118 2010-04-15 19:23:55

相關問題