SAP ดำเนินการตามมูลค่าและดำเนินการตามคำขอความช่วยเหลือ

⚡ สรุปอย่างชาญฉลาด

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

  • วัตถุประสงค์ของ POH: ฟังก์ชัน PROCESS ON HELP-REQUEST จะตอบสนองต่อปุ่ม F1 และแสดงเอกสารประกอบฟิลด์ที่จัดเก็บไว้ใน ABAP Dictionary
  • 🔎 จุดประสงค์ของมุมมองบุคคลที่หนึ่ง: ฟังก์ชัน PROCESS ON VALUE-REQUEST จะตอบสนองต่อปุ่ม F4 และแสดงรายการที่เป็นไปได้ซึ่งกำหนดโดยค่าต่างๆ ตารางตรวจสอบ หรือความช่วยเหลือในการค้นหา
  • 🧾 กฎสำรอง: เมื่อเหตุการณ์ POH หายไป ระบบจะเปลี่ยนไปใช้เอกสารประกอบองค์ประกอบข้อมูลแทน และจะไม่แสดงอะไรเลยหากเอกสารนั้นหายไปเช่นกัน
  • ???? ขีดจำกัดการขนส่ง: คำสั่ง FIELD ใน POH ไม่ได้ส่งค่าฟิลด์บนหน้าจอไปยังโปรแกรม เนื่องจากคำสั่งนี้แสดงเฉพาะส่วนช่วยเหลือเท่านั้น
  • 📚 โมดูลช่วยเหลือ: HELP_OBJECT_SHOW_FOR_FIELD จะแสดงเอกสารประกอบขององค์ประกอบข้อมูล และ HELP_OBJECT_SHOW จะแสดงข้อมูลใดๆ SAPเอกสารสคริปต์
  • 📋 โมดูลคุณค่า: F4IF_FIELD_VALUE_REQUEST จะเริ่มการแสดงความช่วยเหลือในการป้อนข้อมูลด้วยพจนานุกรม และ F4IF_INT_TABLE_VALUE_REQUEST จะแสดงรายการที่สร้างขึ้นภายในโปรแกรม
  • ↩️ เส้นทางกลับ: DYNPPROG, DYNPNR และ DYNPROFIELD จะส่งค่าที่เลือกกลับไปยังช่องบนหน้าจอ ในขณะที่ RETURN_TAB จะส่งค่ากลับไปยังตาราง

SAP กระบวนการเกี่ยวกับคุณค่าและกระบวนการเกี่ยวกับคำขอความช่วยเหลือ

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 ที่ใช้งานได้สำหรับฟิลด์บนหน้าจอ

  1. ประกาศตารางค่า: สร้างตารางภายในที่มีคอลัมน์แรกเก็บค่าที่จะเขียนกลับไปยังหน้าจอ กรอกข้อมูลลงในตารางนี้ในโมดูล PBO หรือในโมดูลร้องขอค่าเองก็ได้
  2. ลงทะเบียนฟิลด์ในตรรกะการไหลของข้อมูล: เพิ่ม PROCESS ON VALUE-REQUEST ลงในหน้าจอ และเชื่อมต่อฟิลด์กับ FIELD … MODULE … เพื่อให้โมดูลทำงานเมื่อกดปุ่ม F4
  3. เรียกใช้โมดูลฟังก์ชัน: ส่งค่า RETFIELD พร้อมชื่อคอลัมน์, DYNPROFIELD พร้อมชื่อฟิลด์บนหน้าจอ และ VALUE_ORG = 'S' เนื่องจากรายการที่ส่งมานั้นเป็นตารางที่มีโครงสร้าง
  4. ส่งคืนค่า: DYNPPROG และ DYNPNR ระบุโปรแกรมและหน้าจอ ดังนั้นแถวที่เลือกจะถูกเขียนลงในช่องข้อมูลบนหน้าจอโดยตรงโดยไม่ต้องเขียนโค้ดเพิ่มเติม
  5. ทดสอบมัน เปิดใช้งานหน้าจอ กดปุ่ม 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 ที่ขึ้นอยู่กับฟิลด์อื่น เช่น เส้นทางการบินสำหรับสายการบินที่ป้อนข้อมูลไว้แล้ว

คำถามที่พบบ่อย

ไม่ใช่ทั้งสองอย่าง ปุ่ม F1 และ F4 จะขัดจังหวะหน้าจอและเรียกใช้เหตุการณ์ของตัวเอง จากนั้นจึงกลับไปยังหน้าจอเดิม การประมวลผล PAI ปกติจะเริ่มต้นก็ต่อเมื่อผู้ใช้เรียกใช้รหัสฟังก์ชันปกติเท่านั้น

ตัวช่วยค้นหาที่แนบมากับองค์ประกอบข้อมูลหรือตารางตรวจสอบจะสร้างรายการ F4 ขึ้นมาแล้ว การเขียนโค้ด POV จำเป็นเฉพาะเมื่อค่าต่างๆ ถูกคำนวณในขณะทำงานหรือขึ้นอยู่กับฟิลด์อื่นของหน้าจอเท่านั้น

ส่งค่า DYNPROFIELD พร้อมชื่อคอลัมน์ แล้วใช้คำสั่ง GET CURSOR LINE เพื่อค้นหาแถว จากนั้นโมดูลฟังก์ชันจะเขียนค่าลงในแถวที่ถูกต้องของตัวควบคุมใน PBO ถัดไป

ใช่แล้ว ผู้ช่วย AI ในเครื่องมือพัฒนา ABAP จะเขียนตรรกะการไหลของ POV, คำสั่ง SELECT ที่ใช้เติมข้อมูลลงในตารางค่า และการเรียกใช้ F4IF_INT_TABLE_VALUE_REQUEST ด้วยพารามิเตอร์ RETFIELD และ DYNPROFIELD ที่ถูกต้อง

ไม่ F1 ยังคงอ่านเอกสารที่จัดเก็บไว้ในพจนานุกรม ABAP อยู่ ผู้ช่วย AI เช่น SAP Joule ตอบคำถามด้วยภาษาที่เข้าใจง่ายข้างหน้าจอ ซึ่งเป็นการเสริมเอกสารประกอบภาคสนามมากกว่าที่จะมาแทนที่

สรุปโพสต์นี้ด้วย: