iT邦幫忙

2025 iThome 鐵人賽

DAY 17
0
Odoo

用 Odoo 打造數位轉型引擎:從基礎建置到跨領域應用系列 第 17

Day 17:Odoo 工作流自動化(Workflow 與 Business Process Management)

  • 分享至 

  • xImage
  •  

在前一篇我們學習了如何建立 PDF 報表,今天要來探討更高層次的應用:工作流自動化 (Workflow Automation)。對於企業而言,流程是否能順暢銜接、避免人工干預,往往決定了數位轉型的成效。Odoo 雖然在舊版本中曾有專門的「工作流引擎」,但自 v9 以後改由 商業邏輯 + 自動化工具 來實現 Business Process Management (BPM)


1. 為什麼需要工作流自動化?

舉例來說,在「銷售 → 出貨 → 開立發票」的流程中,如果一切都需要人工逐步點選,容易造成:

  • 延遲(人工處理速度慢)
  • 錯誤(忘記或操作失誤)
  • 成本高(需要更多人力)

透過工作流自動化,可以讓 Odoo 自動驅動流程,例如:

  • 訂單確認後,自動建立庫存出貨單。
  • 出貨完成後,自動觸發發票產生。
  • 逾期付款自動寄送提醒信件。

2. Odoo 的工作流實現方式

雖然舊版 Workflow Engine 已移除,但 Odoo 提供了更靈活的方式:

  1. Server Actions(伺服器動作):事件驅動的自動化(上篇已介紹)。
  2. Scheduled Actions(排程動作):週期性自動化(類似 Cron Jobs)。
  3. Studio 自動化(企業版功能):透過拖拉介面設計流程。
  4. 模組邏輯(Python 繼承):直接在 Model 寫商業邏輯,驅動自動化。

3. 實作範例:自動建立發票

假設我們希望當銷售訂單確認後,Odoo 自動建立發票。

在自訂模組中繼承 sale.order

from odoo import models

class SaleOrderInherit(models.Model):
    _inherit = 'sale.order'

    def action_confirm(self):
        res = super(SaleOrderInherit, self).action_confirm()
        invoice = self._create_invoices()
        invoice.action_post()
        return res

這段程式碼會在訂單確認 (action_confirm) 後,自動產生並過帳發票。


4. 實作範例:逾期提醒

也可以結合 Scheduled Action,例如每天檢查未付款的發票並寄送提醒。

from odoo import models
from datetime import date

class AccountMoveInherit(models.Model):
    _inherit = 'account.move'

    def _cron_remind_overdue_invoices(self):
        overdue = self.search([('invoice_date_due', '<', date.today()), ('payment_state', '!=', 'paid')])
        for inv in overdue:
            inv.message_post(body="提醒:發票已逾期,請儘快付款。")

再透過 ir.cron 設定每天執行 _cron_remind_overdue_invoices


5. 與 BPM 的關聯

Odoo 雖不像傳統 BPM 系統有完整的流程圖建模,但它的彈性更高:

  • 流程驅動:以 Python 方法與自動化規則定義流程。
  • 跨模組整合:CRM、Sales、Inventory、Accounting 可以自動串接。
  • 可視化輔助:Kanban、報表、Studio 提供管理者清晰的流程追蹤。

小結

Odoo 的工作流自動化本質上是 事件 + 規則 + 動作 的組合:

  • 事件:訂單確認、出貨完成、付款逾期
  • 規則:符合條件才觸發
  • 動作:建立新紀錄、更新狀態、寄送通知

這樣的設計讓 Odoo 能靈活支援多種商業流程,不再需要額外的工作流引擎。在下一篇文章中,我將介紹 Odoo 多公司與多幣別支援,這對於跨國企業尤其重要。


上一篇
Day 16:Odoo 報表與 QWeb PDF 輸出
下一篇
Day 18:Odoo 多公司與多幣別支援
系列文
用 Odoo 打造數位轉型引擎:從基礎建置到跨領域應用22
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言