การเรียนรู้การใช้งานฟังก์ชัน set และ get รวมถึงหลักการ OOP (Object-Oriented Programming) ในภาษา ABAP เป็นหัวใจสำคัญของการพัฒนาโปรแกรมในระบบ SAP ซึ่งถือเป็นหัวหน้าในโลกของธุรกิจและการจัดการทรัพยากรองค์กร (Enterprise Resource Planning - ERP) ในบทความนี้ เราจะพูดถึงวิธีการใช้ฟังก์ชัน set และ get ที่ทำให้โค้ดของคุณเป็นระเบียบเรียบร้อยและง่ายต่อการบำรุงรักษา พร้อมทั้งให้ตัวอย่างโค้ดจำนวนสามตัวอย่างและอธิบายการใช้งานในโลกแห่งความจริง
OOP เป็นการออกแบบและการเขียนโปรแกรมที่โครงสร้างข้อมูลและการทำงาน (Methods) ถูกรวมเป็นหน่วยที่เรียกว่า "วัตถุ" (Object) ใน ABAP, Class เป็นบล็อกการสร้างโค้ดที่รวม Attributes (ตัวแปรข้อมูล) และ Methods (ฟังก์ชันที่ใช้งานกับข้อมูลนั้น) เข้าด้วยกัน
ฟังก์ชัน set และ get คือ methods ซึ่งใช้เพื่อจัดการกับข้อมูลภายในออบเจ็ค ฟังก์ชัน set ไว้สำหรับกำหนดหรือเปลี่ยนแปลงค่าของ Attributes, ในขณะที่ get ใช้สำหรับดึงค่าจาก Attributes นั้นๆ
ก่อนที่จะดำเนินงานไปยังตัวอย่างโค้ด, ต้องขอแจ้งว่าตัวอย่างนี้เป็นการอธิบายแนวคิดในระดับพื้นฐานเท่านั้น เนื้อหาอาจมีการเรียบเรียงให้เข้ากับบทความ
CLASS cl_employee DEFINITION.
PUBLIC SECTION.
METHODS: set_name IMPORTING iv_name TYPE string,
get_name RETURNING VALUE(rv_name) TYPE string.
PRIVATE SECTION.
DATA: mv_name TYPE string.
ENDCLASS.
CLASS cl_employee IMPLEMENTATION.
METHOD set_name.
mv_name = iv_name.
ENDMETHOD.
METHOD get_name.
rv_name = mv_name.
ENDMETHOD.
ENDCLASS.
ในตัวอย่างนี้, `cl_employee` คือ class ที่มี attribute ชื่อว่า `mv_name` ซึ่งเป็นข้อมูลส่วนตัวที่ควรจะถูกเข้าถึงผ่าน methods. `set_name` เป็น method ที่ใช้สำหรับกำหนดค่า `mv_name`, ในขณะที่ `get_name` จะคืนค่าของ `mv_name`.
ในสภาพแวดล้อมการทำงานจริง, คุณอาจพบว่าสิ่งนี้ใช้ในกรณีที่ระบบต้องการเก็บข้อมูลพนักงาน, การกำหนดและการดึงข้อมูลจะต้องผ่านกระบวนการที่มีการควบคุมเป็นอย่างดีเพื่อป้องกันข้อผิดพลาดและเพิ่มความปลอดภัยของข้อมูล.
CLASS cl_vat_calculator DEFINITION.
PUBLIC SECTION.
METHODS: set_vat_rate IMPORTING iv_vat_rate TYPE p,
get_vat_rate RETURNING VALUE(rv_vat_rate) TYPE p.
PRIVATE SECTION.
DATA: mv_vat_rate TYPE p.
ENDCLASS.
CLASS cl_vat_calculator IMPLEMENTATION.
METHOD set_vat_rate.
IF iv_vat_rate BETWEEN 0 AND 100.
mv_vat_rate = iv_vat_rate.
ELSE.
RAISE EXCEPTION TYPE cx_invalid_input.
ENDIF.
ENDMETHOD.
METHOD get_vat_rate.
rv_vat_rate = mv_vat_rate.
ENDMETHOD.
ENDCLASS.
ในตัวอย่างที่สอง, ฟังก์ชัน `set_vat_rate` ทำการตรวจสอบว่าอัตรา VAT ที่รับมาเป็นอย่างไรก่อนที่จะกำหนดให้กับ `mv_vat_rate`. นี่คือการเพิ่มชั้นของการตรวจสอบเพื่อรักษาความถูกต้องของข้อมูลภายใน class.
การใช้งานนี้สามารถพบเห็นได้ในระบบการคำนวณภาษีที่ต้องการให้เก็บอัตราภาษีที่ถูกต้องและมีการตรวจสอบว่าข้อมูลที่รับมานั้นอยู่ในช่วงที่ถูกต้องหรือไม่.
CLASS cl_order DEFINITION.
PUBLIC SECTION.
METHODS: add_item IMPORTING iv_item TYPE string iv_quantity TYPE i,
get_order_details RETURNING VALUE(rt_order_details) TYPE table.
PRIVATE SECTION.
TYPES: BEGIN OF ty_order_item,
item TYPE string,
quantity TYPE i,
END OF ty_order_item.
DATA: mt_order_details TYPE TABLE OF ty_order_item WITH DEFAULT KEY.
ENDCLASS.
CLASS cl_order IMPLEMENTATION.
METHOD add_item.
APPEND VALUE #( item = iv_item quantity = iv_quantity ) TO mt_order_details.
ENDMETHOD.
METHOD get_order_details.
rt_order_details = mt_order_details.
ENDMETHOD.
ENDCLASS.
ในตัวอย่างที่สาม, `cl_order` ใช้ encapsulation โดยการเก็บรายละเอียดของการสั่งซื้อไว้ภายใน table และช่วยให้การเพิ่มหรือเรียกข้อมูลสามารถทำได้ผ่าน methods ที่กำหนดไว้.
นี่เป็นตัวอย่างของระบบการจัดการคำสั่งซื้อ (Order Management System) ที่ร้านค้าอาจใช้เพื่อเก็บรักษาและดึงข้อมูลการสั่งซื้อสินค้าให้กับลูกค้า.
การใช้งาน set และ get methods ใน ABAP สร้างกรอบงานที่ชัดเจนในการเข้าถึงข้อมูล, ป้องกันการเข้าถึงที่ไม่ถูกต้อง, และช่วยให้โค้ดของคุณง่ายต่อการอ่านและบำรุงรักษา. คลาสเหล่านี้เป็นหลักการพื้นฐานในการเขียนโปรแกรมที่มีประสิทธิภาพและมีคุณภาพสูง.
หากคุณมีความสนใจในการเรียนรู้การเขียนโปรแกรม ABAP เพื่อพัฒนาซอฟต์แวร์สำหรับระบบ SAP, ที่ EPT (Expert-Programming-Tutor) เรามีหลักสูตรที่สามารถช่วยคุณเป็นอย่างดี. ด้วยความรู้จากการเรียนการสอนของเรา, คุณจะมีทักษะและความเชี่ยวชาญเพื่อสร้างและรักษาระบบซอฟต์แวร์ที่มีคุณภาพสำหรับธุรกิจขนาดใหญ่ทั่วโลก.
สนใจรายละเอียดหลักสูตรเพิ่มเติม สามารถติดต่อ EPT ได้เลยนะครับ. บทความนี้หวังว่าจะเป็นประโยชน์ให้กับท่านที่ต้องการศึกษาหรือพัฒนาทักษะการเขียนโปรแกรมต่อไป!
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM