SAP ดำเนินการตามมูลค่าและดำเนินการตามคำขอความช่วยเหลือ
⚡ สรุปอย่างชาญฉลาด
Process On Value-Request และ Process On Help-Request คือเหตุการณ์บนหน้าจอที่อยู่เบื้องหลังปุ่ม F4 และ F1 ใน SAP ABAP หน้านี้อธิบายทั้งเหตุการณ์ คำสั่ง FIELD ที่กระตุ้นเหตุการณ์เหล่านั้น และโมดูลฟังก์ชันที่แสดงเอกสารหรือรายการที่เป็นไปได้

POH และ POV คืออะไร?
ก่อนอื่นเลย หากคุณไม่รู้เรื่องเกี่ยวกับตรรกะ Screen Flow และการใช้งานของมันเลย SAPเราขอแนะนำให้คุณดูบทแนะนำของเราเกี่ยวกับเรื่องนี้ โปรแกรมสนทนา.
POH และ POV เป็นเหตุการณ์บนหน้าจอสองอย่างที่ตอบสนองคำขอความช่วยเหลือจากผู้ใช้ POH ตอบสนองต่อปุ่ม F1 และอธิบายความหมายของช่องข้อมูล ในขณะที่ POV ตอบสนองต่อปุ่ม F4 และแสดงรายการค่าที่ช่องข้อมูลนั้นยอมรับได้ ทั้งสองเหตุการณ์นี้ถูกประกาศไว้ในตรรกะการทำงานของหน้าจอ ถัดจาก PBO และ PAI
| หลักเกณฑ์ | POH (กระบวนการเมื่อได้รับคำขอความช่วยเหลือ) | POV (Process On Value-Request) |
|---|---|---|
| ถูกกระตุ้นโดย | กุญแจ F1 | ปุ่ม F4 หรือปุ่มรายการที่เป็นไปได้ |
| จุดมุ่งหมาย | อธิบายความหมายของสาขา | เสนอค่าที่ช่องข้อมูลยอมรับ |
| แหล่งที่มาเริ่มต้น | เอกสารอธิบายองค์ประกอบข้อมูลในพจนานุกรม ABAP | ค่าคงที่, ตารางตรวจสอบ หรือความช่วยเหลือในการค้นหา |
| การขนส่งข้อมูล | ไม่มี ฟิลด์นี้แสดงผลเท่านั้น | ค่าที่เลือกจะถูกเขียนกลับไปยังช่องข้อมูลบนหน้าจอ |
| โมดูลฟังก์ชันทั่วไป | HELP_OBJECT_SHOW_FOR_FIELD | F4IF_INT_TABLE_VALUE_REQUEST |
ตอนนี้เรามาดูรายละเอียด POH และ POV กันดีกว่า
กระบวนการร้องขอความช่วยเหลือ (POH) : F1 Help
- เมื่อใดก็ตามที่กดปุ่ม F1 ระบบจะเรียกใช้เหตุการณ์ POH สำหรับองค์ประกอบข้อมูลที่ระบุ
- หากไม่มีเหตุการณ์ PROCESS ON HELP-REQUEST ในตรรกะการประมวลผลของหน้าจอ ระบบจะใช้เอกสารประกอบของฟิลด์ใน ABAP Dictionary เป็นพื้นฐานและแสดงผล แม้ว่าเอกสารประกอบนั้นจะไม่มีอยู่ ระบบก็จะไม่แสดงความช่วยเหลือใดๆ
- หากต้องการแสดงเอกสารช่วยเหลือภาคสนาม คุณต้องเขียนโค้ดตรรกะการไหลของหน้าจอต่อไปนี้ในเหตุการณ์ POH:
PROCESS ON HELP-REQUEST FIELD <f> [MODULE <mod>] WITH <num>
- หากมีเอกสารประกอบองค์ประกอบข้อมูลเฉพาะหน้าจอสำหรับฟิลด์ คุณสามารถแสดงได้โดยการระบุหมายเลข -
- จำนวน อาจเป็นตัวอักษรหรือตัวแปรก็ได้ ตัวแปรจะต้องถูกประกาศและเติมลงในโปรแกรม ABAP ที่เกี่ยวข้อง
- หมายเหตุ คำสั่ง FIELD จะไม่ถ่ายโอนเนื้อหาของฟิลด์หน้าจอ ไปยังโปรแกรม ABAP ในเหตุการณ์ PROCESS ON HELP-REQUEST มันแค่แสดงเอกสารช่วยเหลือ แค่นั้นแหละ.
โมดูล โมดูลนี้ถูกกำหนดไว้ในโปรแกรม ABAP เหมือนกับโมดูล PAI ทั่วไป ตรรกะการประมวลผลของโมดูลต้องตรวจสอบให้แน่ใจว่ามีการแสดงความช่วยเหลือที่เหมาะสมสำหรับฟิลด์ที่เกี่ยวข้อง แทนที่จะเรียกหน้าจอเพิ่มเติมที่มีช่องข้อความ คุณควรใช้โมดูลฟังก์ชันต่อไปนี้เพื่อแสดงความช่วยเหลือที่เหมาะสม SAPเอกสารสคริปต์
HELP_OBJECT_SHOW_FOR_FIELD
- โมดูลฟังก์ชันนี้แสดงเอกสารประกอบองค์ประกอบข้อมูลสำหรับส่วนประกอบของโครงสร้างหรือตารางฐานข้อมูลจากพจนานุกรม ABAP
- คุณส่งชื่อของส่วนประกอบและโครงสร้างหรือตารางไปยังพารามิเตอร์นำเข้า FIELD และ TABLE
HELP_OBJECT_SHOW
- ใช้โมดูลฟังก์ชั่นนี้เพื่อแสดงอะไรก็ตาม SAPเอกสารสคริปต์
- คุณต้องส่งคลาสเอกสาร (เช่น TX สำหรับข้อความทั่วไป DE สำหรับเอกสารประกอบองค์ประกอบข้อมูล) และชื่อของเอกสารไปยังพารามิเตอร์นำเข้า DOKCLASS และ DOKNAME
- ด้วยเหตุผลทางเทคนิค คุณต้องส่งตารางภายในว่างเปล่าที่มีประเภทบรรทัด T ไปด้วยLINE ไปยังพารามิเตอร์ตารางของโมดูลฟังก์ชัน
F1 อธิบายเกี่ยวกับสนามแข่งขัน กิจกรรมถัดไปจะแสดงรายการสิ่งที่สามารถใส่เข้าไปในสนามแข่งขันได้
กระบวนการตามมูลค่า (POV): F4
- เมื่อผู้ใช้เลือกฟังก์ชัน รายการที่เป็นไปได้ (F4) ระบบจะแสดงค่าอินพุตที่เป็นไปได้สำหรับฟิลด์ (ค่า ตารางตรวจสอบ รหัสการจับคู่) โดยที่นักพัฒนาจะจัดเก็บไว้
- เหตุการณ์ PROCESS ON VALUE-REQUEST จะถูกประมวลผลเสมอหากผู้ใช้เรียกว่า "รายการที่เป็นไปได้"
- ในการกำหนดค่าที่เป็นไปได้สำหรับฟิลด์บนหน้าจอ คุณต้องกำหนดค่าต่อไปนี้ในเหตุการณ์ POV ของลอจิกการไหลของหน้าจอ:
PROCESS ON VALUE-REQUEST FIELD field name MODULE module name
- สำหรับค่าที่เป็นไปได้ ภายในโมดูลที่กำหนดไว้ข้างต้น คุณควรใช้โมดูลฟังก์ชันทั่วไป HELP_VALUES_GET_WITH_TABLE เพื่อรับค่าที่เป็นไปได้จากพจนานุกรม ABAP
มีฟังก์ชันอื่นๆ ที่สามารถใช้เพื่อช่วยในการป้อนข้อมูลได้:
F4IF_FIELD_VALUE_REQUEST
- เรียกความช่วยเหลือในการป้อนข้อมูลของพจนานุกรม ABAP แบบไดนามิก
- คุณสามารถส่งชื่อส่วนประกอบของโครงสร้างหรือตารางฐานข้อมูลของพจนานุกรม ABAP ไปยังโมดูลฟังก์ชันในพารามิเตอร์นำเข้า TABNAME และ FIELDNAME
- โมดูลฟังก์ชันเริ่มทำงาน พจนานุกรม ABAP ความช่วยเหลือในการป้อนข้อมูลสำหรับส่วนประกอบนี้ ช่องหน้าจอที่เกี่ยวข้องทั้งหมดจะถูกอ่าน
- หากคุณระบุพารามิเตอร์การนำเข้า DYNPPROG, DYNPNR และ DYNPROFIELD การเลือกของผู้ใช้จะถูกส่งกลับไปยังฟิลด์ที่เกี่ยวข้องบนหน้าจอ
- หากคุณระบุพารามิเตอร์ตาราง RETURN_TAB ส่วนที่เลือกจะถูกส่งกลับเข้าไปในตารางแทน
MODULE VALUE_CARRIER INPUT. CALL FUNCTION 'F4IF_FIELD_VALUE_REQUEST' EXPORTING TABNAME = 'DEMOF4HELP' FIELDNAME = 'CARRIER1' DYNPPROG = PROGNAME DYNPNR = DYNNUM DYNPROFIELD= 'CARRIER'. ENDMODULE.
F4IF_INT_TABLE_VALUE_REQUEST
- โมดูลฟังก์ชันนี้แสดงรายการค่าที่คุณสร้างขึ้นใน โปรแกรมเอแบค.
- รายการค่าจะถูกส่งไปยังโมดูลฟังก์ชันเป็นพารามิเตอร์ตาราง VALUE_TAB
- หากคุณระบุพารามิเตอร์การนำเข้า DYNPPROG, DYNPNR และ DYNPROFIELD การเลือกของผู้ใช้จะถูกส่งกลับไปยังฟิลด์ที่เกี่ยวข้องบนหน้าจอ
- หากคุณระบุพารามิเตอร์ตาราง RETURN_TAB ส่วนที่เลือกจะถูกส่งกลับเข้าไปในตารางแทน
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING RETFIELD = 'CONNID' DYNPPROG = PROGNAME DYNPNR = DYNNUM DYNPROFIELD = 'CONNECTION' VALUE_ORG = 'S' TABLES VALUE_TAB = VALUES_TAB.
นั่นคือทั้งหมดสำหรับ POH และ POV แสดงความคิดเห็นของคุณในกรณีที่มีข้อสงสัย
วิธีสร้างความช่วยเหลือ F4 จากตารางภายใน
รายการค่าที่ไม่มีอยู่ในพจนานุกรม ABAP จะถูกสร้างขึ้นภายในโปรแกรมและส่งต่อไปยัง F4IF_INT_TABLE_VALUE_REQUEST ขั้นตอนด้านล่างนี้จะสร้างความช่วยเหลือ F4 ที่ใช้งานได้สำหรับฟิลด์บนหน้าจอ
- ประกาศตารางค่า: สร้างตารางภายในที่มีคอลัมน์แรกเก็บค่าที่จะเขียนกลับไปยังหน้าจอ กรอกข้อมูลลงในตารางนี้ในโมดูล PBO หรือในโมดูลร้องขอค่าเองก็ได้
- ลงทะเบียนฟิลด์ในตรรกะการไหลของข้อมูล: เพิ่ม PROCESS ON VALUE-REQUEST ลงในหน้าจอ และเชื่อมต่อฟิลด์กับ FIELD … MODULE … เพื่อให้โมดูลทำงานเมื่อกดปุ่ม F4
- เรียกใช้โมดูลฟังก์ชัน: ส่งค่า RETFIELD พร้อมชื่อคอลัมน์, DYNPROFIELD พร้อมชื่อฟิลด์บนหน้าจอ และ VALUE_ORG = 'S' เนื่องจากรายการที่ส่งมานั้นเป็นตารางที่มีโครงสร้าง
- ส่งคืนค่า: DYNPPROG และ DYNPNR ระบุโปรแกรมและหน้าจอ ดังนั้นแถวที่เลือกจะถูกเขียนลงในช่องข้อมูลบนหน้าจอโดยตรงโดยไม่ต้องเขียนโค้ดเพิ่มเติม
- ทดสอบมัน เปิดใช้งานหน้าจอ กดปุ่ม F4 ที่ช่องกรอกข้อมูล และตรวจสอบว่ารายการปรากฏขึ้นและตัวเลือกที่เลือกไปถึงช่องกรอกข้อมูลแล้ว
* Flow logic of the screen PROCESS ON VALUE-REQUEST. FIELD spfli-connid MODULE f4_connid. * Module in the ABAP program MODULE f4_connid INPUT. DATA: lt_values TYPE STANDARD TABLE OF spfli. SELECT * FROM spfli INTO TABLE lt_values WHERE carrid = spfli-carrid. CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'CONNID' dynpprog = sy-repid dynpnr = sy-dynnr dynprofield = 'SPFLI-CONNID' value_org = 'S' TABLES value_tab = lt_values. ENDMODULE.
💡 เคล็ดลับ: อ่านค่าจากฟิลด์หน้าจออื่นโดยใช้โมดูลฟังก์ชัน DYNP_VALUES_READ ก่อนที่จะกรอกข้อมูลลงในรายการ นี่คือวิธีการสร้างความช่วยเหลือ F4 ที่ขึ้นอยู่กับฟิลด์อื่น เช่น เส้นทางการบินสำหรับสายการบินที่ป้อนข้อมูลไว้แล้ว
