Tham chiếu API
Phía Server
Các API có sẵn trong cấu trúc package phía server như đoạn code dưới đây:
PluginWorkflowServer
Class plugin Workflow.
Thông thường khi ứng dụng đang chạy, ở bất kỳ nơi nào có thể lấy được instance ứng dụng app thì đều có thể gọi app.pm.get<PluginWorkflowServer>(PluginWorkflowServer) để lấy instance plugin Workflow (dưới đây gọi là plugin).
registerTrigger()
Mở rộng đăng ký loại Trigger mới.
Chữ ký
registerTrigger(type: string, trigger: typeof Trigger | Trigger })
Tham số
Ví dụ
registerInstruction()
Mở rộng đăng ký loại Node mới.
Chữ ký
registerInstruction(type: string, instruction: typeof Instruction | Instruction })
Tham số
Ví dụ
trigger()
Kích hoạt Workflow cụ thể. Chủ yếu dùng trong Trigger tùy chỉnh, để kích hoạt Workflow tương ứng khi nghe được sự kiện tùy chỉnh nào đó.
Chữ ký
trigger(workflow: Workflow, context: any)
Tham số
context hiện là bắt buộc, nếu không cung cấp thì Workflow đó sẽ không được kích hoạt.
Ví dụ
resume()
Khôi phục thực thi Workflow đang chờ với một Task Node cụ thể.
- Chỉ có Workflow đang ở trạng thái chờ (
EXECUTION_STATUS.STARTED) mới có thể được khôi phục thực thi. - Chỉ có Task Node đang ở trạng thái chờ (
JOB_STATUS.PENDING) mới có thể được khôi phục thực thi.
Chữ ký
resume(job: JobModel)
Tham số
Đối tượng Task được truyền vào thường là đối tượng sau khi cập nhật, và thường sẽ cập nhật status thành giá trị khác JOB_STATUS.PENDING, nếu không sẽ tiếp tục chờ.
Ví dụ
Xem chi tiết tại mã nguồn.
Trigger
Class cơ sở của Trigger, dùng để mở rộng loại Trigger tùy chỉnh.
on/off được dùng để đăng ký/hủy đăng ký lắng nghe sự kiện khi Workflow được bật/tắt, tham số được truyền vào là instance Workflow của Trigger tương ứng, có thể xử lý theo cấu hình tương ứng. Một số loại Trigger nếu đã lắng nghe sự kiện ở phạm vi toàn cục thì cũng có thể không cần triển khai hai phương thức này. Ví dụ trong Trigger định kỳ, có thể đăng ký timer trong on, hủy đăng ký timer trong off.
Instruction
Class cơ sở của loại Instruction, dùng để mở rộng loại Instruction tùy chỉnh.
Kiểu liên quan
getScope có thể tham khảo cách triển khai Node vòng lặp, được dùng để cung cấp nội dung biến cục bộ của nhánh.
EXECUTION_STATUS
Bảng hằng số trạng thái kế hoạch thực thi Workflow, dùng để xác định trạng thái hiện tại của kế hoạch thực thi tương ứng.
Ngoài ba trạng thái đầu, các trạng thái còn lại đều biểu thị trạng thái thất bại nhưng có thể dùng để mô tả các nguyên nhân thất bại khác nhau.
JOB_STATUS
Bảng hằng số trạng thái Task Node của Workflow, dùng để xác định trạng thái hiện tại của Task Node tương ứng, trạng thái sinh ra bởi Node cũng đồng thời ảnh hưởng đến trạng thái của toàn bộ kế hoạch thực thi.
Phía Client
Các API có sẵn trong cấu trúc package phía client như đoạn code dưới đây:
PluginWorkflowClient
registerTrigger()
Đăng ký panel cấu hình tương ứng với loại Trigger.
Chữ ký
registerTrigger(type: string, trigger: typeof Trigger | Trigger): void
Tham số
registerInstruction()
Đăng ký panel cấu hình tương ứng với loại Node.
Chữ ký
registerInstruction(type: string, instruction: typeof Instruction | Instruction): void
Tham số
registerInstructionGroup()
Đăng ký nhóm loại Node. NocoBase mặc định cung cấp 4 nhóm loại Node:
'control': nhóm điều khiển'collection': nhóm thao tác bảng dữ liệu'manual': nhóm xử lý thủ công'extended': nhóm mở rộng khác
Nếu cần mở rộng thêm nhóm khác, có thể sử dụng phương thức này để đăng ký.
Chữ ký
registerInstructionGroup(type: string, group: { label: string }): void
Tham số
Ví dụ
Trigger
Class cơ sở của Trigger, dùng để mở rộng loại Trigger tùy chỉnh.
- Nếu
useVariableskhông được thiết lập, có nghĩa loại Trigger này không cung cấp khả năng lấy giá trị, các Node trong quy trình không thể chọn dữ liệu ngữ cảnh của Trigger.
Instruction
Class cơ sở của Instruction, dùng để mở rộng loại Node tùy chỉnh.
Kiểu liên quan
- Nếu
useVariableskhông được thiết lập, có nghĩa loại Node này không cung cấp khả năng lấy giá trị, các Node trong quy trình không thể chọn dữ liệu kết quả của loại Node này. Nếu giá trị kết quả là duy nhất (không thể chọn), chỉ cần trả về một nội dung tĩnh có thể biểu thị thông tin tương ứng (tham khảo: mã nguồn Node tính toán). Nếu cần có thể chọn (như một thuộc tính trong Object), có thể tự định nghĩa Component chọn tương ứng để xuất ra (tham khảo: mã nguồn Node thêm dữ liệu). Componentlà Component render tùy chỉnh của Node, khi việc render Node mặc định không thỏa mãn thì có thể hoàn toàn ghi đè để sử dụng, thực hiện render view tùy chỉnh cho Node. Ví dụ nếu cần cung cấp thêm các nút thao tác hoặc tương tác khác cho Node bắt đầu của loại nhánh, cần sử dụng phương thức này (tham khảo: mã nguồn nhánh song song).useInitializersđược dùng để cung cấp phương thức initializer Block, ví dụ trong Node thủ công có thể khởi tạo Block người dùng liên quan dựa trên Node phía trên. Nếu cung cấp phương thức này, sẽ khả dụng khi initializer Block trong cấu hình giao diện Node thủ công (tham khảo: mã nguồn Node thêm dữ liệu).isAvailablechủ yếu được dùng để kiểm tra Node có thể được sử dụng (thêm vào) trong môi trường hiện tại hay không. Môi trường hiện tại bao gồm Workflow hiện tại, Node phía trên và chỉ số nhánh hiện tại...

