SAP ABAP - รูทีนย่อย
รูทีนย่อยคือส่วนที่สามารถใช้ซ้ำได้ของโค้ด เป็นหน่วยโมดูลาร์ภายในโปรแกรมที่มีการห่อหุ้มฟังก์ชันในรูปแบบของซอร์สโค้ด คุณจัดหน้าส่วนหนึ่งของโปรแกรมไปยังรูทีนย่อยเพื่อให้ได้ภาพรวมที่ดีขึ้นของโปรแกรมหลักและใช้ลำดับของคำสั่งที่สอดคล้องกันหลาย ๆ ครั้งตามที่แสดงในแผนภาพต่อไปนี้
เรามีโปรแกรม X ที่แตกต่างกัน 3 รายการ source code blocks. แต่ละบล็อกมีคำสั่ง ABAP เหมือนกัน โดยทั่วไปจะเป็นบล็อกรหัสเดียวกัน เพื่อให้การบำรุงรักษารหัสนี้ง่ายขึ้นเราสามารถห่อหุ้มโค้ดลงในรูทีนย่อย เราสามารถเรียกรูทีนย่อยนี้ในโปรแกรมของเรากี่ครั้งก็ได้ตามที่เราต้องการ รูทีนย่อยสามารถกำหนดได้โดยใช้คำสั่ง Form และ EndForm
ต่อไปนี้เป็นไวยากรณ์ทั่วไปของนิยามรูทีนย่อย
FORM <subroutine_name>.
<statements>
ENDFORM.
เราสามารถเรียกรูทีนย่อยได้โดยใช้คำสั่ง PERFORM ตัวควบคุมจะข้ามไปยังคำสั่งที่เรียกใช้งานได้แรกในรูทีนย่อย <subroutine_name> เมื่อพบ ENDFORM คอนโทรลจะข้ามกลับไปที่คำสั่งตามคำสั่ง PERFORM
ตัวอย่าง
Step 1- ไปที่รายการ SE80 เปิดโปรแกรมที่มีอยู่แล้วคลิกขวาที่โปรแกรม ในกรณีนี้คือ 'ZSUBTEST'
Step 2- เลือกสร้างจากนั้นเลือก Subroutine เขียนชื่อรูทีนย่อยในฟิลด์จากนั้นคลิกปุ่มดำเนินการต่อ ชื่อรูทีนย่อยคือ 'Sub_Display' ดังที่แสดงในภาพหน้าจอต่อไปนี้
Step 3- เขียนโค้ดในบล็อกคำสั่ง FORM และ ENDFORM สร้างรูทีนย่อยสำเร็จแล้ว
เราจำเป็นต้องรวมคำสั่ง PERFORM เพื่อเรียกรูทีนย่อย ลองดูรหัส -
REPORT ZSUBTEST.
PERFORM Sub_Display.
* Form Sub_Display
* --> p1 text
* <-- p2 text
FORM Sub_Display.
Write: 'This is Subroutine'.
Write: / 'Subroutine created successfully'.
ENDFORM. " Sub_Display
Step 4- บันทึกเปิดใช้งานและดำเนินการโปรแกรม รหัสด้านบนสร้างผลลัพธ์ต่อไปนี้ -
Subroutine Test:
This is Subroutine
Subroutine created successfully
ดังนั้นการใช้รูทีนย่อยทำให้โปรแกรมของคุณเน้นฟังก์ชันมากขึ้น มันแบ่งงานของโปรแกรมออกเป็นฟังก์ชันย่อยเพื่อให้แต่ละรูทีนย่อยรับผิดชอบหนึ่งฟังก์ชันย่อย โปรแกรมของคุณจะดูแลรักษาได้ง่ายขึ้นเนื่องจากการเปลี่ยนแปลงฟังก์ชันมักจะต้องดำเนินการในรูทีนย่อยเท่านั้น