บทช่วยสอนการเขียนโปรแกรมกล่องโต้ตอบ: พูลโมดูลเข้า SAP ABAP
SAP-ABAP รองรับโปรแกรมสองประเภท – โปรแกรมรายงานและโปรแกรมบทสนทนา
หากโปรแกรม ABAP ของคุณต้องการอินพุตจากผู้ใช้ ระบบจะใช้การเขียนโปรแกรม Dialog
ในบทช่วยสอนนี้คุณจะได้เรียนรู้:
- ความแตกต่างระหว่างโปรแกรมรายงานและกล่องโต้ตอบ
- ตัวอย่างการประมวลผลธุรกรรมในการเขียนโปรแกรมโต้ตอบ
- ส่วนประกอบของโปรแกรมโต้ตอบ
กล่องโต้ตอบของผู้ใช้เป็นรูปแบบการโต้ตอบระหว่างผู้ใช้กับโปรแกรมและอาจเป็นอย่างใดอย่างหนึ่งต่อไปนี้
- การป้อนข้อมูล
- การเลือกรายการเมนู
- คลิกที่ปุ่ม
- การคลิกหรือดับเบิลคลิกรายการ
โปรแกรมโต้ตอบยังใช้เมื่อเราต้องการนำทางไปมาระหว่างหน้าจอ
โปรแกรมโต้ตอบถูกสร้างขึ้นด้วยประเภทเป็น 'M' - พูลโมดูล ไม่สามารถดำเนินการได้โดยอิสระและต้องแนบไปกับรหัสธุรกรรมอย่างน้อยหนึ่งรหัสที่คุณระบุหน้าจอเริ่มต้น
ความแตกต่างระหว่างโปรแกรมรายงานและกล่องโต้ตอบ
โปรแกรมรายงาน:
รายงานคือโปรแกรมที่โดยทั่วไปจะอ่านและวิเคราะห์ข้อมูลในตารางฐานข้อมูลโดยไม่ต้องเปลี่ยนแปลง ฐานข้อมูล.
โปรแกรมโต้ตอบ:
โปรแกรมโต้ตอบช่วยให้คุณทำงานแบบโต้ตอบกับระบบและเปลี่ยนแปลงเนื้อหาของตารางฐานข้อมูลได้ แต่ละโปรแกรมโต้ตอบจะมีลำดับหน้าจอที่แน่นอนซึ่งระบบจะประมวลผลทีละรายการ
ตัวอย่างการประมวลผลธุรกรรมในการเขียนโปรแกรมโต้ตอบ
ส่วนประกอบของโปรแกรมโต้ตอบ
แตกต่าง รายงาน ซึ่งโดยทั่วไปเกี่ยวข้องกับการสร้างโปรแกรมอิสระหนึ่งโปรแกรมที่สามารถดำเนินการได้โดยอิสระจากวัตถุอื่น ๆ การพัฒนาโปรแกรมกล่องโต้ตอบเกี่ยวข้องกับการพัฒนาวัตถุหลาย ๆ ชิ้นซึ่งไม่มีวัตถุใด ๆ ที่สามารถดำเนินการได้ด้วยตัวเอง แทนที่จะเชื่อมโยงวัตถุทั้งหมดตามลำดับชั้นกับโปรแกรมหลักและดำเนินการตามลำดับที่กำหนดโดยโปรแกรมหลักของกล่องโต้ตอบ.
ส่วนประกอบของโปรแกรมโต้ตอบคือ:
รหัสธุรกรรม
- รหัสธุรกรรมเริ่มลำดับหน้าจอ
- คุณสร้างรหัสธุรกรรมใน Repository Browser ใน ABAP Workbench หรือใช้ Transaction SE93
- รหัสธุรกรรมเชื่อมโยงกับโปรแกรม ABAP และหน้าจอเริ่มต้น
- คุณสามารถเริ่มลำดับหน้าจอจากโปรแกรม ABAP ใดก็ได้โดยใช้คำสั่ง CALL SCREEN
หน้าจอ
- บทสนทนาแต่ละบทใน SAP ระบบจะถูกควบคุมโดยหน้าจอหนึ่งจอขึ้นไป
- คุณสร้างหน้าจอโดยใช้หน้าจอ Painter ใน ABAP Workbench ผ่านธุรกรรม SE51
- แต่ละหน้าจอเป็นของ โปรแกรมเอแบค.
- หน้าจอเหล่านี้ประกอบด้วย "หน้ากากหน้าจอ" หรือ "เค้าโครง" และตรรกะการไหล หน้าจอมีเค้าโครงที่กำหนดตำแหน่งของฟิลด์อินพุต/เอาต์พุตและองค์ประกอบกราฟิกอื่นๆ เช่น ช่องกาเครื่องหมายและปุ่มตัวเลือก ตรรกะการไหลจะกำหนดการประมวลผลเชิงตรรกะภายในหน้าจอ
สถานะ GUI
- แต่ละหน้าจอมีสถานะ GUI ซึ่งเป็นองค์ประกอบอิสระของโปรแกรม
- ซึ่งจะควบคุมแถบเมนู แถบเครื่องมือมาตรฐาน แถบเครื่องมือแอปพลิเคชัน ซึ่งผู้ใช้สามารถเลือกฟังก์ชันในแอปพลิเคชันได้
- คุณสร้างมันขึ้นมาใน ABAP Workbench โดยใช้เมนู Painter.
โปรแกรม ABAP
- แต่ละสถานะหน้าจอและ GUI ในระบบ R/3 เป็นของโปรแกรม ABAP หนึ่งโปรแกรม
- โปรแกรม ABAP ประกอบด้วยโมดูลกล่องโต้ตอบที่ถูกเรียกโดยลอจิกโฟลว์หน้าจอ และยังประมวลผลอินพุตของผู้ใช้จากสถานะ GUI
- โปรแกรม ABAP ที่ใช้หน้าจอเรียกอีกอย่างว่าโปรแกรมโต้ตอบ
- ในพูลโมดูล (โปรแกรมประเภท M); บล็อกการประมวลผลแรกที่ถูกเรียกจะเป็นโมดูลกล่องโต้ตอบเสมอ อย่างไรก็ตาม คุณยังสามารถใช้หน้าจอในโปรแกรม ABAP อื่นๆ ได้ เช่น โปรแกรมปฏิบัติการหรือโมดูลฟังก์ชัน บล็อกการประมวลผลแรกจะถูกเรียกแตกต่างกัน ตัวอย่างเช่น โดยสภาพแวดล้อมรันไทม์หรือการเรียกขั้นตอน จากนั้นลำดับหน้าจอจะเริ่มต้นโดยใช้คำสั่ง CALL SCREEN
ลอจิกการไหลของหน้าจอ
ตรรกะของ Screen Flow แบ่งออกเป็นสี่ส่วนประกอบหลักๆ
- กระบวนการก่อนส่งออก (PBO) เหตุการณ์: ที่ถูกประมวลผลก่อนที่หน้าจอจะปรากฏ
- กระบวนการหลังจากการป้อนข้อมูล (PAI) เหตุการณ์: ซึ่งจะถูกประมวลผลหลังจากการกระทำของผู้ใช้บนหน้าจอ
- ดำเนินการตามคำขอความช่วยเหลือ (ศอ.บต): ซึ่งจะถูกประมวลผลเมื่อกด F1
- ดำเนินการตามคำขอค่า (POV): ซึ่งจะถูกประมวลผลเมื่อกด F4
ไดนโปร
- หน้าจอร่วมกับลอจิกโฟลว์เรียกว่า Dynpro (“โปรแกรมไดนามิก” เนื่องจากลอจิกโฟลว์ของหน้าจอมีอิทธิพลต่อโฟลว์ของโปรแกรม)
- dynpro แต่ละตัวจะควบคุมขั้นตอนเดียวของโปรแกรมโต้ตอบของคุณ
- หน้าจอที่เป็นของโปรแกรมได้แก่ หมายเลข- ลำดับการไหลของหน้าจออาจเป็นแบบเชิงเส้นหรือแบบวนก็ได้ จากภายในห่วงโซ่หน้าจอ คุณสามารถเรียกเครือข่ายหน้าจออื่นได้ และหลังจากประมวลผลแล้ว ให้กลับสู่ห่วงโซ่เดิม คุณยังสามารถแทนที่หน้าจอถัดไปที่กำหนดแบบคงที่ได้จากภายในโมดูลกล่องโต้ตอบของโปรแกรม ABAP
พูลโมดูล ABAP
- ในเหตุการณ์ PBO หรือ PAI Dynpro จะเรียกใช้โปรแกรมโต้ตอบ ABAP การรวบรวมโปรแกรมดังกล่าวเรียกว่าพูลโมดูล ABAP
- ตัวอย่างเช่น โมดูลที่ถูกเรียกในเหตุการณ์ PAI จะใช้เพื่อตรวจสอบอินพุตของผู้ใช้ และเพื่อทริกเกอร์ขั้นตอนกล่องโต้ตอบที่เหมาะสม เช่น งานอัปเดต
- dynpros ทั้งหมดจะถูกเรียกจากภายใน หนึ่ง ธุรกรรมอ้างถึงกลุ่มโมดูลทั่วไป
โครงสร้างของโปรแกรมโต้ตอบ
ผังกระบวนการสำหรับโปรแกรมโต้ตอบ