1. engine="java" ทำได้โดยการเขียนโปรแกรมภาษา java เก็บไว้ในโฟลเดอร์ src แล้วเรียกใช้งานผ่าน package
2. engine="simple" เขียนเป็น simple method เก็บไว้ในไฟล์ *Services.xml
3. engine เป็น webservice
ในบทความนี้จะแสดงการสร้าง service โดยใช้ simple method ในไฟล์ *Services.xml มีวิธีทำดังนี้
1. สร้าง form ชื่อ CreateBlog ที่ *Forms.xml
<form name="CreateBlog" type="single" target="createBlog" default-entity-name="NewBlog"> <auto-fields-entity entity-name="NewBlog" default-field-type="edit"/> <field name="saveButton" title="Save" ><submit button-type="button"/></field> </form>
2. include form ชื่อ CreateBlog เข้าไปในไฟล์ *Screens.xml
<screen name="CreateBlog"> <section> <widgets> <decorator-screen name="CommonDecorator" location="component://myblog/widget/CommonScreens.xml"> <decorator-section name="body"> <container id="content"> <container id="content-bgtop"> <container id="content-bgbtm"> <container style="post"> <include-form location="component://myblog/widget/MyBlogForms.xml" name="CreateBlog"/> </container> </container> </container> </container> </decorator-section> </decorator-screen> </widgets> </section> </screen>
3. กลับไปดูที่ไฟล์ *Forms.xml ฟอร์มชื่อ CreateBlog มี target="createBlog"
<form name="CreateBlog" type="single" target="createBlog" default-entity-name="NewBlog"> <auto-fields-entity entity-name="NewBlog" default-field-type="edit"/> <field name="saveButton" title="Save" ><submit button-type="button"/></field> </form>
4. ใน controller.xml ทำการสร้าง request-map และสั่งให้มีการการ invoke simple method ชื่อ createBlog ที่ services.xml
<request-map uri="createBlog"> <event type="service" invoke="createBlog"/> <response name="success" type="request-redirect-noparam" value="blog"></response> </request-map>
5. ใน services.xml มีการ invoke createBlog ในไฟล์ *Services.xml
<service name="createBlog" engine="simple" auth="false" location="component://myblog/script/com/org/toon/myblog/MyBlogServices.xml" invoke="createBlog"> <attribute name="newBlogId" mode="INOUT" type="String" optional="false"></attribute> <attribute name="newBlogTitle" mode="IN" type="String" optional="false"></attribute> <attribute name="newBlogBody" mode="IN" type="String" optional="false"></attribute> <attribute name="statusId" mode="IN" type="String" optional="true"></attribute> </service>
6. สร้าง service ชื่อ createBlog ในไฟล์ MyBlogServices.xml
<simple-method method-name="createBlog" short-description="create a Blog"> <make-value entity-name="NewBlog" value-field="newEntity"/> <set-pk-fields map="parameters" value-field="newEntity"/> <set-nonpk-fields map="parameters" value-field="newEntity"/> <create-value value-field="newEntity"/> <field-to-result field="parameters.newBlogId" result-name="newBlogId"/> </simple-method>
7.จบส่วนในการสร้างและเรียกใช้ Service ต่อไปจะทำการ controller ให้เรียก view ที่มีหน้า form ของการ create new blog มาแสดงผล
8. เพิ่ม controller ชื่อ CreateBlog ใน controller.xml ให้เรียก view ชื่อ CreateBlog มาแสดงผล เมื่อมีการเรียกเข้ามาที่ controller นี้
<request-map uri="CreateBlog"> <security https="true" auth="false"/> <response name="success" type="view" value="CreateBlog"></response> </request-map>
9. สร้าง view ชื่อ CreateBlog เรียกฟอร์มการสร้างมาแสดงผล
<view-map name="CreateBlog" type="screen" page="component://myblog/widget/MyBlogScreens.xml#CreateBlog"/>
10. ทำการ ./startofbiz.sh ใหม่อีกครั้ง แล้วทดลองเพิ่มข้อมูลลงใน entity
ในบทความต่อไปจะแสดงการแก้ไขข้อมูลในฐานข้อมูลผ่านการสร้าง service โดยใช้ simple method แบบเดียวกันนี้
พี่ตูน เยี่ยม
ตอบลบ