Gọi quy trình con (Call workflow)
Dùng bước Gọi quy trình con để chạy một quy trình đã xuất bản khác như một quy trình con, truyền đầu vào và đọc lại đầu ra của nó.
Mục đích
Bước Gọi quy trình con (Call workflow) chạy một quy trình đã xuất bản khác như một quy trình con: quy trình cha chờ quy trình con chạy xong rồi mới tiếp tục. Bạn ánh xạ giá trị của quy trình cha vào các trường biểu mẫu Bắt đầu mà quy trình con khai báo, và các bước phía sau đọc lại kết quả từ các bước Kết thúc của quy trình con.
Khi nào dùng
- Tái sử dụng một chuỗi bước lặp lại ở nhiều quy trình (ví dụ: chuỗi gửi thông báo, chuỗi cập nhật CRM) thay vì sao chép lại từng bước trong mỗi quy trình.
- Tách một quy trình phức tạp thành các quy trình con dễ bảo trì, mỗi quy trình con có bản xuất bản và lịch sử phiên bản riêng.
- Gọi một quy trình con xử lý trên một bản ghi cụ thể (ví dụ Hợp đồng, Hóa đơn) từ nhiều quy trình cha khác nhau, mỗi nơi truyền một bản ghi khác nhau.
Cài đặt chính
| Trường | Mô tả |
|---|---|
| Quy trình cần gọi (Workflow to call) | Ô tìm kiếm chọn quy trình đã xuất bản để gọi. Danh sách tải từ máy chủ theo từ khóa gõ vào — không giới hạn ở trang đầu. Quy trình đang chỉnh sửa không bao giờ xuất hiện trong danh sách. |
| Đầu vào (Inputs) | Với mỗi trường trong biểu mẫu Bắt đầu của quy trình con (tải động ngay khi chọn quy trình), ánh xạ một giá trị: tham chiếu biến, biểu thức {{ }}, hoặc giá trị cố định. Trường bắt buộc đánh dấu *. Trường không ánh xạ sẽ để trống khi quy trình con chạy. |
| Bản ghi mà quy trình con xử lý (Record the child run is about) | Chỉ hiện khi quy trình con khai báo chạy trên một bản ghi của một thực thể. Chọn biến tham chiếu tới bản ghi cần chuyển cho nó. Để trống để quy trình con dùng lại chủ thể của chính quy trình này. |
| Đầu ra từ các bước Kết thúc của quy trình con (Outputs) | Khối thông tin chỉ đọc, hiện khi quy trình đã chọn hợp lệ. Kết quả của lệnh gọi đọc được tại nodes.<id>.output.* trong các bước phía sau. Có nút Làm mới để tải lại đầu vào/đầu ra khi quy trình con được xuất bản lại. |
Ô Quy trình cần gọi chỉ liệt kê quy trình đã xuất bản và không gắn với trigger nào đang bật — một quy trình khởi chạy từ trigger là chạy theo sự kiện, không thể gọi thủ công như quy trình con. Quy trình đang chỉnh sửa cũng bị loại khỏi danh sách để tránh tự gọi chính nó.
Nếu bạn để trống Bản ghi mà quy trình con xử lý trong khi quy trình con khai báo chạy trên một thực thể khác với quy trình cha, trình thiết kế sẽ cảnh báo ngay tại đây — để trống, quy trình con sẽ kế thừa chủ thể của quy trình cha, nhưng chủ thể đó không đúng thực thể quy trình con cần, nên lệnh gọi sẽ lỗi khi chạy. Khi quy trình con khai báo chạy trên một tập bản ghi thay vì một bản ghi đơn, trường này không hiện — quy trình con tự dùng lại toàn bộ lựa chọn của phiên chạy hiện tại, không cần chọn gì.
Ví dụ
Trong quy trình Đề xuất mua sắm, sau khi hợp đồng được duyệt, thêm bước Gọi quy trình con để chạy quy trình con Thông báo phê duyệt (một quy trình đã xuất bản riêng, khai báo chạy trên một bản ghi Hợp đồng và nhận hai trường đầu vào nguoi_nhan, noi_dung):
| Trường cài đặt | Giá trị |
|---|---|
| Quy trình cần gọi | Thông báo phê duyệt |
Đầu vào — nguoi_nhan | {{ nodes.start.output.email_nguoi_de_xuat }} |
Đầu vào — noi_dung | Đơn đề xuất của bạn đã được duyệt. (giá trị cố định) |
| Bản ghi mà quy trình con xử lý | nodes.start.output.hop_dong |
Quy trình con Thông báo phê duyệt có một bước Kết thúc khai báo đầu ra email_id. Sau khi lệnh gọi hoàn tất, bước tiếp theo trong quy trình Đề xuất mua sắm đọc lại giá trị này qua nodes.goi-thong-bao.output.email_id, ví dụ để ghi vào bước Ghi bản ghi (Upsert record) cho thực thể Hợp đồng.
Xem thêm tổng quan vòng đời quy trình tại Tổng quan quy trình.