Quản lý loại 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, loại 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 loại yêu cầu phê duyệt, truy cập Phê duyệt > Cấu hình > Loại phê duyệt. Để tạo mới, bấm nút Tạo.

Ghi chú

Bạn cần quyền Quản trị viên của ứng dụng Phê duyệt để tạo loại phê duyệt. Xem Tổng quan ứng dụng Phê duyệt.

Tạo loại 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 loại đề nghị phê duyệt

  • Loại: Chung (Generic) và Huấn luyện (Coaching) luôn có sẵn. Mỗi mô-đun tích hợp bạn cài thêm sẽ bổ sung loại riêng, ví dụ Báo giá/Đơn mua, Hóa đơn bán hàng, Thanh toán chi, Phiếu kho, Điều chuyển kho, Định mức nguyên vật liệu, Lệnh sản xuất, Đề nghị cung ứng, Dự án, Nhiệm vụ, Bảng giờ công, Tuyển dụng, Hồ sơ ứng viên, Hợp đồng lao động, Tạm ứng nhân viên, Chi lương và Bảo trì.

  • 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 loại này.

  • Mô tả: Nhập mô tả chi tiết về loại 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ọ.

Cấu hình quy trình phê duyệt
  • 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 loại 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 loại này.

  • Số lượt duyệt tối thiểu: Số lần duyệt tối thiểu cho đề nghị thuộc loại 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, nhập mã vào tab Trình phân giải bằng Python của bước. Mã phải trả về những người dùng cần hỏi.

  • Mỗi bước còn có thể bị giới hạn bởi một điều kiện. Bấm vào bước để mở, rồi viết một biểu thức Python trong tab Khi nào áp dụng. Bước chỉ được dùng khi biểu thức đúng, ví dụ request.total > 50_000_000 để chỉ yêu cầu Giám đốc duyệt các đề nghị lớn. Để trống thì bước luôn được dùng. Tab này dành cho người dùng kỹ thuật.

Ghi chú

  • Mọi nhân viên sẽ tham gia quy trình phê duyệt nếu có quyền truy cập Phê duyệt: Cán bộ và được liên kết với một người dùng tương ứng.

  • Loại phê duyệt mới hỏi người quản lý của nhân viên ở bước đầu tiên (Quản lý phê duyệt). Loại phê duyệt cần ít nhất một người duyệt dùng được cho mỗi bước bắt buộc.

Cảnh báo

Khi một bước bắt buộc không có người duyệt dùng được lúc trình, Viindoo dừng việc trình và hiển thị thông báo nêu tên loại phê duyệt, bước và quyền truy cập có thể khắc phục. Đề nghị vẫn ở trạng thái Dự thảo. Hãy thêm người duyệt cho bước đó, hoặc cấp quyền truy cập Duyệt cho nhóm cho người quản lý, rồi trình lại. Bước không bắt buộc mà không có người duyệt sẽ được bỏ qua.

Sau khi điền các thông tin cần thiết, nhấn Lưu để lưu loại đề 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ị.

Cấu hình Kích hoạt các trường với nút bật Chiết khấu (%) của các dòng đề nghị

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.

Trong khối Các trường dòng, nút bật Chiết khấu (%) hiển thị cột % CK trên các dòng đề nghị. Đặt thành Tùy chọn hoặc Bắt buộc khi các dòng bạn phê duyệt có chiết khấu, ví dụ các dòng của một báo giá. Chiết khấu được áp dụng vào đơn giá trước khi nhân với số lượng, đã gồm thuế, và tổng của từng dòng cũng như của đề nghị dùng số tiền đã chiết khấu. Chân bảng các dòng đề nghị chỉ hiển thị tổng của Tổng phụ và Tổng.

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 đó.

Cấu hình Bật phê duyệt cho các mô hình

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:

    • Hai chiều: giá trị được sao chép theo cả hai chiều.

    • Chỉ Nguồn → Phê duyệt: giá trị chỉ được sao chép từ chứng từ nguồn sang đề nghị.

    • Chỉ Phê duyệt → Nguồn: giá trị chỉ được sao chép từ đề nghị về chứng từ nguồn.

    • Chỉ theo dõi: giá trị không bao giờ được sao chép và dòng ánh xạ không cần trường phê duyệt. Trường nguồn chỉ được so sánh: khi đề nghị đang chờ duyệt, thay đổi của trường nguồn được ghi chú trong phần trao đổi của đề nghị. Dòng chỉ theo dõi vẫn được coi là đầy đủ khi không có trường phê duyệt.

  • Loại khỏi bản chụp dữ liệu: Bản chụp dữ liệu ghi lại các trường ánh xạ khi đề nghị được trình. Nếu một trường ánh xạ của chứng từ nguồn thay đổi sau khi trình, đề nghị hiển thị cảnh báo và phần trao đổi nhận một ghi chú. Chọn tùy chọn này để giữ trường vẫn được đồng bộ nhưng không đưa vào phép so sánh đó.

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ị

Cấu hình Giá trị mặc định

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.

Cấu hình Tự điền khi đổi giá trị

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 thao tác phê duyệt (xác nhận, phê duyệt, hủy, từ chối, dự thảo, hoàn thành). Dùng các hook này để áp dụng quy tắc nghiệp vụ riêng, kiểm tra bổ sung hoặc tác động phụ. Cách viết hook được mô tả cho quản trị hệ thống tại Cách cấu hình loại phê duyệt dành cho quản trị hệ thống.

Cấu hình Hook Python

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.

Áp dụng hook nội tuyến cho từng chuyển trạng thái của đề nghị. Mỗi thao tác có một hook trước, chạy trước thao tác, và một hook sau, chạy sau thao tác:

  • Xác nhận: Hook trước và Hook sau

  • Phê duyệt: Hook trước và Hook sau

  • Từ chối: Hook trước và Hook sau

  • Hủy: Hook trước và Hook sau

  • Đặt về dự thảo: Hook trước và Hook sau

  • Hoàn thành: Hook trước và Hook sau

Báo lỗi trong hook trước sẽ chặn thao tác và hiển thị thông báo cho người dùng. Xem Phê duyệt có chặn các chứng từ nghiệp vụ của tôi không? về các trường hợp doanh nghiệp tự thêm một chốt chặn như vậy.

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.