SAP ABAP - โมดูลฟังก์ชัน
โมดูลฟังก์ชันเป็นส่วนสำคัญของระบบ SAP เนื่องจาก SAP มีโค้ดแบบโมดูลโดยใช้โมดูลฟังก์ชันเป็นเวลาหลายปีทำให้สามารถนำโค้ดไปใช้ซ้ำได้ด้วยตัวเองผู้พัฒนาและลูกค้าของตน
โมดูลฟังก์ชันคือโปรแกรมย่อยที่มีชุดคำสั่งที่ใช้ซ้ำได้พร้อมพารามิเตอร์การนำเข้าและส่งออก ไม่เหมือนโปรแกรมรวมโมดูลฟังก์ชันสามารถทำงานได้อย่างอิสระ ระบบ SAP มีโมดูลฟังก์ชันที่กำหนดไว้ล่วงหน้าจำนวนมากซึ่งสามารถเรียกใช้จากโปรแกรม ABAP ใดก็ได้ กลุ่มฟังก์ชันทำหน้าที่เป็นคอนเทนเนอร์ชนิดหนึ่งสำหรับโมดูลฟังก์ชันจำนวนหนึ่งที่จะอยู่ร่วมกันอย่างมีเหตุผล ตัวอย่างเช่นโมดูลฟังก์ชันสำหรับระบบเงินเดือน HR จะรวมกันเป็นกลุ่มฟังก์ชัน
หากต้องการดูวิธีการสร้างโมดูลฟังก์ชันต้องสำรวจตัวสร้างฟังก์ชัน คุณสามารถค้นหาตัวสร้างฟังก์ชันด้วยรหัสธุรกรรม SE37 เพียงพิมพ์ส่วนหนึ่งของชื่อโมดูลฟังก์ชันด้วยอักขระไวด์การ์ดเพื่อสาธิตวิธีค้นหาโมดูลฟังก์ชัน พิมพ์ * จำนวน * แล้วกดปุ่ม F4
ผลลัพธ์ของการค้นหาจะแสดงในหน้าต่างใหม่ โมดูลฟังก์ชันจะแสดงเป็นเส้นที่มีพื้นหลังสีน้ำเงินและกลุ่มฟังก์ชันเป็นเส้นสีชมพู คุณสามารถดูเพิ่มเติมที่กลุ่มฟังก์ชัน ISOC ได้โดยใช้หน้าจอ Object Navigator (Transaction SE80) คุณสามารถดูรายการโมดูลฟังก์ชันและวัตถุอื่น ๆ ที่อยู่ในกลุ่มฟังก์ชัน ลองพิจารณาโมดูลฟังก์ชัน SPELL_AMOUNT โมดูลฟังก์ชันนี้จะแปลงตัวเลขเป็นคำ
การสร้างโปรแกรมใหม่
Step 1 - ไปที่ธุรกรรม SE38 และสร้างโปรแกรมใหม่ชื่อ Z_SPELLAMOUNT
Step 2- ป้อนรหัสเพื่อให้สามารถตั้งค่าพารามิเตอร์ที่สามารถป้อนค่าและส่งต่อไปยังโมดูลฟังก์ชัน องค์ประกอบข้อความ text-001 ที่นี่อ่านว่า 'Enter a Value'
Step 3- ในการเขียนโค้ดสำหรับสิ่งนี้ให้ใช้ CTRL + F6 หลังจากนี้หน้าต่างจะปรากฏขึ้นโดยที่ 'CALL FUNCTION' เป็นตัวเลือกแรกในรายการ ป้อน 'spell_amount' ในกล่องข้อความแล้วคลิกปุ่มดำเนินการต่อ
Step 4- บางรหัสถูกสร้างขึ้นโดยอัตโนมัติ แต่เราจำเป็นต้องปรับปรุงคำสั่ง IF เพื่อรวมรหัสเพื่อเขียนข้อความไปยังหน้าจอเพื่อบอกว่า "โมดูลฟังก์ชันส่งคืนค่า: sy-subrc" และเพิ่มคำสั่ง ELSE เพื่อให้เขียนผลลัพธ์ที่ถูกต้องเมื่อฟังก์ชัน โมดูลสำเร็จที่นี่ต้องตั้งค่าตัวแปรใหม่เพื่อเก็บค่าที่ส่งคืนจากโมดูลฟังก์ชันขอเรียกสิ่งนี้ว่า 'ผลลัพธ์'
ต่อไปนี้เป็นรหัส -
REPORT Z_SPELLAMOUNT.
data result like SPELL.
selection-screen begin of line.
selection-screen comment 1(15) text-001.
parameter num_1 Type I.
selection-screen end of line.
CALL FUNCTION 'SPELL_AMOUNT'
EXPORTING
AMOUNT = num_1
IMPORTING
IN_WORDS = result.
IF SY-SUBRC <> 0.
Write: 'Value returned is:', SY-SUBRC.
else.
Write: 'Amount in words is:', result-word.
ENDIF.
Step 5- ตัวแปรที่โมดูลฟังก์ชันส่งกลับเรียกว่า IN_WORDS ตั้งค่าตัวแปรที่เกี่ยวข้องในโปรแกรมที่เรียกว่า 'ผลลัพธ์' กำหนด IN_WORDS โดยใช้คำสั่ง LIKE เพื่ออ้างถึงโครงสร้างที่เรียกว่า SPELL
Step 6- บันทึกเปิดใช้งานและดำเนินการโปรแกรม ป้อนค่าตามที่แสดงในภาพหน้าจอต่อไปนี้แล้วกด F8
รหัสด้านบนสร้างผลลัพธ์ต่อไปนี้ -
Spelling the Amount
Amount in words is:
FIVE THOUSAND SIX HUNDRED EIGHTY