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 แบบเดียวกันนี้
พี่ตูน เยี่ยม
ตอบลบ