ผู้ใช้ที่ออนไลน์
- Sand
- him_aeng
ลองมาดูการทำ CRUD Service แบบเก่า ที่ใช้ minilang สำหรับการทำ CRUD นะครับ
<service name="createPracticeParty" default-entity-name="Party" engine="simple"
location="component://practice/script/org/hotwax/practice/PracticeServices.xml"
invoke="createPracticeParty" auth="true">
<description>Create a Party</description>
<auto-attributes include="pk" mode="OUT" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
ึึ
<simple-method method-name="createPracticeParty" short-description="create a Party">
<make-value entity-name="Party" value-name="newEntity"/>
<sequenced-id-to-env sequence-name="Party" env-name="newEntity.partyId"/>
<field-to-result field-name="newEntity.partyId" result-name="partyId"/>
<set-nonpk-fields map-name="parameters" value-name="newEntity"/>
<create-value value-name="newEntity"/>
</simple-method>
<service name="createPracticeParty" default-entity-name="Party" engine="entity-auto" invoke="create" auth="true">
<description>Create a Party</description>
<auto-attributes include="pk" mode="OUT" optional="false"/>
<auto-attributes include="nonpk" mode="IN" optional="true"/>
</service>
ความคิดเห็น
อืม
อืม ลดขั้นตอนไปตั้งขั้นนึงนะคะเนี่ย แต่มันอาจจะทำให้ผู้ใช้ใหม่ๆ สับสนนิดหน่อยนะคะเนี่ย เพราะปกติ จะเข้าใจว่า จะต้องเขียน service ไปเรียกก่อน แล้วค่อยเรียกไปที่ simple method หรือ java method แต่ตอนนี้ก็จะต้องเข้าใจว่า มันทำได้ 2 แบบสำหรับ simple method ค่ะ
ต้องเลือกครับ
ต้องเลือกจากความเหมาะสมในการใช้งานครับ ถ้าไม่มีอะไรในกอใฝ่ก็ใช้แบบใหม่ใหม่แต่ถ้ามีความต้องการเกินที่มันทำได้ก็คงต้องทำใน simple method อยู่ดีครับ
นี่แหละครับเหตุผลหลัก
ที่ทำไมผมถึงชอบ Framework ของ OFBiz มัน Simple มากๆเอาเวลาที่เราจะมานั่ง Coding ไปทำอย่างอื่นดีกว่า เดี่ยวมี OrangeGears IDE มาอีกนี่สวรรค์ทรงโปรดเลยนะครับ :)
แต่วิธีนี้ผมยังมีปัญหากับมันนิสสสสนึง
คือตัวอย่างที่แสดงมาน่ะครับมันทำงานแบบ Stand Alone อยาก update create ของ entity ใดก็ทำมันของข้าคนเดียว คราวนี้ถ้าผมจะอ้างอิง service ตัวอื่นภายใน service ที่เราทำงานอยู่จะทำไงก็ไม่รุ อย่างของเก่าเวลาเรียก Service ของคนอื่นก็ใช้ tag <call-service> ภายใน code minilang แต่นี่เราเรียกใช้งาน CRUD ตั้งแต่ไก่โห่ คือยังไม่ได้ไปใช้ minilang แต่เรียกกันตั้งแต่ Services.xml แล้ว ก็เลยไม่รู้ว่าจะทำไงดี