ความแตกต่างระหว่าง User Exit และ Customer Exit ใน SAP
⚡ สรุปอย่างชาญฉลาด
ทางออกของผู้ใช้และทางออกของลูกค้าใน SAP ABAP คือส่วนเสริมที่เพิ่มฟังก์ชันการทำงานแบบกำหนดเองให้กับโปรแกรมมาตรฐานโดยไม่ต้องแก้ไขโปรแกรม SAP หน้านี้อธิบายเกี่ยวกับประเภทของ Customer Exit, ตัวอย่างการใช้งาน, ธุรกรรม SMOD และ CMOD, User Exit และความแตกต่างระหว่างสองเทคนิคนี้
Customer Exits คืออะไร?
ลูกค้าออกคือ “ตะขอ” ให้บริการโดย SAP ภายในโปรแกรม หน้าจอ และเมนูมาตรฐานมากมายที่ลูกค้าสามารถทำได้ "แขวน" ฟังก์ชันการทำงานแบบกำหนดเองเพื่อตอบสนองความต้องการทางธุรกิจ เราจะมาพูดถึงเรื่องนี้กันอีกสักครู่…
ข้อดีที่สำคัญคือมาตรฐาน SAP วัตถุจะไม่ถูกแก้ไขเลย โค้ดที่กำหนดเองจะอยู่ในส่วนที่สงวนไว้หรือหน้าจอย่อยที่ SAP เรียกใช้ฟังก์ชันในเวลาที่เหมาะสม เพื่อให้การปรับปรุงยังคงอยู่แม้หลังจากการอัปเกรดระบบ แทนที่จะถูกเขียนทับ ด้วยเหตุนี้ ฟังก์ชัน Exit จึงจัดอยู่ในกลุ่มของฟังก์ชันประเภทต่างๆ SAP เทคนิคการปรับปรุงประสิทธิภาพร่วมกับส่วนเสริมทางธุรกิจรุ่นใหม่
ประเภทของลูกค้าที่ออก
ทางออกของลูกค้ามีสามประเภทหลัก:
- ออกจากโมดูลฟังก์ชัน
- ออกจากหน้าจอ
- เมนูออก
ออกจากโมดูลฟังก์ชัน: ช่วยให้ลูกค้าสามารถเพิ่มโค้ดผ่านโมดูลฟังก์ชันในตำแหน่งที่กำหนดในไฟล์ได้ SAP โปรแกรมประยุกต์
Syntax: CALL CUSTOMER-FUNCTION '004'
หน้าจอออก: ช่วยให้ลูกค้าสามารถเพิ่มฟิลด์ลงในหน้าจอได้ SAP โครงการ ผ่านหน้าจอย่อย หน้าจอย่อยถูกเรียกภายในโฟลว์ลอจิกของหน้าจอมาตรฐาน
Format: CALL CUSTOMER-SUBSCREEN CUSTSCR2
เมนูออก: ระบบนี้ช่วยให้ลูกค้าสามารถเพิ่มรายการลงในเมนูแบบดรอปดาวน์ได้ในรูปแบบมาตรฐาน SAP โปรแกรม รายการเหล่านี้อาจใช้เพื่อเรียกโปรแกรมเสริมหรือหน้าจอที่กำหนดเอง
Format: +CUS ( additional item in GUI status )
ตัวอย่างการออกของลูกค้า
ตัวอย่างการออกจากหน้าจอ:
ในการทำธุรกรรม CAT2 – การลงรายการเวลา ฝ่ายทรัพยากรบุคคลต้องการรวมการรับทราบแบบโต้ตอบว่าการส่งข้อมูลที่ไม่ถูกต้องโดยตั้งใจถือเป็นเหตุให้เลิกจ้าง
ตัวอย่างการออกจากเมนู:
ในธุรกรรม SE38 – ABAP Editor ทีมพัฒนาต้องการรวมลิงก์เมนูไปยังธุรกรรม SE80 – Object Navigator เพื่อความสะดวกในการใช้งาน
ก่อน
หลัง
ตัวอย่างการออกจากโมดูลฟังก์ชัน:
บริษัทต้องการให้รายละเอียดธนาคารของผู้ขายในการสร้างผู้ขายเป็นกิจกรรมที่จำเป็น ดังนั้นจึงต้องแสดงข้อความแสดงข้อผิดพลาดว่า 'กรุณาป้อนรายละเอียดธนาคาร'
ก่อน
หลัง
การค้นหาทางออกของลูกค้า
ในการทำธุรกรรม สโมด และดูรายละเอียด-
หรือในการทำธุรกรรม SE81 คุณสามารถใช้พื้นที่การใช้งานที่เหมาะสมได้
สร้างทางออกของลูกค้า
หากต้องการสร้างทางออกของลูกค้า คุณต้องสร้างโปรเจ็กต์ในธุรกรรมก่อน ซีเอ็มโอดี
Later คุณกำหนดทางออกของลูกค้าให้กับโครงการของคุณ
ขั้นตอนทั้งหมดตั้งแต่การหาทางออกจนถึงการกดรหัสใช้เวลาสั้น และจะประกอบด้วยขั้นตอนหกขั้นตอนเหมือนเดิมเสมอ
- ค้นหาส่วนเสริม: ค้นหาชื่อส่วนเสริมใน SMOD ตัวอย่างเช่น คอมโพเนนต์ EXIT_SAPMF02K_001 สำหรับข้อมูลหลักของผู้ขาย
- สร้างโปรเจ็กต์: ใน CMOD ให้ป้อนชื่อโปรเจ็กต์ที่ขึ้นต้นด้วย Z หรือ Y แล้วเลือก สร้าง
- กำหนดการปรับปรุง: ในหน้าจอการกำหนดส่วนเสริม ให้เพิ่มชื่อส่วนเสริมที่มีทางออก (extension) อยู่ด้วย
- เขียนโค้ด: เปิดฟังก์ชันโมดูล exit แล้ววางโค้ดไว้ภายในส่วน include ที่สงวนไว้ ซึ่งขึ้นต้นด้วย ZX
- จัดการส่วนต่างๆ ของหน้าจอและเมนู: สำหรับการออกจากหน้าจอ ให้สร้างซับสกรีน CUSTSCR และสำหรับการออกจากเมนู ให้กรอกรหัสฟังก์ชัน +CUS ในสถานะ GUI
- เปิดใช้งานโปรเจ็กต์: เปิดใช้งานโปรเจ็กต์ใน CMOD เพื่อให้มีการเรียกใช้เมธอด exit ในระหว่างการทำงาน หากไม่เปิดใช้งาน โค้ดจะไม่ถูกใช้งาน
💡 เคล็ดลับ: การรวมฟังก์ชันโมดูลออกเริ่มต้นด้วย ZX ดังนั้นจึงถูกส่งไปพร้อมกับโปรเจกต์ ห้ามวางตรรกะที่กำหนดเองไว้โดยตรงใน SAP โมดูลฟังก์ชัน เพราะนั่นจะเป็นการแก้ไข ไม่ใช่การปรับปรุง
User Exit คืออะไร?
User Exit มีจุดประสงค์เดียวกันกับ Customer Exit แต่จะมีให้เฉพาะสำหรับ SD โมดูล. ทางออกถูกนำมาใช้เป็นการเรียกไปยังโมดูลฟังก์ชัน รหัสนี้เขียนโดยนักพัฒนา
ทราบดีว่า User Exit ใน SD คือ MV45AFZZ
- USEREXIT_FIELD_MODIFICATION – เพื่อแก้ไขคุณลักษณะของหน้าจอ
- USEREXIT_SAVE_DOCUMENT – ดำเนินการเมื่อผู้ใช้กดบันทึก
- USEREXIT_SAVE_DOCUMENT_PREPARE
- USEREXIT_MOVE_FIELD_TO_VBAK – เมื่อการเปลี่ยนแปลงส่วนหัวของผู้ใช้ถูกย้ายไปยังพื้นที่ทำงานของส่วนหัว
- USEREXIT_MOVE_FIELD_TO_VBAP – เมื่อรายการผู้ใช้เปลี่ยนแปลงถูกย้ายไปที่ SAP พื้นที่ทำงานรายการ
User Exit ในทางเทคนิคแล้วคือซับรูทีน (FORM) ที่อยู่ภายใน User Exit หนึ่ง SAP รวมถึงการแก้ไขโดยตรงและต้องใช้รหัสการเข้าถึง นี่คือความแตกต่างหลักในทางปฏิบัติจากทางออกของลูกค้า ซึ่งสรุปไว้ในหัวข้อถัดไป
User Exit กับ Customer Exit
ทั้งสองเทคนิคนี้เป็นการเพิ่มพฤติกรรมที่กำหนดเองให้กับฟังก์ชันมาตรฐาน SAPแต่มีความแตกต่างกันในด้านขอบเขต เทคโนโลยี และความปลอดภัยในการอัปเกรด ตารางด้านล่างนี้เปรียบเทียบทั้งสองระบบ
| หลักเกณฑ์ | ทางออกผู้ใช้ | ทางออกลูกค้า |
|---|---|---|
| ความพร้อมที่จะให้บริการ | โมดูล SD เท่านั้น | ทั่วๆไป SAP โมดูล |
| เทคนิค | ซับรูทีน (FORM) ใน SAP รวมถึงเช่น MV45AFZZ | การออกจากโมดูลฟังก์ชัน หน้าจอ หรือเมนูที่จัดการใน SMOD และ CMOD |
| รหัสเข้าใช้งาน | ต้องใช้รหัสเข้าถึงเพื่อแก้ไข | ไม่จำเป็นต้องใช้รหัสผ่าน |
| Upgrade พฤติกรรม | ต้องตรวจสอบในขั้นตอนการอัปเกรดกับ SPAU | Upgrade ปลอดภัย โทรมาจากที่ที่สงวนไว้รวมถึง |
| จัดการโดย | แก้ไขโดยตรงในไฟล์รวม | เปิดใช้งานผ่านโปรเจกต์ CMOD |
ทางออกสำหรับลูกค้าเป็นทางเลือกที่ปลอดภัยกว่าและใช้งานได้ทั่วไปมากกว่า สำหรับการปรับปรุงแก้ไขที่ทางออกทั้งสองเข้าไม่ถึง... SAP ต่อมาได้มีการเพิ่มส่วนเสริมทางธุรกิจ (Business Add-In) เข้ามา
Customer Exits เทียบกับ BAdI
A ส่วนเสริมทางธุรกิจ (BAdI) BAdI เป็นรูปแบบการเขียนโปรแกรมเชิงวัตถุที่มาแทนที่ Customer Exit แทนที่จะใช้ include ที่สงวนไว้ BAdI จะกำหนดอินเทอร์เฟซ และตรรกะที่กำหนดเองจะอยู่ในคลาสที่ใช้งานอินเทอร์เฟซนั้น ซึ่งมีข้อดีสองประการที่ Customer Exit ไม่มี
- การใช้งานหลายรูปแบบ: BAdI ที่ใช้งานได้หลายครั้งอนุญาตให้มีการใช้งานอิสระหลายแบบสำหรับการปรับปรุงเดียวกัน ในขณะที่ Customer Exit อนุญาตให้มีการใช้งานเพียงครั้งเดียวเท่านั้น
- การวางแนววัตถุ: BAdI ทำงานร่วมกับเมธอดและคลาส ดังนั้นจึงเหมาะสมกับการพัฒนา ABAP Objects สมัยใหม่ และง่ายต่อการกรองตามประเทศหรือสถานการณ์ทางธุรกิจ
หลักการปฏิบัติง่ายๆ คือ: ใช้ customer exit หรือ user exit ที่มีอยู่แล้วเมื่อจุดปรับปรุงนั้นมีอยู่แล้ว และใช้ BAdI เมื่อต้องการจุดปรับปรุงใหม่ที่สามารถนำกลับมาใช้ซ้ำได้









