Hoạt động kiểm soát dòng giúp bạn quản lý cách chạy quy trình công việc. Bạn có thể tạm dừng thực thi, logic nhánh, chạy các bước song song hoặc lặp lại hành động.
Chờ sự kiện
Hoạt động này tạm dừng quy trình làm việc và chờ hành động của người dùng.
Tham số duy nhất là Sự kiện có thể được gửi bởi . Chọn nhóm người dùng được phép chạy lệnh.
Khi quy trình làm việc đạt đến bước này, nó sẽ dừng lại. Nó chỉ tiếp tục sau khi người dùng chọn cách tiếp tục quá trình.
Để chạy một lệnh:
- Đi đến Tự động hóa > Quy trình làm việc .
- Mở phần tử cần thiết.
- Mở Quy trình kinh doanh tab.
- Tìm lệnh bên cạnh Chạy hành động .
- nhấp chuột Thực thi lệnh .
tình trạng
Sử dụng hoạt động này để định tuyến luồng công việc vào các nhánh khác nhau dựa trên các điều kiện.
Các loại điều kiện có sẵn:
Trường phần tử . Chạy một nhánh nếu giá trị trường phần tử khớp với điều kiện.
Giá trị biến . Chạy một nhánh nếu các biến của quy trình làm việc phù hợp với điều kiện. Bạn cũng có thể sử dụng các tham số mẫu ở đây.
Hỗn hợp . Kết hợp nhiều nguồn trong một điều kiện. Bạn có thể kiểm tra các biến, trường phần tử và hằng mà không cần tạo các nhánh riêng biệt.
Đúng . Luôn luôn chạy. Sử dụng nó làm phương án dự phòng khi không có điều kiện nào khác phù hợp. Đặt nhánh này cuối cùng.
Mã PHP
(Chỉ tại chỗ). Chạy một nhánh nếu biểu thức PHP trả về
đúng
. Nếu nó trở lại
sai
, hệ thống sẽ kiểm tra điều kiện tiếp theo.
- Chỉ quản trị viên mới có thể định cấu hình loại này.
-
Chỉ sử dụng mã PHP. Các thông số như
{=Biến:Biến2_printable}không được hỗ trợ.
Trường tài liệu đã sửa đổi (Chỉ tại chỗ). Chạy một nhánh nếu các trường cụ thể được thay đổi. Chỉ khả dụng sau khi thiết lập mô-đun bổ sung.
Điều kiện hoạt động như thế nào
Các điều kiện được kiểm tra từ trái sang phải. Điều kiện khớp đầu tiên sẽ chạy nhánh của nó.
Nếu không có điều kiện nào phù hợp thì quy trình làm việc sẽ bỏ qua khối điều kiện và tiếp tục các bước tiếp theo.
Thiết lập Trường tài liệu đã sửa đổi (dành cho nhà phát triển)
Để sử dụng loại điều kiện này, hãy đặt cấu hình mô-đun và chuyển các trường đã sửa đổi khi bắt đầu quy trình làm việc:
CBPDocument::StartWorkflow( $arDocumentState["TEMPLATE_ID"], BizProcDocument::getDocumentComplexId($arParams["IBLOCK_TYPE_ID"], $arResult["ELEMENT_ID"]), array_merge($arBizProcParametersValues[$arDocumentState["TEMPLATE_ID"]], array( CBPDocument::PARAM_TAGRET_USER => "user_".intval($GLOBALS["USER"]->GetID()), CBPDocument::PARAM_MODIFIED_DOCUMENT_FIELDS => $modifiedFields )), $arErrorsTmp );
Sau đó kích hoạt hỗ trợ cho tính năng này trong tài liệu:
hàm tĩnh công khai isFeatureEnabled($documentType, $feature) { return in_array($feature, array(\CBPDocumentService::FEATURE_MARK_MODIFIED_FIELDS)); }
Lắng nghe sự kiện song song
Sử dụng cấu trúc này để định tuyến quy trình làm việc dựa trên sự kiện nào xảy ra trước.
Quy trình làm việc chạy nhiều nhánh cùng một lúc. Ngay khi một sự kiện xảy ra ở một nhánh, quy trình làm việc sẽ tiếp tục từ nhánh đó.
Để kiểm soát dòng chảy, sử dụng:
- Chờ sự kiện
- Tạm dừng thực thi
các Tạm dừng thực thi hoạt động cho phép bạn tiếp tục quy trình làm việc sau một thời gian đã đặt nếu không thực hiện hành động nào. Nếu bạn không sử dụng nó, quy trình làm việc sẽ đợi cho đến khi lệnh được thực thi ở một trong các nhánh.
Thực thi song song
Hoạt động này chạy nhiều nhánh cùng một lúc.
Quy trình làm việc đợi cho đến khi tất cả các nhánh kết thúc. Nếu một nhánh không hoàn thành, quy trình làm việc sẽ tạm dừng cho đến khi hoàn thành.
Đặt trạng thái
Hoạt động này thay đổi trạng thái quy trình làm việc.
sử dụng Hủy bỏ trạng thái hiện tại để chuyển ngay một mục sang trạng thái đã chọn. Quy trình làm việc không đợi trạng thái hiện tại kết thúc.
Trình vòng lặp
Hoạt động này lặp qua nhiều giá trị và chạy các hành động cho từng giá trị.
Chọn một biến nhiều giá trị, trường phần tử hoặc hằng số trong tham số hoạt động.
Sau đó, bạn có thể thêm từng tập hợp hành động sẽ chạy cho từng giá trị đã chọn.
Ví dụ:
Bạn có một
Liên kết tới nhân viên
biến có danh sách người dùng tài khoản. Bạn cần tạo một nhiệm vụ cho mỗi người dùng. Để thực hiện việc này, hãy chọn biến trong tham số vòng lặp và thêm
Tạo nhiệm vụ
hoạt động tới kết cấu.
Để sử dụng giá trị tiếp theo trong mỗi vòng lặp, hãy chèn Giá trị từ Kết quả bổ sung của Iterator.
Vòng lặp while
Vòng lặp chạy khi điều kiện đúng. Ví dụ: bạn có thể sử dụng nó để gửi thông báo cho tất cả nhân viên trong một bộ phận cho đến khi mọi người nhận được tin nhắn.
Tất cả các hoạt động bên trong vòng lặp đều chạy trong một bước, ngay cả khi điều kiện thay đổi trong khi chúng chạy. Khi bước này hoàn tất, vòng lặp sẽ kiểm tra lại điều kiện:
- Nếu điều kiện đúng thì vòng lặp tiếp tục.
- Nếu điều kiện sai thì vòng lặp dừng lại.
Kiểm tra Vòng lặp while cẩn thận trước khi bạn sử dụng nó để gửi email.
Thông số
Tiêu đề . Tên được hiển thị trong trình thiết kế quy trình công việc.
Loại điều kiện. Chọn loại điều kiện bạn cần:
- Trường phần tử: Kiểm tra các giá trị trong các trường phần tử quy trình làm việc.
- Hỗn hợp: Kiểm tra một số nguồn trong một điều kiện, chẳng hạn như biến, trường phần tử và hằng.
- Đúng: Chạy vòng lặp ngay lập tức mà không cần kiểm tra điều kiện.
- Mã PHP: Sử dụng PHP để xác định điều kiện. Chỉ quản trị viên mới có thể thiết lập nó. Tùy chọn này chỉ khả dụng trong Bitrix24 On-Premise.
Giới hạn phiên bản đám mây
Trong phiên bản đám mây, một vòng lặp có thể chạy tới 1.000 lần.
Nếu vượt quá giới hạn:
- Vòng lặp và tất cả các vòng lặp phụ dừng lại với điều kiện sai.
- Lỗi được ghi lại trong nhật ký quy trình làm việc.
- Quy trình công việc vẫn tiếp tục.