จากที่ได้สร้าง app แล้ว จากนี้จะสร้าง entity และ service นะครับ
จาก Development Flow จะเริ่มจากการสร้าง entity เป็นอันดับแรก นี้ก็เหมือนกัน เราจะเริ่มจากการสร้าง entity ก่อน แล้วต่อด้วย service
ตอนนี้เราจะอยู่ในโฟเดอร์ app ที่เราสร้าง นะครับ การสร้าง entity จะสร้างไว้ในโฟล์เดอร์ entitydef ให้เพิ่มโค้ด ตามนี้เลย การนิยามตาราง 2 ตาราง ตารางแรก ชื่อว่า student เก็บข้อมูลนักเรียน มี attribute อยู่ tag <field> และตารางที่ 2 ชื่อว่า studentSubject เก็บข้อมูลของรายวิชาที่ student ลงเรียน ในการเขียนนี้จะเป็น Object Relational Mapping

ทดสอบก่อนนะครับ การทดสอบให้ restart OFBIZ ก่อน แล้วให้ไปดูที่เมนู webtools เลือกคำว่า Entity Data Maintenance หาตารางที่เราสร้าง

เมื่อคลิกดู

เราสามารถค้นหาข้อมูลใน entity นี้ได้ และยังสามารถเพิ่มข้อมูลงไปได้ คลิก create new

ถ้ามีให้ลองคลิกดูว่าถูกต้องหรือไม่ ถ้าไม่มีให้ทำการตรวจสอบโค้ดดูอีกครั้ง
ต่อมาเราจะทำการสร้าง service การสร้าง service จะทำการสร้างไฟล์ .xml ใน โฟล์เดอร์ servicedef แล้วพิมพ์คำสั่งดังนี้

อธิบายหน่อย เริ่มแรก เป็นการสร้าง service ที่มี engin="entity-auto" เป็น service ที่ทำงานเสร็จได้ในหน้าไม่จำเป็นต้องใช้ไฟล์อื่นในการทำ sevice และ engin="simple" จะเป็น sevice ที่จะไปดึงไฟล์ ที่เขียนด้วย simple method มาทำงาน sevice ต่างๆ มีหน้าที่ดังนี้
- <service name="createStudent"> : เพิ่มข้อมูลนักเรียน เป็นแบบกำหนด auto-attribute
- <service name="updateStudent"> : แก้ไขนักเรียน เป็นแบบกำหนด attribute เอง
- <service name="updateStudent"> : ลบข้อมูลนักเรียน
- <service name="createStudentSubject"> : เพิ่มข้อมูลวิชา engin="simple" จะเป็น sevice ที่จะไปดึงไฟล์ ที่เขียนด้วย simple method มาทำงาน คือไฟล์ HelloappService.xml ในโฟล์เดอร์ scripe
ต่อมาเรามาสร้างไฟล์ HelloappService.xml

พิมพ์โค้ดตามนี้เลยนะครับ
จากนั้นทำการ restart OFBIZ แล้วไปที่ webtools->service engine หา service ที่เราสร้าง ถ้าเจอแล้ว

คลิกเข้าไป จะเจอ

ทดลองการทำงานของ service คลิกที่ run service

กรอกข้อมูลแล้ว submit ถ้าต้องทราบว่าข้อมูลถูกเพิ่ม/แก้ไขในฐานข้อมูลหรือยัง ให้ไปดูที่ entity engine แล้วค้นหาดู
ตอนนี้ ได้ทำการสร้าง entity ด้วย ORM จะเห็นว่าไม่มีโค้ด SQL เลย และ service โดยใช้ xml และ simple method วันนี้ขอจบลงเพียงเท่านี้นะครับ กระทู้ใหม่รอวันพรุ่งนี้นะครับ
No comments:
Post a Comment