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

ดังนั้นการใช้รูทีนย่อยทำให้โปรแกรมของคุณเน้นฟังก์ชันมากขึ้น มันแบ่งงานของโปรแกรมออกเป็นฟังก์ชันย่อยเพื่อให้แต่ละรูทีนย่อยรับผิดชอบหนึ่งฟังก์ชันย่อย โปรแกรมของคุณจะดูแลรักษาได้ง่ายขึ้นเนื่องจากการเปลี่ยนแปลงฟังก์ชันมักจะต้องดำเนินการในรูทีนย่อยเท่านั้น