เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
ระบบ Context ของ NocoBase FlowEngine แบ่งออกเป็นสามเลเยอร์ ซึ่งแต่ละเลเยอร์จะสอดคล้องกับขอบเขตการทำงานที่แตกต่างกัน การใช้งานอย่างเหมาะสมจะช่วยให้คุณสามารถแชร์และแยกส่วนบริการ, การตั้งค่า และข้อมูลได้อย่างยืดหยุ่น ซึ่งจะช่วยเพิ่มความสามารถในการบำรุงรักษาและขยายระบบของธุรกิจได้ครับ
mode: 'runtime' | 'settings' ซึ่งจะสอดคล้องกับโหมดรันไทม์ (runtime) และโหมดตั้งค่า (settings) ตามลำดับContext ทั้งหมด ไม่ว่าจะเป็น FlowEngineContext (Global Context), FlowModelContext (Model Context), FlowRuntimeContext (Flow Runtime Context) ล้วนเป็นซับคลาส (subclass) หรืออินสแตนซ์ (instance) ของ FlowContext ครับ
FlowModelContext สามารถเข้าถึงคุณสมบัติและเมธอดของ FlowEngineContext ได้ผ่านกลไกการรับช่วงต่อ (delegate) เพื่อให้สามารถแชร์ความสามารถระดับ Global ได้FlowModelContext ของซับโมเดลสามารถเข้าถึง Context ของโมเดลหลัก (ความสัมพันธ์แบบซิงโครนัส) ได้ผ่านกลไกการรับช่วงต่อ (delegate) และรองรับการเขียนทับชื่อเดียวกันFlowRuntimeContext จะเข้าถึง FlowModelContext ที่เกี่ยวข้องเสมอผ่านกลไกการรับช่วงต่อ (delegate) แต่จะไม่ส่งการเปลี่ยนแปลงกลับขึ้นไปด้านบนFlowRuntimeContext รองรับสองโหมด ซึ่งแยกความแตกต่างด้วยพารามิเตอร์ mode ดังนี้ครับ
mode: 'runtime' (โหมดรันไทม์): ใช้ในขั้นตอนการทำงานจริงของเวิร์กโฟลว์ คุณสมบัติและเมธอดจะส่งคืนข้อมูลจริง ตัวอย่างเช่น:
mode: 'settings' (โหมดตั้งค่า): ใช้ในขั้นตอนการออกแบบและตั้งค่าเวิร์กโฟลว์ การเข้าถึงคุณสมบัติจะส่งคืนสตริงเทมเพลตตัวแปร ซึ่งช่วยให้เลือกนิพจน์และตัวแปรได้ง่ายขึ้น ตัวอย่างเช่น:
การออกแบบสองโหมดนี้ ไม่เพียงแต่รับประกันความพร้อมใช้งานของข้อมูลในขณะรันไทม์ แต่ยังอำนวยความสะดวกในการอ้างอิงตัวแปรและการสร้างนิพจน์ในขณะตั้งค่า ซึ่งช่วยเพิ่มความยืดหยุ่นและใช้งานง่ายให้กับ FlowEngine ครับ