部署至 SharePoint 的 WF 工作流,審批過程中狀態欄位僅顯示「進行中」,無法反映具體階段(如「已批准」、「被拒絕」、「已取消」)。需擴展狀態值滿足業務需求。
onTaskChange 之下,CorrelationToken 綁定工作流啟動活動 (onWorkflowActivated) 同值。SetState 作用於整個工作流,非單一任務。SetState 活動屬性建立 setWorkflowState 欄位(型別 int)。<MetaData> 節點加入:<ExtendedStatusColumnValues>
<StatusColumnValue>已取消</StatusColumnValue>
<StatusColumnValue>已批准</StatusColumnValue>
<StatusColumnValue>被拒絕</StatusColumnValue>
</ExtendedStatusColumnValues>
系統保留 0~14 共 15 個內建狀態,自訂值從 15 開始遞增(已取消=15、已批准=16、被拒絕=17)。
setWorkflowState = (int)SPWorkflowStatus.Max + 1; // Max=14,結果為 15
後續狀態依序 +2、+3 等。
SPWorkflowStatus.Max 取得系統最大狀態值 (14),避免硬編碼此技巧讓工作流狀態語義化,大幅提升使用者體驗與流程可視性。