Quy Trình Thiết Lập Workflow Phê Duyệt Trên D365 BC — Từ Lý Thuyết Đến Thực Tế Dự Án

Quy Trình Thiết Lập Workflow Phê Duyệt Trên D365 BC — Từ Lý Thuyết Đến Thực Tế Dự Án

📅 Đăng bởi SongNghia.com  |  Chủ đề: D365 Business Central  |  Workflow & Approval  |  Triển khai ERP

Workflow phê duyệt là một trong những tính năng được doanh nghiệp Việt Nam quan tâm nhất khi triển khai D365 Business Central — vì nó trực tiếp thay thế quy trình phê duyệt thủ công qua email hay giấy tờ. Bài viết này phân tích mô hình Event → Condition → Response, các tình huống phức tạp hay gặp trong thực tế (duyệt nhiều cấp, thay thế người duyệt, thông báo qua Teams), và một phần ít được nhắc đến nhưng rất quan trọng: Responsibility Centers — công cụ lọc dữ liệu theo phòng ban/chi nhánh để Workflow hoạt động đúng ngữ cảnh.
 

🧠 Phần 1 — Hiểu Mô Hình Event → Condition → Response

Toàn bộ logic của Workflow trong D365 BC xoay quanh 3 thành phần cốt lõi:

Bước 1
EVENT
Khi nào kích hoạt?
Bước 2
CONDITION
Điều kiện lọc nào?
Bước 3
RESPONSE
Hệ thống làm gì?
Thành phầnÝ nghĩaVí dụ thực tế
Event Sự kiện xảy ra trong hệ thống kích hoạt Workflow Người dùng click "Request Approval" trên Purchase Invoice
Condition Bộ lọc để quyết định Workflow có áp dụng không Chỉ áp dụng khi Amount > 10.000.000 VNĐ
Response Hành động hệ thống thực hiện khi điều kiện thỏa mãn Tạo yêu cầu phê duyệt và gửi thông báo cho Manager
💡 Lưu ý quan trọng: Mỗi Workflow gồm nhiều step (bước) được xếp theo thứ tự thụt lề (indent). Bước tiếp theo chỉ được kích hoạt sau khi bước trước hoàn thành. Muốn chỉnh sửa Workflow, bạn phải tắt Enabled trước, chỉnh xong rồi mới bật lại.

🔧 Phần 2 — Quy Trình Thiết Lập Chuẩn (6 bước)

Bước 1

Tạo Workflow User Group (nếu cần duyệt nhiều người)

Tìm kiếm Workflow User Groups → tạo group và gán thứ tự Sequence No. cho từng approver. Sequence No. thấp hơn sẽ duyệt trước. Nếu gán cùng Sequence No. → duyệt song song (parallel approval).

Bước 2

Thiết lập Approval User Setup

Tìm kiếm Approval User Setup → điền cho từng user:

TrườngNội dung cần điền
User IDTài khoản người dùng trong hệ thống
Approver IDTài khoản người duyệt cấp trên
SubstituteNgười thay thế khi approver vắng mặt
Purchase Amount Approval LimitHạn mức tối đa người này được duyệt
Sales Amount Approval LimitHạn mức phê duyệt cho Sales
Approval Administrator✓ nếu là quản trị viên workflow (1 người duy nhất)
EmailEmail nhận thông báo phê duyệt
💡 Sau khi điền xong, dùng action "Approval User Setup Test" để kiểm tra không có xung đột (ví dụ: một người vừa là requester vừa là approver trong cùng group).
Bước 3

Cấu hình Email / SMTP

Tìm kiếm Email Accounts → thiết lập hộp thư dùng để gửi thông báo. Không có SMTP → người duyệt chỉ nhận thông báo trong BC (Notification Inbox), không nhận qua email.

Bước 4

Tạo Workflow từ Template

Tìm kiếm Workflows → chọn "New Workflow from Template" → chọn template phù hợp (Purchase Invoice Approval, Sales Order Approval, v.v.). BC có sẵn hàng chục template chuẩn, chỉ cần điều chỉnh Condition và Response.

Bước 5

Thiết lập Notification Schedule

Tìm kiếm Workflow Notification Setup → định nghĩa khi nào gửi thông báo: ngay lập tức (Instantly) hay theo lịch (mỗi ngày lúc 8h sáng). Cũng cấu hình Overdue Approval Notifications để nhắc nhở khi phê duyệt quá hạn.

Bước 6

Bật Enabled và Test

Toggle Enabled = ON → tạo một chứng từ test → click "Request Approval" → kiểm tra approver có nhận thông báo không → approve thử → kiểm tra chứng từ chuyển sang trạng thái đúng.

⚡ Phần 3 — Các Tình Huống Phức Tạp Hay Gặp Trong Thực Tế

Tình huống 1
Duyệt nhiều cấp theo hạn mức (Approver Chain)

Yêu cầu thực tế: Hóa đơn mua dưới 20 triệu → Trưởng phòng duyệt. Từ 20–100 triệu → Giám đốc tài chính. Trên 100 triệu → Tổng giám đốc.

Cách thiết lập: Trong Approval User Setup, điền hạn mức (Purchase Amount Approval Limit) cho từng cấp. Trong Workflow, chọn Approver Type = ApproverApprover Limit Type = Approver Chain — hệ thống sẽ tự leo thang lên cấp đủ hạn mức.

💡 Cần đảm bảo chuỗi approver liên tục, không bị đứt giữa chừng (người A → người B → người C phải đều có Approver ID trỏ đúng cấp trên).
Tình huống 2
Nhiều người cùng phải duyệt (Workflow User Group)

Yêu cầu thực tế: Purchase Order trên 500 triệu phải được cả Giám đốc tài chính lẫn Giám đốc kỹ thuật cùng phê duyệt.

Cách thiết lập: Tạo Workflow User Group gồm cả hai người, gán cùng Sequence No. = 1 (duyệt song song) hoặc Sequence No. khác nhau nếu cần tuần tự. Trong Workflow, chọn Approver Type = Workflow User Group.

⚠️ Lưu ý: Không để một người vừa là requestor vừa là approver trong cùng Workflow User Group — BC sẽ tự động approve request của người đó, bỏ qua bước kiểm soát.
Tình huống 3
Thay thế người duyệt khi vắng mặt (Substitute Approver)

Yêu cầu thực tế: Giám đốc đi công tác, cần có người thay thế duyệt các chứng từ đang chờ.

Có 2 cách xử lý:

  • Cài sẵn Substitute trong Approval User Setup: Điền trường Substitute → khi approver gốc không duyệt, người được ủy quyền có thể vào Requests to Approve → chọn Delegate → hệ thống tự chuyển yêu cầu sang Substitute và gửi thông báo.
  • Xử lý thủ công khi phát sinh: Approval Administrator vào Overdue Approval Requests → chạy "Send Overdue Approval Notifications" → delegate sang người phù hợp.
Tình huống 4
Thông báo phê duyệt qua Microsoft Teams

Yêu cầu thực tế: Doanh nghiệp dùng Teams làm công cụ giao tiếp chính, muốn nhận thông báo duyệt ngay trong Teams thay vì email.

Cách thiết lập: D365 BC tích hợp sẵn với Microsoft Teams qua Power Automate. Bạn tạo Flow từ template "Request approval for Business Central" trên Power Automate → kết nối BC + Teams → khi có yêu cầu phê duyệt, bot sẽ gửi tin nhắn adaptive card vào Teams cho approver. Approver có thể Approve / Reject ngay trong Teams mà không cần mở BC.

💡 Kinh nghiệm thực tế: Tính năng này đặc biệt được người dùng ưa thích vì giảm đáng kể thời gian chờ phê duyệt. Tuy nhiên cần đảm bảo license Power Automate và quyền kết nối BC ↔ Teams được cấp đúng.

🏢 Phần 4 — Responsibility Centers: Lọc Dữ Liệu Theo Phòng Ban / Chi Nhánh

Responsibility Centers là gì và liên quan đến Workflow thế nào?

Responsibility Center (Trung tâm trách nhiệm) là tính năng cho phép bạn gán mỗi user chỉ nhìn thấy chứng từ thuộc phạm vi của mình — ví dụ: nhân viên chi nhánh Hà Nội chỉ thấy Sales Order của Hà Nội, không thấy của TP.HCM.

Trong bối cảnh Workflow, điều này rất quan trọng: nếu không có Responsibility Center, approver có thể nhận yêu cầu duyệt từ tất cả chi nhánh — gây nhầm lẫn và mất kiểm soát phân quyền theo địa lý/phòng ban.

Cách thiết lập Responsibility Centers

Bước 1 — Tạo danh mục Responsibility Centers: Tìm kiếm Responsibility Centers → tạo code cho từng đơn vị.

CodeNameÝ nghĩa
HCMChi nhánh TP.HCMBộ phận kinh doanh phía Nam
HANChi nhánh Hà NộiBộ phận kinh doanh phía Bắc
HOVăn phòng chínhBan lãnh đạo, kế toán tổng hợp

Bước 2 — Gán Responsibility Center cho từng User: Tìm kiếm User Setup → chọn user → điền vào 3 trường filter:

TrườngTác dụng
Sales Resp. Ctr. FilterLọc chứng từ Sales (Order, Invoice, Credit Memo...)
Purchase Resp. Ctr. FilterLọc chứng từ Purchase (Order, Invoice...)
Service Resp. Ctr. FilterLọc chứng từ Service Management
⚠️ Giới hạn cần biết: Responsibility Center chỉ lọc chứng từ chưa post (Sales Order, Purchase Order đang mở). Với posted documentsledger entries, user vẫn xem được tất cả. Nếu cần kiểm soát toàn diện hơn, cần kết hợp với Permission Sets.

Responsibility Center và Workflow — kết hợp thực tế

Sau khi gán Responsibility Center, bạn có thể dùng trường Responsibility Center làm Condition trong Workflow:

Condition trong WorkflowTác dụng
Responsibility Center = HCMChỉ áp dụng Workflow cho chứng từ của chi nhánh HCM
Responsibility Center = HANChứng từ Hà Nội đi qua Workflow riêng với approver riêng

Nhờ đó, bạn có thể tạo 2 Workflow riêng biệt cho 2 chi nhánh, mỗi Workflow có approver và hạn mức phê duyệt khác nhau — rất phù hợp cho doanh nghiệp có nhiều địa điểm hoặc phòng ban hoạt động độc lập.

📖 Phần 5 — Bài Học Từ Thực Tế Dự Án

Bài học #1: Đừng để một người vừa submit vừa là approver trong cùng group — BC sẽ tự approve, bỏ qua toàn bộ kiểm soát. Tình huống này hay xảy ra khi setup vội, không kiểm tra kỹ Workflow User Group.
Bài học #2: Test Workflow bằng tài khoản thật của từng user — không phải tài khoản admin. Admin thường có quyền bypass workflow, dẫn đến test thành công nhưng user thực tế không nhận được thông báo.
Bài học #3: Phê duyệt nhiều cấp theo hạn mức (Approver Chain) phải đảm bảo chuỗi approver không bị đứt. Nếu người cuối chuỗi không có Approver ID, yêu cầu sẽ bị treo mãi mà không ai nhận được thông báo.
Bài học #4: Nếu dùng thông báo qua email, phải setup Job Queue và đảm bảo SMTP hoạt động trước khi Go-Live. Thiếu bước này, Workflow chạy đúng nhưng người duyệt không nhận được email — họ nghĩ hệ thống lỗi.
Bài học #5: Khi dùng Responsibility Centers, hãy test kỹ việc tạo chứng từ và xem danh sách để chắc filter hoạt động đúng. Một lỗi nhỏ trong việc gán Responsibility Center trên Customer/Vendor card có thể làm chứng từ bị lọc nhầm sang chi nhánh khác.

✅ Checklist Thiết Lập Workflow Trước Go-Live

  • Workflow User Group đã tạo đúng Sequence No. (tuần tự hay song song)
  • Approval User Setup đầy đủ: Approver ID, Substitute, Amount Limit, Email
  • Không có user vừa là requestor vừa là approver trong cùng group
  • Đã chạy "Approval User Setup Test" — không có lỗi/xung đột
  • Email / SMTP đã cấu hình và gửi test thành công
  • Notification Schedule đã thiết lập (Instantly hoặc theo lịch)
  • Workflow Enabled và đã test bằng tài khoản user thực tế (không phải admin)
  • Approver chain không bị đứt giữa chừng
  • Responsibility Centers đã gán đúng cho từng user trong User Setup
  • Workflow Condition đã dùng Responsibility Center để phân luồng (nếu có nhiều chi nhánh)
  • Job Queue đã được Start — đảm bảo thông báo được gửi đúng lịch
  • Đã test kịch bản Delegate (ủy quyền khi người duyệt vắng mặt)

🎯 Kết Luận

Workflow phê duyệt trong D365 BC không khó nếu bạn hiểu đúng mô hình Event → Condition → Response và thiết lập đúng thứ tự: User Group → Approval User Setup → Email → Workflow → Test. Phần thường bị bỏ qua nhất chính là Responsibility Centers — nhưng đây lại là nền tảng để phân luồng phê duyệt đúng theo chi nhánh hoặc phòng ban, tránh tình trạng approver nhận nhầm yêu cầu không thuộc phạm vi của mình.

Đầu tư thời gian thiết lập và test kỹ trước Go-Live sẽ giúp quy trình phê duyệt của doanh nghiệp chạy mượt mà — và người dùng sẽ cảm nhận được ngay sự khác biệt so với quy trình thủ công trước đây.

Bạn đã gặp tình huống workflow nào phức tạp trong dự án của mình chưa? Chia sẻ bên dưới nhé! 👇

#D365BC #BusinessCentral #WorkflowApproval #ERPVietNam #PhêDuyệt #MicrosoftDynamics365 #ResponsibilityCenters #TriểnKhaiERP #ApprovalWorkflow #MicrosoftTeams #PowerAutomate #SongNghia #GoLiveERP #ERPConsultant #KiểmSoátNộiBộ

Post a Comment

0 Comments