Quản lý kiểu phê duyệt

MModule Phê duyệt Toàn diện cung cấp một nền tảng tập trung và hiệu quả để thiết lập, thực hiện và quản lý toàn bộ các luồng phê duyệt trong doanh nghiệp.

  • Bao quát mọi kịch bản phê duyệt trong doanh nghiệp.

  • Cho phép phê duyệt bởi bất kỳ người dùng nào được cấp quyền.

Trong Viindoo, kiểu phê duyệt xác định cách một quy trình phê duyệt được cấu hình: ai tham gia, ai nhận thông báo và giao dịch nào phát sinh sau khi phê duyệt.

Module cần cài đặt

Để thao tác theo hướng dẫn trong bài viết, bạn cần cài đặt ứng dụng sau:

Để tạo kiểu yêu cầu phê duyệt, truy cập Phê duyệt > Cấu hình > Kiểu phê duyệt. Để tạo mới, bấm nút Tạo.

Ghi chú

Bạn cần được phân quyền Quản trị viên của ứng dụng phê duyệt Viindoo để có thể tạo kiểu yêu cầu phê duyệt.

Tạo kiểu phê duyệt trong Viindoo

Sau đó, điền các thông tin cần thiết:

Thông tin chung

Thông tin chung
  • Nhập tên kiểu đề nghị phê duyệt

  • Kiểu: Các kiểu phê duyệt được hỗ trợ gồm:

    1. Chung

    2. Dự toán

    3. Báo giá / Đơn bán

    4. Hóa đơn khách hàng

    5. Thanh toán tiền ra

    6. Phiếu kho

    7. Điều chuyển kho

    8. Định mức nguyên vật liệu

    9. Lệnh sản xuất

    10. Yêu cầu cung ứng

    11. Dự án

    12. Nhiệm vụ

    13. Chấm công

    14. Ứng viên (HR)

    15. Tuyển dụng

    16. Hợp đồng nhân viên

    17. Huấn luyện

  • Bật Dòng đề nghị phê duyệt: Kích hoạt tùy chọn này để thêm các dòng phê duyệt vào đề nghị, cho phép bạn xác định danh sách sản phẩm hoặc các hạng mục khác được bao gồm trong đề nghị.

  • Bắt buộc có dòng: Kích hoạt tùy chọn này để bắt buộc người dùng nhập thông tin vào dòng đề nghị.

  • Thông báo tới: Người dùng bổ sung ngoài danh sách người duyệt được nhận thông báo từ các đề nghị phê duyệt thuộc kiểu này.

  • Mô tả: Nhập mô tả chi tiết về kiểu phê duyệt để làm rõ, hướng dẫn cho người dùng.

Quy trình phê duyệt

Tab Quy trình phê duyệt cho phép bạn xác định những người tham gia phê duyệt và các điều kiện kích hoạt sự tham gia của họ.

Approval process configuration
  • Yêu cầu có quản lý của nhân viên: Xác định cách người quản lý tham gia vào các đề nghị phê duyệt thuộc loại này. Để đủ điều kiện trở thành người phê duyệt, quản lý phải có ít nhất quyền truy cập Phê duyệt: Duyệt cho nhóm và được thiết lập là quản lý trực tiếp của nhân viên. Bạn có thể chọn một trong ba tùy chọn dưới đây:

    • Không: Người quản lý của nhân viên sẽ không tham gia vào quá trình phê duyệt.

    • Tùy chọn: Người quản lý của nhân viên sẽ là một trong số những người phê duyệt nhưng không phải người phê duyệt bắt buộc. Đề nghị sẽ vẫn có thể được duyệt khi tất cả những người phê duyệt bắt buộc đã duyệt và thỏa mãn điều kiện tổng số lượt duyệt tối thiểu.

    • Bắt buộc: Người quản lý của nhân viên là một trong những người phê duyệt bắt buộc. Điều đó có nghĩa là người quản lý không duyệt thì đề nghị sẽ không được chuyển sang trạng thái Được duyệt.

  • Yêu cầu có huấn luyện của nhân viên: Xác định cách Huấn luyện của nhân viên tham gia vào các đề nghị phê duyệt thuộc loại này. Để đủ điều kiện trở thành người phê duyệt, Huấn luyện phải có ít nhất quyền truy cập Phê duyệt: Duyệt cho nhóm và được thiết lập là Huấn luyện của nhân viên. Tương tự như phần Phê duyệt bởi Quản lý, bạn có thể chọn một trong ba tùy chọn: Không áp dụng, Tùy chọn hoặc Bắt buộc.

  • Yêu cầu có quản lý dự án: Xác định cách Quản lý Dự án tham gia vào các đề nghị phê duyệt thuộc loại này. Để đủ điều kiện trở thành người phê duyệt, Quản lý Dự án phải có ít nhất quyền Phê duyệt: Cán bộ và được thiết lập là quản lý của dự án liên quan. Tương tự phần Phê duyệt bởi Quản lý, bạn có thể chọn một trong ba tùy chọn: Không áp dụng, Tùy chọn hoặc Bắt buộc.

Cảnh báo

Khi kích hoạt đồng thời ba vai trò Quản lý, Coach và Quản lý Dự án, hệ thống sẽ xử lý phê duyệt theo thứ tự: Quản lý Dự án, sau đó Coach, tiếp theo là Quản lý, và cuối cùng là các người phê duyệt bổ sung.

  • Duyệt theo trình tự:

    • Nếu được chọn, yêu cầu phê duyệt sẽ được xử lý tuần tự theo từng bước, theo danh sách người phê duyệt. Mỗi người phê duyệt chỉ nhận thông báo và thấy nút Phê duyệt sau khi bước trước đó hoàn tất.

    • Nếu không chọn tùy chọn này, tất cả người phê duyệt sẽ nhận thông báo cùng lúc. Họ có thể phê duyệt yêu cầu một cáh độc lập. Yêu cầu sẽ được hoàn tất khi tất cả người phê duyệt trong danh sách đã phê duyệt.

  • Duyệt bởi bất cứ ai trong bước: Khi bật tùy chọn này, mỗi bước phê duyệt có thể có nhiều người phê duyệt. Chỉ cần một người phê duyệt trong số đó chấp thuận là bước đó được hoàn tất.

  • Số ngày để Duyệt: Tổng số ngày yêu cầu cho những người phê duyệt để có thể duyệt các đề nghi kiểu này. Nói cách khác, đây chính là số ngày dùng để tính ra hạn chót phê duyệt đối với các đề nghị phê duyệt kiểu này.

  • Số lượt duyệt tối thiểu: Số lần duyệt tối thiểu cho đề nghị thuộc kiểu này.

  • Các bước phê duyệt bổ sung: Cho phép cấu hình thêm các người phê duyệt linh hoạt tham gia vào quy trình phê duyệt. Có tổng cộng sáu kiểu thiết lập để bạn xác định thêm người phê duyệt.

    Kiểu xác định người phê duyệt
    • Người phê duyệt cụ thể: Lựa chọn này cho phép chọn một hoặc nhiều người duyệt tại trường Người phê duyệt. Có thể thiết lập bước này là bắt buộc hoặc không bằng cách tích vào nút Bắt buộc.

    • Chức vụ/vị trí: Lựa chọn này cho phép bạn xác định người phê duyệt dựa trên chức vụ/vị trí của người dùng. Người phê duyệt được lấy từ các nhân viên đang hoạt động có chức danh khớp với một trong các chức danh đã chọn. Nếu thiết lập Nhãn nhân sự, chỉ những nhân viên có ít nhất một trong các thẻ đó mới được đưa vào danh sách phê duyệt.

    • Phòng ban: Lựa chọn này cho phép bạn xác định người phê duyệt dựa trên phòng ban. Hệ thống bắt đầu từ phòng ban được chọn và lấy quản lý của phòng ban đó nếu đủ điều kiện. Nếu phòng ban không có quản lý hoặc quản lý không đủ điều kiện, hệ thống sẽ tiếp tục tìm lên chuỗi phòng ban cấp trên cho đến khi tìm được quản lý gần nhất đủ điều kiện. Nếu có thiết lập Nhãn nhân sự, quản lý đó cũng phải khớp với ít nhất một trong các thẻ đã cấu hình.

    • Nhãn nhân sự: Dùng để chọn người phê duyệt theo thẻ phân loại nhân viên, giúp linh hoạt cấu hình người phê duyệt, không phụ thuộc vào cơ cấu tổ chức.

    • Người dùng từ bản ghi liên quan: Lựa chọn này cho phép bạn xác định người phê duyệt dựa trên các bản ghi liên quan, chẳng hạn như người phụ trách sản phẩm, kho hàng, v.v.

      • Bản ghi liên quan có thể được Áp dụng ở cấp Đề nghị (phần đầu) hoặc ở các dòng chi tiết của Đề nghị.

      • Trường liên kết: Trường này cho phép bạn chọn trường dùng để liên kết Đề nghị (hoặc các dòng chi tiết) với tài liệu liên quan nhằm xác định người phê duyệt. Nếu không tìm thấy tài liệu liên quan, bước phê duyệt này sẽ được bỏ qua, ngay cả khi được đánh dấu là bắt buộc.

      • Trường người dùng trên bản ghi liên quan: Trường này cho phép bạn chọn trường người dùng trên tài liệu liên quan để làm người phê duyệt. Nếu không tìm thấy người dùng đủ điều kiện, bước phê duyệt này sẽ được bỏ qua, ngay cả khi được đánh dấu là bắt buộc.

    • Mã Python: Lựa chọn này cho phép bạn xác định người phê duyệt bằng mã Python. Đây là tùy chọn linh hoạt nhất, nhưng yêu cầu người dùng có kiến thức về lập trình Python và hiểu sâu cấu trúc hệ thống. Tính năng này chỉ được khuyến nghị cho lập trình viên hoặc người dùng chuyên nghiệp.

      • Sau khi chọn tùy chọn này, bạn cần lưu Kiểu phê duyệt trước khi tiếp tục cấu hình.

      • iếp theo, quay lại nút Nâng cao và nhập mã Python vào phần này.

  • Một tính năng khác cho phép bạn giới hạn các bước phê duyệt dựa trên điều kiện về số tiền bằng cách cấu hình mã Python. Ví dụ, các đề nghị trên 50 triệu VND có thể yêu cầu phê duyệt của CEO.

    • After choosing one of those selectors, click the Advanced button

    • Nhập điều kiện dưới dạng mã Python, ví dụ: request.total > 500000000 (tổng giá trị đề nghị lớn hơn 500.000.000).

      Điều kiện về giá trị

Ghi chú

  • Tất cả nhân viên sẽ được tham gia vào quy trình phê duyệt nếu họ có quyền Phê duyệt: Cán bộ và được liên kết với một người dùng tương ứng. Nếu bước phê duyệt được đặt là bắt buộc nhưng không tìm thấy người dùng đủ điều kiện, hệ thống sẽ hiển thị cảnh báo.

Sau khi điền các thông tin cần thiết, nhấn Lưu để lưu kiểu đề nghị phê duyệt.

Kích hoạt các trường

Để hiển thị trường mong muốn trên yêu cầu phê duyệt, hãy chuyển đến tab Kích hoạt các Trường. Tại đây, bạn có thể cấu hình các trường sẽ được hiển thị trong:

  • Phần đầu của đề nghị,

  • Phần dòng của đề nghị.

Fields Enablement configuration

Mỗi trường đều có ba tùy chọn hiển thị gồm:

  • Không: Trường này không xuất hiện trên đề nghị.

  • Tùy chọn: Trường này xuất hiện trên đề nghị nhưng không yêu cầu bắt buộc nhập dữ liệu.

  • Bắt buộc: Trường này xuất hiện trên đề nghị và yêu cầu bắt buộc nhập dữ liệu.

Với các trường được đặt là Tùy chọn hoặc Bắt buộc, bạn có thể định nghĩa nhãn hiển thị riêng theo nhu cầu.

Bật phê duyệt cho mô hình

ử dụng mục này để bật nút Lấy phê duyệt cho các mô hình nghiệp vụ cụ thể (ví dụ: Đơn bán hàng, Hóa đơn, Dự án). Sau khi kích hoạt, người dùng có thể tạo yêu cầu phê duyệt trực tiếp từ chế độ xem danh sách hoặc biểu mẫu của mô hình đó.

Enable approvals for models configuration

Cách nó hoạt động

  • Khi một mô hình được liên kết với loại phê duyệt này, hành động Được phê duyệt sẽ xuất hiện trong menu thao tác của mô hình. Khi nhấn vào, hệ thống sẽ mở Trình hướng dẫn Yêu cầu Phê duyệt.

  • Mỗi mô hình chỉ có thể được thêm một lần trong mỗi loại phê duyệt. Nếu một mô hình được liên kết với nhiều loại phê duyệt khác nhau, người dùng có thể tạo các yêu cầu phê duyệt riêng cho từng loại.

Cách liên kết với mô hình

Chuyển đến tab Bật phê duyệt cho mô hình. Tại trường Áp dụng cho, chọn mô hình cần liên kết với loại phê duyệt này.

Sau khi chọn mô hình, các trường cấu hình bổ sung sẽ xuất hiện:

  • Chế độ tạo phiếu phê duyệt: Chọn một trong hai tùy chọn dưới đây để xác định cách yêu cầu phê duyệt được tạo khi người dùng chọn các bản ghi của mô hình này trong trình hướng dẫn Được phê duyệt.

    • Mỗi bản ghi một yêu cầu phê duyệt: Tùy chọn này cho phép tạo một yêu cầu phê duyệt riêng cho từng bản ghi được chọn. Nếu bản ghi có trường dòng được ánh xạ sang các dòng của yêu cầu phê duyệt, mỗi dòng sẽ được thêm như một mục riêng biệt. Sử dụng tùy chọn này khi mỗi bản ghi cần một quy trình phê duyệt độc lập.

    • Nhiều bản ghi trong một yêu cầu phê duyệt: Tùy chọn này cho phép tạo một yêu cầu phê duyệt duy nhất cho toàn bộ các bản ghi được chọn. Mỗi bản ghi sẽ hiển thị như một dòng trong yêu cầu. Sử dụng khi cần phê duyệt nhiều bản ghi cùng lúc.

  • Hành động cửa sổ nguồn mặc định: Nếu được thiết lập, bộ chọn nguồn sẽ mở hành động này thay vì tự động chọn hành động dạng danh sách (tree view) mặc định của mô hình.

  • Chỉ tạo từ bản ghi nguồn: Khi kích hoạt, người dùng chỉ có thể tạo yêu cầu phê duyệt từ bản ghi nguồn qua hành động Được phê duyệt. Trên thẻ kanban sẽ không còn nút Tạo yêu cầu, mà thay bằng liên kết đến các bản ghi chưa có phê duyệt.

  • Tên tài liệu nguồn: Tên của tài liệu nguồn sẽ được hiển thị trên giao diện người dùng nhằm cải thiện trải nghiệm sử dụng.

  • Miền điều kiện: Xác định những yêu cầu nào cần áp dụng quy trình phê duyệt theo loại này.

    • Miền bản ghi áp dụng: Miền tùy chọn dùng để giới hạn những bản ghi của mô hình này có thể được phê duyệt theo loại này.

    • Miền bắt buộc phê duyệt trước: Miền tùy chọn xác định những bản ghi của mô hình này bắt buộc phải được phê duyệt theo loại này trước khi thực hiện các thao tác nhạy cảm. Một bản ghi chỉ được xem là bắt buộc phê duyệt khi đồng thời thỏa điều kiện của miền này và miền trong Miền bản ghi áp dụng (nếu có).

  • Ánh xạ trường: Xác định cách dữ liệu từ mô hình (ví dụ: Team Sales Target – team.sales.target) được sao chép sang các trường của Yêu cầu Phê duyệt (viin.approval.request).

Thông tin chung
Ấn Thêm một dòng để thực hiện ánh xạ:
  • Trường nguồn: Trường dữ liệu trên model nguồn được chọn, sẽ được ánh xạ sang trường tương ứng trên đề nghị phê duyệt.

  • Trường phê duyệt: Trường đích ở trên đề nghị phê duyệt.

  • Hướng đồng bộ: Xác định cách dữ liệu được đồng bộ giữa trường nguồn và trường đích.

  • Loại khỏi bản chụp dữ liệu: Snapshot là việc ghi nhận nhanh giá trị của trường tại một thời điểm cụ thể. Nếu giá trị sau đó thay đổi, hệ thống sẽ cảnh báo cho người dùng liên quan. Bạn có thể tắt snapshot cho trường này nếu không muốn nhận thông báo khi nó thay đổi.

Cảnh báo

  • Bạn phải ánh xạ đầy đủ các trường bắt buộc nếu muốn yêu cầu phê duyệt của loại này tự động kế thừa dữ liệu từ tài liệu nguồn.

  • Mỗi trường nguồn cần được ghép với một trường đích phù hợp, và hai trường phải có cùng kiểu dữ liệu.

  • Đối với các trường One2many, nhấn Ánh xạ trường con để ánh xạ các cột dòng.

Giá trị mặc định/Tự động điền

Tự động điền sẵn dữ liệu vào yêu cầu khi người dùng mở biểu mẫu hoặc trình hướng dẫn. Bạn có thể nhập mã Python để cấu hình dữ liệu mặc định cho:

  • Phần đầu của đề nghị

  • Dòng chi tiết của đề nghị

Default values configuration

Cảnh báo

  • Các khóa phải bắt đầu bằng default_ (ví dụ: default_user_id).

  • Những trường không tồn tại sẽ được hệ thống tự động bỏ qua.

  • Mặc định hệ thống chỉ điền dữ liệu vào các trường chưa có giá trị. Kích hoạt Luôn ghi đè để buộc thay thế dữ liệu hiện có.

Bạn cũng có thể sử dụng khu vực Onchange để viết mã Python nhằm tự động cập nhật dữ liệu trên các trường đích khi các trường kích hoạt bị thay đổi.

Form Onchange configuration

Hook nội tuyến/Tự động hóa quy trình

Khu vực này cho phép bạn định nghĩa các hook Python chạy trên máy chủ trước và sau các hành động phê duyệt (xác nhận, phê duyệt, hủy, từ chối, về nháp). Sử dụng các hook này để áp dụng quy tắc nghiệp vụ tùy chỉnh, kiểm tra bổ sung hoặc xử lý các tác động phụ.

Inline hook configuration

Các đoạn mã mẫu mặc định trong mỗi trường liệt kê sẵn các biến và hàm hỗ trợ khả dụng (như yêu cầu phê duyệt hiện tại, bản ghi nguồn đã ánh xạ, ngày tháng và các hàm tiện ích). Hãy bắt đầu bằng cách điều chỉnh các ví dụ này thay vì viết lại hoàn toàn từ đầu.

Hook inline sẽ được thực thi tương ứng với mỗi bước chuyển trạng thái của yêu cầu:

  • Hook Trước Xác nhận: Được thực thi trước hành động Xác nhận.

  • Hook Sau Xác nhận: Được thực thi sau hành động Xác nhận.

  • Hook Trước Phê duyệt: Được thực thi trước hành động Phê duyệt.

  • Hook Sau Phê duyệt: Được thực thi sau hành động Phê duyệt.

  • Hook Trước Từ chối: Được thực thi trước hành động Từ chối.

  • Hook Sau Từ chối: Được thực thi sau hành động Từ chối.

  • Hook Trước Hủy: Được thực thi trước hành động Hủy.

  • Hook Sau Hủy: Được thực thi sau hành động Hủy.

  • Hook Trước Đặt về dự thảo: Được thực thi trước hành động Đặt về dự thảo.

  • Hook Sau Đặt về dự thảo: Được thực thi sau hành động Đặt về dự thảo.

Cảnh báo

  • Các hook inline chạy trên máy chủ với quyền truy cập của chính bạn (hoặc cao hơn nếu sử dụng sudo()). Mã sai hoặc không an toàn có thể làm gián đoạn luồng phê duyệt, gây hỏng hoặc xóa dữ liệu, làm lộ thông tin nhạy cảm hoặc ảnh hưởng nghiêm trọng đến hiệu năng hệ thống cho tất cả người dùng.

  • Chỉ quản trị viên kỹ thuật có kinh nghiệm mới nên chỉnh sửa các hook này. Khi lưu và kích hoạt mã Python inline tùy chỉnh, bạn và tổ chức của mình hoàn toàn chịu trách nhiệm về hành vi và hậu quả của mã. Tác giả module và Viindoo không chịu trách nhiệm đối với bất kỳ mất mát dữ liệu, gián đoạn hệ thống, rò rỉ bảo mật hoặc vấn đề tuân thủ nào phát sinh từ mã tùy chỉnh của bạn.

  • Luôn kiểm thử và xác nhận thay đổi trên môi trường staging hoặc hệ thống sao lưu trước khi áp dụng vào môi trường production.