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); และรันคลาสอีกครั้งและดูการเปลี่ยนแปลงของเอาต์พุต