1 2 3 4 5 6 | <service auth= "true" engine= "simple" invoke= "createSkillType" location= "component://humanres/script/org/ofbiz/humanres/HumanResServices.xml" name= "createSkillType" > <description>Create Valid SkillType</description> <permission-service action= "CREATE" name= "humanResManagerPermission" ></permission-service> <auto-attributes include= "pk" mode= "INOUT" optional= "true" ></auto-attributes> <auto-attributes include= "nonpk" mode= "IN" optional= "true" ></auto-attributes> <override name= "description" optional= "false" ></override></service> |
ตัว optional="false" ระบบจะแจ้งเตือนให้ผู้ใช้ต้องป้องข้อมูลครับ เว้นว่างไม่ได้ หากเราทำการสร้าง sercice เสร็จแแล้วเราสามรถดูผลลัพธ์ serviceของเราได้ครับ หลังจาก restart ระบบแล้วให้ไปที่
จากนั้นให้ทำการค้นหา service ของเราในที่นี้คือ service createSkillType ครับเมื่อเจอแล้วให้คลิกเข้าไปเลยครับ เราก็จเจอดังรูป(แล้วแต่ service)
![]() |
From Programming Hunter |
สังเกตกรอบสีเขียวครับ จากที่เรากำหนดใน service ของเราตัวนี้ครับ เป็นตัวบอกให้เราทราบว่าเวลาจะเรียกใช้ service นี้ ต้องกรอกข้อมูลตัวไหนบ้างโดยดูจาก Optional ที่เป็น false ครับ เมื่อ service นี้ทำงานระบบจะแสดงข้อความดังนี้ครับ
![]() |
From Programming Hunter |
เราจะเห็นปัญหาเกิดขึ้นครับ คือผู้ใช้จะไม่รู้ว่าปัญหาที่เกิดขึ้นนั้นคืออะไร เกิดจากอะไร ดังนั้นเราจึงต้องระบุตามภาษานั้นไปเลยครับว่าต้องกรอกข้อมูลช่องไหน ช่องไหนที่ไม่สามารถเว้นว่างได้ เรามาดูวิธีการกันเลยครับ โดยสิ่งเราที่ต้องทำคือการสร้าง uiLabelMap ครับ ให้ทำการเปิดไฟล์ที่มีชื่อว่า ServiceErrorUiLabels.xml ครับอยู่ที่
1 | /framework/service/config/ServiceErrorUiLabels.xml |
แล้วให้เพิ่มข้อความดังนี้ครับ
1 2 3 | < property key = "serviceUtil.createSkillType.description" > < value lang = "en" >description field</ value > < value lang = "th" >ช่อง คำอธิบาย</ value ></ property > |
โดยที่ ชื่อ key นั้นจะต้องเป็นรูปแบบดังนี้ครับ serviceUtil.[ชื่อ service].[ชื่อฟิวด์] ดูตามตัวอย่างเลยครับ หลังจากนั้นไปแก้ไฟล์ ModelService.java ซึ่งจะอยู่ที่
1 | /framework/service/src/org/ofbiz/service/ModelService.java |
โดยแก้บรรทัดที่ 518 จาก
1 | message = errMsg + " [" + this .name + "." + missingKey + "]" ; |
เปลี่ยนเป็น
1 | message = errMsg + " : " + UtilProperties.getMessage(ServiceUtil.resource, "serviceUtil." + this .name + "." + missingKey , locale); |
และแก้บรรทัดที่ 600 จาก
1 | msg = errMsg + " [" + mode + "] [" + model.name + "." + key + "]" ; |
เปลี่ยนเป็น
1 | msg = errMsg + " : " + UtilProperties.getMessage(ServiceUtil.resource, "serviceUtil." + model.name + "." + key , locale); |
ในส่วนนี้เราจะทำการแก้แค่ครั้งเดียวครับ คราวหน้าเราก็แค่ไปเพิ่ม uiLabelMap ในไฟล์ ServiceErrorUiLabels.xml ก็พอครับ ซึ่งหลังจากทำตามขั้นตอนดังกล่าวเสร็จแล้วให้ทำการ compile แล้ว start ใหม่ เมื่อรัน service อีกครั้งผลลัพธ์จะเป็นดังนี้ครับ
![]() |
From Programming Hunter |
เป็นอันเสร็จสิ้นกระบวนการแก้ไขครับ
0 comments:
Post a Comment