簡體   English   中英

如何將工作流中的轉換限制為僅在TFS中創建工作項的用戶?

[英]How can I restrict a transition in the workflow to only the user that created the work item in TFS?

這是一個更大限制的一部分,但是讓我失望的部分是只允許創建工作項的用戶(“System.CreatedBy”字段的值)將工作項轉換為Closed狀態。 我知道如何使用“For”和“Not”子句限制轉換,但這些只限於組。 我想將其限制為此工作項的特定創建者。 VALIDUSERS也僅限於團體(TFS或AD)。 謝謝你的幫助。

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

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

參考: 這里 (網站存檔鏈接)

如上所述:

  1. 創建ClosedByValidation字段並添加以下規則
<FIELD name="Closed By Validation" refname="Demo.ClosedByValidation" type="String">
    <COPY from="currentuser" /> 
    <FROZEN not="[project]\Project Administrators"/> 
</FIELD>
  1. 將以下規則添加到“已關閉”狀態
<STATE value="Closed"> 
   <FIELDS> 
      <FIELD refname="Demo.ClosedByValidation"> 
          <COPY from="currentuser" /> 
       </FIELD> 
   </FIELDS> 
</STATE>
  1. 將ClosedByValidation字段添加到表單,所以它看起來像這樣。 請注意我是如何顯示“創建者”字段和“ClosedByValidation”字段的

這個怎么運作

  • ClosedByValidation字段在創建工作項時將“Created By”值復制到其自身中。
  • 然后立即凍結字段(使用FROZEN)規則,該規則表明它不能更改。
    • 注意:FROZEN規則的條件是不適用於項目管理員,為其提供覆蓋功能。
  • 當工作項處於“已關閉”狀態時,則會將當前用戶復制到ClosedByValidation字段中。
  • 如果ClosedByValidation的值保持不變(原始Created By),那么一切都很好。
  • 如果ClosedByValidation的值已更改,則FROZEN規則會顯示違規行為,如上面的屏幕截圖所示。

這不可能是afaik。

然而,相反的想法是“使用” NOTSAMEAS “規則限制當currentUser與CreatedBy不同時的 轉換 ”。 我仍然不知道為什么MS沒有實現“SAMEAS”規則

因此,由於沒有“SAMEAS”規則,因此您無法使用xml修改。

順便說一句,我希望我錯了,但也無法中斷工作項保存事件並取消它(如@MrHinsh建議的那樣)。 工作項保存事件只是一個通知事件而不是一個DecisionPoint事件,它也發生在工作項保存操作完成后,如名稱所示(WorkItemChangedEvent)。

可以在此處閱讀有關NotificationType的詳細信息。

使用當前規則引擎無法進行此配置。

可能的選擇:

  1. 創建一個服務器端事件處理程序,攔截thesave並根據您的自定義業務規則拒絕它
  2. 不......我剛剛出來......

應該注意的是,TFS並非旨在成為強制執行系統,而您的業務規則意味着組織實施功能失調。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM