บทช่วยสอนการเขียนโปรแกรมกล่องโต้ตอบ: พูลโมดูลเข้า 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 ทั้งหมดจะถูกเรียกจากภายใน หนึ่ง ธุรกรรมอ้างถึงกลุ่มโมดูลทั่วไป

โครงสร้างของโปรแกรมโต้ตอบ

โครงสร้างของโปรแกรมโต้ตอบ

ผังกระบวนการสำหรับโปรแกรมโต้ตอบ

ผังกระบวนการสำหรับโปรแกรมโต้ตอบ