首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

自訂 SharePoint 工作流狀態欄位值:ExtendedStatusColumnValue 完整指南

     編輯:關於.NET

問題背景

部署至 SharePoint 的 WF 工作流,審批過程中狀態欄位僅顯示「進行中」,無法反映具體階段(如「已批准」、「被拒絕」、「已取消」)。需擴展狀態值滿足業務需求。

實作步驟

  1. 設計器拖入 SetState 活動:置於 onTaskChange 之下,CorrelationToken 綁定工作流啟動活動 (onWorkflowActivated) 同值。
    ※ SetState 作用於整個工作流,非單一任務。
  2. 建立 State 欄位:在 SetState 活動屬性建立 setWorkflowState 欄位(型別 int)。
  3. 修改 Workflow.xml 擴展狀態值:在 <MetaData> 節點加入:
<ExtendedStatusColumnValues>
  <StatusColumnValue>已取消</StatusColumnValue>
  <StatusColumnValue>已批准</StatusColumnValue>
  <StatusColumnValue>被拒絕</StatusColumnValue>
</ExtendedStatusColumnValues>

系統保留 0~14 共 15 個內建狀態,自訂值從 15 開始遞增(已取消=15、已批准=16、被拒絕=17)。

  1. SetState 事件處理賦值:雙擊活動生成事件,代碼:
setWorkflowState = (int)SPWorkflowStatus.Max + 1; // Max=14,結果為 15

後續狀態依序 +2、+3 等。

  1. 部署驗證:F5 編譯部署至 SharePoint 網站,審批流程中狀態欄位即顯示自訂中文值。

關鍵點提示

  • SPWorkflowStatus.Max 取得系統最大狀態值 (14),避免硬編碼
  • 狀態值必須唯一且連續遞增
  • Workflow.xml 修改後需重新部署

此技巧讓工作流狀態語義化,大幅提升使用者體驗與流程可視性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved