【開發實戰】Document Workflow 設計:簽核流程完全攻略

Document Workflow 設計:簽核流程完全攻略

iDempiere 內建完整的文件工作流引擎,支援多層簽核、自動審批、條件分支等功能。本文將帶你了解 Document Workflow 的核心概念,並實作一個訂單三層簽核流程。

一、核心概念:DocAction 與 DocStatus

DocAction(動作)

使用者可對文件執行的操作:

DocAction 說明
CO (Complete) 完成文件
AP (Approve) 核准
RJ (Reject) 駁回
VO (Void) 作廢
CL (Close) 關閉
RE (Reverse) 沖銷

DocStatus(狀態)

DocStatus 說明
DR (Drafted) 草稿
IP (In Progress) 處理中
WC (Waiting Confirm) 等待確認
CO (Completed) 已完成
VO (Voided) 已作廢
CL (Closed) 已關閉

二、標準文件流程

草稿 (DR) 
  → [Complete] 
    → 處理中 (IP) 
      → [Complete] 
        → 已完成 (CO)

三、Workflow 相關表格

表格 用途
AD_Workflow 工作流定義
AD_WF_Node 工作流節點
AD_WF_NodeNext 節點連線
AD_WF_Activity 執行中的活動
AD_WF_Process 工作流實例

四、實戰:訂單三層簽核

需求

  • 金額 < 10,000:自動核准
  • 金額 10,000 ~ 100,000:主管核准
  • 金額 > 100,000:主管 + 經理雙簽

設計節點

  1. (Start) Document Action 節點
  2. (Check Amount) 條件判斷節點
  3. (Auto Approve) 自動核准節點
  4. (Manager Approve) 主管審批節點
  5. (Director Approve) 經理審批節點
  6. (End) 結束節點

設定步驟

  1. 開啟 Workflow 視窗
  2. 找到 Process_Order 工作流
  3. Node 子頁籤新增審批節點
  4. 設定 Node Next 定義流程分支
  5. 在分支設定 Transition Condition

Transition Condition 範例

@GrandTotal@ < 10000      → Auto Approve
@GrandTotal@ >= 10000 AND @GrandTotal@ < 100000  → Manager
@GrandTotal@ >= 100000    → Director

五、審批節點設定

欄位 說明
Action User Choice(等待使用者操作)
Responsible Role / User / Supervisor
Duration 逾時天數
Priority 優先級

六、從 API 觸發 DocAction

# 找到 Process 的 slug value
GET /api/v1/processes

# 執行 Complete
POST /api/v1/processes/c_order-process
{
    "table-id": 259,
    "record-id": 1000001
}

常見問題 FAQ

Q1: 文件卡在 In Progress 怎麼辦?

檢查 Workflow Activity 視窗,找到待處理的活動,確認審批者是否正確。

Q2: 如何讓特定 Role 可以核准?

在審批節點設定 Responsible Type = Role,並指定 Role。

Q3: 可以設定自動逾時核准嗎?

可以,設定 Duration 後,在 Workflow Processor 排程中會處理逾時自動核准。

Q4: 如何用 Java 程式觸發文件處理?

MOrder order = new MOrder(ctx, orderId, trxName);
order.setDocAction(DocAction.ACTION_Complete);
order.processIt(DocAction.ACTION_Complete);
order.saveEx();

Q5: 工作流變更後要重啟嗎?

不用,但建議清除 Cache。新文件會使用新流程,進行中的文件維持原流程。

留言

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *