jBPM5 - คู่มือฉบับย่อ
JBPM ย่อมาจาก "Java Business Process Management" เป็นผลิตภัณฑ์ JBoss ซึ่งเป็นกรอบงานโอเพ่นซอร์ส ก่อนที่จะดำเนินการต่อไปให้เรากำหนดกระบวนการทางธุรกิจก่อน
กระบวนการทางธุรกิจคืออะไร?
ตามความหมายกระบวนการทางธุรกิจคือลำดับของงานที่เกิดขึ้นตามลำดับที่ทำซ้ำได้ซึ่งดำเนินการโดยมนุษย์และ / หรือระบบเพื่อให้บรรลุเป้าหมายทางธุรกิจ อธิบายถึงลำดับ (โดยใช้ผังงาน) ซึ่งจะต้องดำเนินการชุดขั้นตอนต่างๆ กระบวนการทางธุรกิจสามารถปรับปรุงการมองเห็นและความคล่องตัวของตรรกะทางธุรกิจได้อย่างมาก
ให้เราเป็นตัวอย่าง ภาพหน้าจอต่อไปนี้แสดงขั้นตอนการทำงาน / ผังงานที่ผู้เชี่ยวชาญด้านไอทีส่วนใหญ่สามารถเกี่ยวข้องได้ เป็นกระบวนการทั่วไปที่เกิดขึ้นในองค์กรส่วนใหญ่ในการประเมินพนักงานตามผลงานของพวกเขา

กระบวนการเกิดขึ้นตามลำดับต่อไปนี้ -
พนักงานประเมินตนเองและส่งรายงานให้ผู้จัดการโครงการ
จากนั้นผู้จัดการโครงการและผู้จัดการฝ่ายทรัพยากรบุคคลจะประเมินประสิทธิภาพของคุณ จากการประเมินพวกเขาให้คะแนนพนักงาน
จากนั้นคะแนนขั้นสุดท้ายหรือข้อเสนอแนะด้านประสิทธิภาพจะถูกส่งกลับไปยังพนักงาน
กระบวนการนี้ใช้ได้กับพนักงานเกือบทั้งหมดดังนั้นจึงเป็นตัวอย่างที่ดีมากในการทำความเข้าใจกระบวนการทางธุรกิจ มันเป็นลำดับของงานและเกิดขึ้นตามลำดับเฉพาะ
jBPM คืออะไร?
กระบวนการทางธุรกิจเป็นแนวคิดหลักในการทำความเข้าใจกรอบขององค์กร เทคโนโลยีเช่น jBPM ช่วยในการจัดการกระบวนการทางธุรกิจที่ซับซ้อนได้อย่างมีประสิทธิภาพ JBPM เป็นเครื่องมือที่สามารถจัดระเบียบกระบวนการทางธุรกิจได้อย่างมีประสิทธิภาพ โดยทั่วไปแล้วแอปพลิเคชันระดับองค์กรทุกตัวจะมีลำดับของงานที่ดำเนินการตามลำดับที่เจาะจงและกระบวนการเหล่านั้นสามารถจัดระเบียบได้ด้วยความช่วยเหลือของ jBPM
ความงามของ jBPM คือมันคล้ายกับผังงาน นักวิเคราะห์ธุรกิจสามารถเข้าใจได้ง่ายเช่นกัน jBPM สามารถฝังในแอ็พพลิเคชัน Java และเรียกใช้เป็นบริการ
คุณสมบัติของ JBPM
jBPM เป็นโปรแกรมประมวลผลแบบโอเพนซอร์สที่มีน้ำหนักเบาและสามารถฝังได้อย่างสมบูรณ์ซึ่งเขียนด้วย Java คุณสมบัติที่โดดเด่นที่สุดมีดังต่อไปนี้ -
jBPM ดำเนินการกระบวนการทางธุรกิจที่ออกแบบโดยใช้ข้อกำหนด BPMN 2.0
jBPM สามารถรวมเข้ากับ Eclipse และ IDE ที่คล้ายกันได้อย่างสมบูรณ์เพื่อให้การสนับสนุนการลากและวางเพื่อสร้างเวิร์กโฟลว์
jBPM มีเครื่องมือ UI ที่พร้อมใช้งานสำหรับนักวิเคราะห์ธุรกิจและผู้ใช้ตั้งแต่ขั้นตอนการออกแบบ
jBPM สนับสนุนการคงอยู่และการจัดการธุรกรรมด้วยความช่วยเหลือของ JPA และ JTA
หนึ่งสามารถกำหนดตัวจัดการไอเท็มงานแบบกำหนดเองเพื่อสร้างงานที่ผู้ใช้กำหนดเองซึ่งสามารถใช้เป็นส่วนประกอบในภายหลังสำหรับเวิร์กโฟลว์อื่น
ต่อไปนี้เป็นข้อกำหนดเบื้องต้นในการติดตั้งปลั๊กอิน jBPM -
- Java 1.5 (หรือสูงกว่า) SE JDK
- Eclipse 4.2 หรือเวอร์ชันใด ๆ และปลั๊กอิน jBPM
เนื่องจาก jBPM เขียนด้วย Java เราจะกล่าวถึงวิธีการเพิ่มปลั๊กอินที่ต้องการในส่วนนี้ พิจารณาผู้ใช้ Java สูงสุดที่ใช้ Eclipse ให้เราดูวิธีเพิ่มปลั๊กอิน jBPM ใน Eclipse
ดาวน์โหลดไบนารีจากลิงค์ต่อไปนี้ - http://download.jboss.org/drools/release/5.3.0.Final/
อย่าสับสนเมื่อเห็น Drools ที่นี่ ใช้ปลั๊กอินเดียวกันสำหรับ jBPM หากคุณติดตั้งปลั๊กอิน Drools แล้วคุณสามารถข้ามขั้นตอนการติดตั้งได้

แตกไฟล์ลงในฮาร์ดดิสก์ของคุณ จากนั้นเปิด Eclipse และไปที่ Help → Install New Software

คลิก Add Repository -

คลิก Local จากนั้นเลือก "... / binaries / org.drools.updatesite" (ที่คุณดาวน์โหลดบนเครื่องของคุณ)

เลือก Drools and jBPM จากนั้นคลิกไฟล์ Next ปุ่ม.

อีกครั้งคลิก Next และเลือก“ ฉันยอมรับเงื่อนไขของข้อตกลงสิทธิ์การใช้งาน” จากนั้นคลิก Finish. การติดตั้งซอฟต์แวร์เริ่มต้น -

โพสต์การติดตั้งสำเร็จคุณจะได้รับกล่องโต้ตอบต่อไปนี้ -

คลิก Yes. Eclipse รีสตาร์ท ตอนนี้ไปที่Windows → Preferences → Drools → Drools Flow Nodes

หากคุณสามารถเห็นโหนดดังที่แสดงในภาพหน้าจอด้านบนแสดงว่าติดตั้งปลั๊กอินสำเร็จแล้ว ตอนนี้เราพร้อมที่จะเขียนโปรแกรม jBPM แรกของเราแล้ว
ในบทนี้เราจะเขียนโปรแกรมแรกของเรา "Hello World" โดยใช้ jBPM ทำตามขั้นตอนด้านล่าง -
ไปที่ไฟล์→ใหม่→โครงการ Drools -

คลิก Next. ตั้งชื่อที่เหมาะสมสำหรับโครงการแรก: "HelloWorld" ในกรณีของเรา

คลิก Next. เลือกช่องทำเครื่องหมายสองช่องด้านล่าง ได้แก่ -
- เพิ่มไฟล์กระบวนการ HelloWorld ตัวอย่างในโปรเจ็กต์นี้
- เพิ่มคลาสตัวอย่างสำหรับการโหลดและดำเนินการกระบวนการ HelloWorld

คลิก Next. คลิกกำหนดค่าการตั้งค่าพื้นที่ทำงาน (ทำเครื่องหมายเป็นสีแดงในภาพหน้าจอต่อไปนี้) -

คลิก Add ปุ่ม -

เมื่อคุณคลิกไฟล์ Addหน้าจอต่อไปนี้จะปรากฏขึ้น คลิก "สร้างรันไทม์ Drools5 ใหม่"

กำหนดเส้นทางจนถึงโฟลเดอร์ไบนารีที่คุณดาวน์โหลดdroolsjbpm-tools-distribution-5.3.0.Final.zip
จากนั้นเลือก Runtimes ที่ติดตั้ง Drools แล้วคลิก OK.

หน้าจอต่อไปนี้จะปรากฏขึ้น คลิกFinish ปุ่ม.

ตอนนี้เปิดมุมมอง Package Explorer ใน Eclipse คุณจะเห็นหน้าจอต่อไปนี้ -

ProcessTest.java คลาสคือคลาสสำหรับโหลดไฟล์ ruleflow (rf) และ ruleflow.rf เป็นขั้นตอนกฎพื้นฐานที่สร้างขึ้นสำหรับโครงการ HelloWorld
ดับเบิลคลิกที่ไฟล์ ruleflow.rf และคุณจะเห็นกฎต่อไปนี้ -

GREEN วงกลมแสดงจุดเริ่มต้นของเวิร์กโฟลว์ในขณะที่ RED วงกลมคือจุดสิ้นสุดของเวิร์กโฟลว์
แผงที่แสดงทางด้านซ้ายมือมีส่วนประกอบต่างๆที่แสดงรายการซึ่งใช้ในเวิร์กโฟลว์ นอกเหนือจาก START และ END แล้วยังมีส่วนประกอบอีกมากมายที่สามารถใช้ในเวิร์กโฟลว์และเราจะกล่าวถึงในส่วนถัดไป
สวัสดีระหว่างเหตุการณ์เริ่มต้นและสิ้นสุดเป็นงานสคริปต์และชื่อของงานสคริปต์คือ Hello. หากต้องการดูว่าเขียนโค้ดอะไรในงานสคริปต์ "สวัสดี" ไปที่ Windows →แสดงมุมมอง→อื่น ๆ →คุณสมบัติ

Note - ในขณะที่ทำงานกับ jBPM โปรดเปิดมุมมองคุณสมบัติไว้ตลอดเวลาเนื่องจากการกำหนดค่าทั้งหมดจะปรากฏในมุมมองคุณสมบัติเท่านั้น
คลิก OKปุ่ม. ตอนนี้เลือกHello และคุณสามารถดูคุณสมบัติของเหตุการณ์ "สวัสดี" -

หากต้องการดูรหัสทั้งหมดที่เขียนภายในกิจกรรม "สวัสดี" ให้เลือก Action ทรัพย์สิน.

วงกลมที่มีเครื่องหมายสีแดงคือการแก้ไขคุณสมบัติการดำเนินการ เมื่อคุณคลิกที่แก้ไข -

คุณสามารถแก้ไขสิ่งนี้และเขียนโค้ดที่คุณต้องการดำเนินการภายในงานสคริปต์ "สวัสดี" ให้เราแก้ไข -

คลิก OK. ตอนนี้เปิดคลาส ProcessTest.java และเรียกใช้เป็น Java Application ด้านล่างคือผลลัพธ์ -

คำศัพท์ที่ใช้ในคลาส ProcessTest.java เหมือนกับที่ใช้สำหรับ Drools จุดที่ควรทราบในคลาส ProcessTest.java คือ -
ksession.startProcess("com.sample.ruleflow");
เมื่อคุณเขียนโค้ดสำหรับเริ่มต้นกระบวนการสตริงจะถูกส่งไปยัง startProcess method คือคุณสมบัติ id เมื่อเราเปิดเวิร์กโฟลว์

