Tài liệu này được dịch bằng AI. Để biết thông tin chính xác, vui lòng tham khảo phiên bản tiếng Anh.
Hệ thống ngữ cảnh của luồng công việc NocoBase được chia thành ba lớp, tương ứng với các phạm vi khác nhau. Sử dụng hợp lý có thể thực hiện chia sẻ và cô lập linh hoạt các dịch vụ, cấu hình và dữ liệu, nâng cao khả năng bảo trì và mở rộng nghiệp vụ.
mode: 'runtime' | 'settings', tương ứng với trạng thái thực thi và trạng thái cấu hình.Tất cả FlowEngineContext (Ngữ cảnh toàn cục), FlowModelContext (Ngữ cảnh mô hình), FlowRuntimeContext (Ngữ cảnh thực thi luồng), v.v., đều là các lớp con hoặc thực thể của FlowContext.
FlowModelContext thông qua cơ chế ủy quyền (delegate) có thể truy cập các thuộc tính và phương thức của FlowEngineContext, thực hiện chia sẻ năng lực toàn cục.FlowModelContext của mô hình con thông qua cơ chế ủy quyền (delegate) có thể truy cập ngữ cảnh của mô hình cha (quan hệ đồng bộ), hỗ trợ ghi đè cùng tên.FlowRuntimeContext luôn truy cập FlowModelContext tương ứng thông qua cơ chế ủy quyền (delegate), nhưng không truyền ngược lên trên.FlowRuntimeContext hỗ trợ hai chế độ, được phân biệt bằng tham số mode:
mode: 'runtime' (Trạng thái thực thi): Dùng cho giai đoạn thực thi thực tế của luồng, các thuộc tính và phương thức trả về dữ liệu thực. Ví dụ:
mode: 'settings' (Trạng thái cấu hình): Dùng cho giai đoạn thiết kế và cấu hình luồng, truy cập thuộc tính trả về chuỗi mẫu biến, thuận tiện cho việc chọn biểu thức và biến. Ví dụ:
Thiết kế chế độ kép này vừa đảm bảo tính khả dụng của dữ liệu khi thực thi, vừa thuận tiện cho việc tham chiếu biến và tạo biểu thức khi cấu hình, nâng cao tính linh hoạt và dễ sử dụng của luồng công việc.
Trong một số kịch bản (ví dụ: chỉnh sửa mã RunJS của JS*Model, AI coding), cần để “bên gọi” hiểu được các thông tin sau mà không cần thực thi mã:
ctx có những năng lực tĩnh nào (tài liệu API, tham số, ví dụ, liên kết tài liệu, v.v.)await ctx.getApiInfos(options?) (Thông tin API tĩnh)await ctx.getVarInfos(options?) (Thông tin cấu trúc biến)defineProperty(...).meta (bao gồm meta factory)path và kiểm soát độ sâu maxDepthTham số thường dùng:
maxDepth: Cấp độ mở rộng tối đa (mặc định là 3)path: string | string[]: Cắt tỉa, chỉ xuất cây con của đường dẫn được chỉ địnhawait ctx.getEnvInfos() (Bản sao nhanh môi trường thực thi)Cấu trúc nút (rút gọn):