2014-09-24 78 views
5

這是一個較大限制的一部分,但是讓我絆倒的部分是隻允許創建工作項目的用戶(「System.CreatedBy」字段的值)將工作項目轉換爲關閉狀態。 我知道如何使用「For」和「Not」從句來限制轉換,但這些僅限於組。我想限制它到這個工作項目的特定創建者。 VALIDUSERS也限於組(TFS或AD)。 感謝您的幫助。如何將工作流中的轉換限制爲僅在TFS中創建工作項的用戶?

+0

爲什麼你需要這個規則?什麼組織行爲促成了這個? – 2014-09-25 05:51:53

回答

7

昨晚我能找到合適的解決方案。

這個解決方案實際上完全符合我的需求,因爲它允許我添加一個免於規則的組,以便該組的成員(如QA)以及創作者能夠關閉工作項目,而其他團隊成員不是。

參考:here

作爲參考:

  1. 創建ClosedByValidation字段並添加以下規則
<FIELD name="Closed By Validation" refname="Demo.ClosedByValidation" type="String"> 
    <OPY from="currentuser" /> 
    <FROZEN not=「[project]\Project Administrators」/> 
</FIELD> 
  • 添加下列規則至關閉狀態
  • <STATE value="Closed"> 
        <FIELDS> 
         <FIELD refname="Demo.ClosedByValidation"> 
          <COPY from="currentuser" /> 
         </FIELD> 
        </FIELDS> 
    </STATE> 
    
    1. 將ClosedByValidation字段添加到窗體中,所以它看起來像這樣。請注意我是如何同時顯示了「創建者」欄和「ClosedByValidation」字段

    它是如何工作

    • 的ClosedByValidation領域複製「創建者」值成 本身就是在創建工作項時的權利。
    • 然後立即 凍結字段(與FROZEN)規則,其中規定它不能 更改。
      • 注意:凍結規則不適用於管理員項目 ,使其具有覆蓋功能。
    • 當工作 項目被關閉,那麼當前用戶被複制到 ClosedByValidation領域。
    • 如果ClosedByValidation的值仍爲 相同(原始創建者)則一切正常。
    • 如果 ClosedByValidation的值已更改,則FROZEN規則顯示 違規,如您在上面的屏幕截圖中看到的。
    +0

    感謝您的鏈接。這對我來說是一個新的信息,並且很高興能夠完成。確實非常聰明的解決方案。 – 2014-09-26 07:38:24

    +0

    謝謝!請注意,如果公司中的用戶在打開工作項目時更改了顯示名稱(即,結婚),則此操作將失敗。因此,有一個免除規則是非常重要的,以便管理員可以強制關閉WIT。 – KarmaEDV 2016-08-05 08:46:37

    0

    此配置對於當前規則引擎是不可能的。

    可能的替代:

    1. 創建一個服務器端事件處理程序,它可以攔截thesave並拒絕接受根據您的自定義業務規則
    2. 都能跟得上...我剛從...

    應該指出的是,TFS並非設計成爲執法系統,您的業務規則意味着組織實施失靈。

    +0

    我用你的博客文章來告訴你說的相反,但我想知道是否有辦法打斷實際的保存 – 2014-09-25 12:17:59

    +0

    是的,你必須自己實現恢復邏輯 – 2014-09-26 06:21:37

    +0

    好的,非常感謝Martin。 – 2014-09-26 07:35:51

    1

    這是不可能的afaik。

    然而,相反的想法是可能的「Restrict a transition when currentUser is not same as CreatedBy」與「NOTSAMEAS」規則。 (我仍然不知道爲什麼MS沒有實行「sameAs的」規則

    那麼,既然沒有「sameAs的」規則,則可以使用XML修改不能這樣做。

    順便說一句,我希望我錯了,但它也不能中斷工作項保存事件並取消它(作爲@MrHinsh建議)。工作項保存事件只是一個通知事件而不是一個DecisionPoint事件,它也發生在工作項保存操作按名稱暗示完成(WorkItemChangedEvent)之後。

    有關NotificationType的詳細信息可以閱讀here

    相關問題