แกน BPMS คือหัวใจของ BPM ภาพประกอบต่อไปนี้แสดงถึงแกน BPMS และส่วนประกอบต่างๆ

โมดูลความหมาย
โมดูลความหมายกำหนดความหมายของภาษา (แต่ละคำหมายถึงอะไร) และจะแปลอย่างไรสำหรับโครงสร้างภายในของกลไกกระบวนการที่พร้อมจะดำเนินการ โดยพื้นฐานแล้วโมดูลนี้ประกอบด้วยข้อมูลสำคัญในการทำความเข้าใจภาษา BPMN2
Process Engine
กลไกกระบวนการเป็นเครื่องมือที่รับผิดชอบในการดำเนินกระบวนการทางธุรกิจของเราอย่างแท้จริง กลไกกระบวนการมีหน้าที่สร้างอินสแตนซ์กระบวนการใหม่และรักษาสถานะสำหรับแต่ละอินสแตนซ์ ภายในรหัสกลไกกระบวนการโครงสร้างภายในถูกกำหนดเพื่อแสดงถึงแต่ละกิจกรรมที่อยู่ในข้อกำหนดกระบวนการของเรา กลไกทั้งหมดที่ใช้เพื่อสร้างอินสแตนซ์นิยามกระบวนการเหล่านี้จะดำเนินการตามที่กำหนดไว้ในกลไกกระบวนการ
ความคงอยู่และการทำธุรกรรม
ในแอปพลิเคชันระดับองค์กรส่วนใหญ่การโต้ตอบทั้งหมดจะต้องทำงานภายในขอบเขตธุรกรรมและเราต้องจัดการกับระบบ API และการออกแบบที่แตกต่างกัน นอกจากนี้เราต้องมีกลไกที่ยืดหยุ่นเพื่อกำหนด -
วิธีจัดการกับกระบวนการทำงานที่ยาวนาน
เราจะจัดเก็บข้อมูลเกี่ยวกับสถานะของกระบวนการและข้อมูลที่กระบวนการจัดการได้อย่างไรและเมื่อใด
เราจำเป็นต้องสร้างกระทำหรือย้อนกลับธุรกรรมกลไกกระบวนการอย่างไรและเมื่อใด
ข้อยกเว้นทางธุรกิจใดที่สามารถย้อนกลับหรือชดเชยการดำเนินการทางธุรกิจที่ดำเนินการไปแล้วได้
ประเด็นทั้งหมดข้างต้นครอบคลุมโดยการคงอยู่และองค์ประกอบการทำธุรกรรมภายใน jBPM
บันทึกการตรวจสอบ / ประวัติ
โมดูลนี้มีหน้าที่ให้วิธีการสอบถามแก่ผู้ใช้เกี่ยวกับวิธีดำเนินการของกระบวนการของเรา ข้อมูลนี้รวมถึงข้อมูลประวัติเกี่ยวกับกระบวนการที่สิ้นสุดไปแล้วและข้อมูลล่าสุดเกี่ยวกับกระบวนการที่กำลังดำเนินการ
Business Activity Monitoring (BAM) เครื่องมือและแดชบอร์ดข้อมูลเป็นไคลเอนต์ที่พบบ่อยที่สุดสำหรับข้อมูลที่สร้างโดยโมดูลนี้ The Audit/History Logs โดยทั่วไปจะใช้โมดูลเพื่อดึงข้อมูลและเมตริกที่เป็นประโยชน์ซึ่งจะทำงานร่วมกับเครื่องมือต่างๆที่ออกแบบมาเพื่อแสดงข้อมูลนี้ตามนั้น
ภาพหน้าจอต่อไปนี้แสดงส่วนประกอบเวิร์กโฟลว์ต่างๆที่มีอยู่ใน jBPM 5 เมื่อใช้ส่วนประกอบเหล่านี้คุณสามารถสร้างเวิร์กโฟลว์เพื่อจัดระเบียบกระบวนการของคุณ

คุณสามารถสร้างงานที่กำหนดเองได้เช่นกัน แต่จะครอบคลุมในภายหลัง นอกจากนี้ยังมีงานบริการที่สามารถใช้ในการจัดกระบวนการ
Start Event- นี่คือโหนดแรกที่ดำเนินการในทุกกระบวนการ สามารถมีโหนดเริ่มต้นเพียงโหนดเดียวในกระบวนการของคุณ
End Event- โหนดนี้ส่งสัญญาณการสิ้นสุดกระบวนการ โหนดประเภทนี้อาจเกิดขึ้นได้มากกว่าหนึ่งครั้งในกระบวนการ
Rule Task - เป็นโหนดที่ประเมินกลุ่ม RuleFlow ซึ่งเป็นกลุ่มของกฎ Drools ภายใต้ขอบเขตที่มีชื่อเดียวกัน
Gateway (diverge) aka Split- โหนดเฉพาะนี้สร้างเส้นทาง / วิธีใหม่ในกระบวนการ มีการเชื่อมต่อขาออกตั้งแต่สองรายการขึ้นไป คุณสามารถเลือกระหว่าง Splits / Gates ได้สามประเภท
AND GATE - ในกรณีที่ขั้นตอนการดำเนินการต่อไปยังการเชื่อมต่อขาออกทั้งหมดในเวลาเดียวกัน
XOR GATE - ซึ่งไปยังเส้นทางขาออกเพียงเส้นทางเดียวตามข้อ จำกัด ที่กำหนดไว้ล่วงหน้าที่กำหนดไว้ในเวิร์กโฟลว์
OR GATE - โดยที่โฟลว์ดำเนินการตามการประเมินข้อ จำกัด ขาออกทั้งหมดและเส้นทางนั้นถูกเปิดใช้งานโดยที่ข้อ จำกัด ถูกประเมินเป็นจริง
Gateway (converge) aka Join- การรวมนี้เป็นการย้อนกลับของการแยก รวมหลายเส้นทางเข้าด้วยกัน การเข้าร่วม / ประตูสามารถมีได้สี่ประเภท -
AND - ไหลต่อไปเมื่อกิ่งทั้งหมดสมบูรณ์
XOR - การไหลจะดำเนินต่อไปเมื่อมีอย่างน้อยหนึ่งสาขา
Discriminator- เช่นเดียวกับ XOR จะดำเนินต่อไปหากสาขาใดสาขาหนึ่งเสร็จสมบูรณ์ แต่แตกต่างจาก XOR ตรงที่จะลงทะเบียนความสมบูรณ์ของสาขาอื่น ๆ จนกว่าการเชื่อมต่อทั้งหมดจะเสร็จสมบูรณ์ เมื่อเกิดขึ้นโหนดจะรีเซ็ตและสามารถป้อนได้อีกครั้งเมื่อสาขาขาเข้าเปิดใช้งานและวงจรจะเริ่มต้นใหม่อีกครั้ง
N-of-M - กระแสจะดำเนินต่อไปเมื่อ n จำนวน mสาขาเสร็จสมบูรณ์ คุณต้องระบุไฟล์n (หมายเลข) ในขณะที่กำหนดค่าเกตว่าควรมีกี่สาขาก่อนที่โฟลว์จะออก
Reusable Sub-Process- เรียกกระบวนการอื่น สิ่งนี้มีประโยชน์มากในการรวบรวมกระบวนการขนาดเล็กหลาย ๆ กระบวนการให้เป็นกระบวนการที่ใหญ่ขึ้น อันที่ใหญ่กว่านี้อาจเป็นกระบวนการประสานงาน คุณสามารถกำหนดค่ากระบวนการโทรเพื่อรอให้การโทรเสร็จสมบูรณ์และยังมีวงจรชีวิตที่ไม่แน่นอนของพาเรนต์
Script Task - โหนดที่สามารถรันโค้ดง่ายๆ
Timer Event- โหนดประเภทนี้จะเริ่มจับเวลาและทริกเกอร์เมื่อหมดเวลา เปิดใช้งานกระบวนการที่เกี่ยวข้องกับเวลาและงานซ้ำ ๆ
Error Event- โหนดประเภทนี้ส่งสัญญาณถึงเงื่อนไขข้อผิดพลาดในกระบวนการ ไม่มีการเชื่อมต่อขาออก ระบุ FaultName และ FaultVariable เอ็นจิ้นจะค้นหาตัวจัดการข้อยกเว้นที่ตรงกับ FaultName และเก็บข้อมูล Fault ไว้ในตัวแปรที่กำหนดโดย FaultVariable
Message Event- จะทริกเกอร์เมื่อเหตุการณ์ที่กำหนดไว้ล่วงหน้าถูกปล่อยออกมา อาจเป็นได้ทั้งเหตุการณ์ภายใน (ส่งสัญญาณภายในกระบวนการ) หรือภายนอก (ส่งสัญญาณโดยเอนทิตีภายนอกอื่นที่ไม่ใช่กลไกกระบวนการ)
User Task- โหนดที่สร้างภารกิจของมนุษย์ Human Task นี้เป็นกิจกรรมที่นักแสดงที่เป็นมนุษย์ต้องทำให้เสร็จ
Embedded Sub-Process- ช่วยในการสร้างกระบวนการย่อยภายในกระบวนการหลัก มันสามารถมีขอบเขตของมันเอง สิ่งนี้มีประโยชน์สำหรับกระบวนการขนาดใหญ่ที่คุณต้องการแยกสาขาที่ซับซ้อนออกจากกัน สามารถมีตัวแปรและตัวจัดการข้อยกเว้นของตัวเอง
Multiple Instances aka for Each- อนุญาตให้รวบรวมองค์ประกอบที่จะป้อนเข้าสู่กระบวนการย่อย มีประโยชน์มากเมื่อรวมกับกระบวนการย่อยที่ใช้ซ้ำได้เพื่อเขียนและประสานงานกระบวนการที่มีขนาดเล็กลง
ในการวาดเวิร์กโฟลว์คุณสามารถใช้ส่วนประกอบใดก็ได้ที่มีอยู่ในจานสีตามที่อธิบายไว้ในบทความข้างต้น เวิร์กโฟลว์ทั้งหมดจะมีการเริ่มต้นเพียงครั้งเดียว แต่สามารถมีหลายจุดสิ้นสุดได้
ด้วยความช่วยเหลือของภาพหน้าจอฉันจะอธิบายวิธีการสร้างเวิร์กโฟลว์
ที่นี่ฉันได้เปิดช่องว่าง rf หรือ bpmn ไฟล์

ในการเพิ่มเหตุการณ์ใด ๆ ให้เลือกเหตุการณ์ที่ต้องการจาก Components Palette แล้วลากและวางไปทางด้านขวามือ ตัวอย่างเช่นฉันเลือกเหตุการณ์เริ่มต้นและลากไปทางด้านขวามือและรวมถึงเกตเวย์แยก

ตอนนี้จำเป็นต้องเชื่อมต่อทั้งสององค์ประกอบ เลือกลำดับขั้นตอนและเชื่อมต่อทั้งสององค์ประกอบ


ด้วยวิธีนี้คุณสามารถลากส่วนประกอบไปยังตัวแก้ไขและใช้ลำดับขั้นตอนเพื่อรวมส่วนประกอบต่างๆ หนึ่งเพียงแค่ต้องดูแลว่าส่วนประกอบบางอย่างจะมีการเชื่อมต่อขาเข้าและขาออกเพียงรายการเดียวและจำเป็นต้องตั้งค่าลำดับขั้นตอนเพื่อสร้างกระแสที่มีความหมาย
เราต้องตั้งค่าคุณสมบัติบางอย่างเช่นกันในขณะที่เราวาดเวิร์กโฟลว์ จะโพสต์คุณสมบัติทั้งหมดเพื่อตั้งค่าที่นี่ ฉันเพิ่งสร้างโฟลว์ แต่มันไม่มีความหมายมากที่จะดูในตอนแรกทันทีเนื่องจากฉันไม่ได้ตั้งค่าคุณสมบัติใด ๆ ในเวิร์กโฟลว์ที่สร้างขึ้น

ดังที่คุณเห็นด้านบนเป็นเวิร์กโฟลว์เปล่าที่ไม่มีคำอธิบายใด ๆ เช่นนี้และไม่สามารถสร้างอะไรขึ้นมาจากเวิร์กโฟลว์ที่สร้างขึ้น
อย่างไรก็ตามเพื่ออธิบายเพิ่มเติมฉันมีส่วนประกอบเริ่มต้นแล้วจึงเป็นเกตเวย์แยกและขึ้นอยู่กับเงื่อนไขของเกตเวย์แยกฉันจะเลือกวิธีใดวิธีหนึ่งและเรียกใช้โค้ดบางอย่างในงานสคริปต์จากนั้นจึงสิ้นสุดเวิร์กโฟลว์ ดังนั้นฉันต้องตั้งค่าคุณสมบัติสำหรับ Diverge Gateway จากนั้นจึงเป็นงานสคริปต์และเกตเวย์บรรจบกัน
ในขั้นตอนนี้ฉันจะแสดงให้คุณเห็นด้วยว่าเวิร์กโฟลว์ของฉันมีข้อผิดพลาดบางอย่างและในภายหลังจะแสดงให้คุณเห็นเมื่อฉันตั้งค่าคุณสมบัติแล้วจะไม่มีข้อผิดพลาดในเวิร์กโฟลว์ของฉันดังนั้นจึงแสดงวิธีตรวจสอบความถูกต้องของเวิร์กโฟลว์ที่สร้างขึ้น
เคล็ดลับ - โปรดจำไว้ว่าตัวตรวจสอบความถูกต้องเปิดอยู่ใน Windows →ค่ากำหนด→การตรวจสอบความถูกต้อง
ภาพหน้าจอด้านล่างแสดงการตั้งค่าในคราส


ตามภาพหน้าจอคุณจะเห็นว่ามีข้อผิดพลาด 4 ข้อ ข้อผิดพลาดแรกกล่าวว่าสคริปต์ไม่มีการดำเนินการและข้อผิดพลาดอีกประการหนึ่งคือเกตเวย์ที่กำหนดไว้ไม่มีการกำหนดประเภท ดังนั้นเราจำเป็นต้องลบข้อผิดพลาดเหล่านี้เพื่อให้สามารถเรียกใช้เวิร์กโฟลว์ได้
ตอนนี้เราจะตั้งค่าคุณสมบัติทีละรายการและเห็นข้อผิดพลาดจางหายไป
เลือกเกตเวย์แรก (แตกต่าง) และคลิกที่คุณสมบัติจากนั้นคลิกที่ประเภทและเลือกประตูตามความต้องการของคุณ

เมื่อคุณเลือกเกตเวย์แล้วคุณต้องเลือกข้อ จำกัด

คลิกที่วงกลมที่มีเครื่องหมายสีแดงคุณจะเห็นภาพหน้าจอด้านล่าง

คลิกแก้ไขและกรอกรายละเอียดตามภาพหน้าจอ -


คลิกที่นำเข้าและนำเข้าชั้นเรียนที่เราจะดำเนินการใด ๆ ในภาพหน้าจอเราได้นำเข้า POJO สำหรับผู้โดยสารซึ่งเราจะใช้ในตัวอย่างของเรา

ในทำนองเดียวกันให้กรอกรายละเอียดสำหรับข้อ จำกัด อื่น -

ตอนนี้คลิกไฟล์ OK ปุ่ม.

คลิกอีกครั้ง OK. ตอนนี้เลือกงานสคริปต์และทำขั้นตอนเดียวกับที่คุณทำสำหรับไดเวอร์จเกตเวย์
เราเพิ่งเพิ่ม SOP (คำสั่งพิมพ์) เพื่อแสดงโฟลว์ สามารถเขียนโค้ด java หรือ mvel ในงานสคริปต์ได้

ในทำนองเดียวกันเพิ่มรหัสสำหรับข้อ จำกัด ที่สอง -

สุดท้ายคุณต้องเพิ่มประเภทเกตเวย์สำหรับ Diverge Gateway

ตอนนี้บันทึกไฟล์เวิร์กโฟลว์และไปที่มุมมองปัญหา ปัญหาทั้งหมดจะได้รับการแก้ไข

ไม่มีข้อผิดพลาดในมุมมองปัญหาแสดงให้เห็นว่าไม่มีข้อผิดพลาดในเวิร์กโฟลว์ที่สร้างขึ้น นี่คือวิธีสร้างเวิร์กโฟลว์และตรวจสอบความถูกต้องใน jBPM
เราจะนำตัวอย่างในบทนี้เพื่ออธิบายวิธีการนำ jBPM ไปปฏิบัติ งานที่ต้องทำคือใช้ jBPM ในการตัดสินใจว่าผู้โดยสารจะขึ้นเครื่องบินหรือรถไฟขึ้นอยู่กับรายได้ของเขา
ขั้นตอนในการสร้างโปรเจ็กต์ยังคงเหมือนกับโปรเจ็กต์ "Hello World" เปิดไฟล์. rf ในโปรแกรมแก้ไขและดูการเปลี่ยนแปลงที่ทำเครื่องหมายด้วยสีแดง -

ที่นี่เราได้เปลี่ยนรหัส ruleflow (ไม่ซ้ำกัน) และเพิ่มรายได้ที่ผันแปรเนื่องจากเราจะตัดสินใจเลือกเส้นทางตามรายได้ของผู้โดยสาร
How to set variable - เลือกปุ่มแก้ไขที่มีเครื่องหมายสีแดง

คลิก Add ปุ่ม -

หน้าจอต่อไปนี้จะปรากฏขึ้น -

ใส่ชื่อเป็นรายได้และพิมพ์เป็นจำนวนเต็ม

คลิก OK. คุณจะเห็นตัวแปรรายได้ที่กำหนดไว้ตอนนี้

การเปลี่ยนแปลงที่ต้องทำในคลาส ProcessTest.java (คลาสเพื่อโหลดและรันกระบวนการของคุณ) -

Map<String, Object> params = new HashMap<String, Object>();
params.put("income", 1200);
// start a new process instance
ksession.startProcess("vivek.ruleflow", params);
คุณต้องสร้าง MAP และตั้งค่าใน MAP และส่งผ่านค่านี้ไปยังเมธอด startProcess overloaded ตามภาพเราได้เปลี่ยนรหัส ruleflow และด้วยเหตุนี้จึงใช้ id เดียวกัน (vivek.ruleflow) ในเมธอด startProcess
ก่อนที่จะรันคลาส ProcessTest.java ให้สร้าง POJO Passenger.java ในแพ็คเกจเดียวกับ ProcessTest.java
public class Passenger {
private String name;
private int income;
Getters and setters here
}
ตอนนี้รันคลาส ProcessTest.java เป็น Java Application และดูผลลัพธ์ -

Change the value- params.put ("รายได้", 900); และรันคลาสอีกครั้งและดูการเปลี่ยนแปลงของเอาต์พุต
