หลักการ คือ ส่งค่า Parameter ID จากโปรแกรม A ไปโปรแกรม B โดยที่โปรแกรม B จะเอาค่า Parameter ID ของโปรแกรม A มา Process เพื่อให้ได้ผลลัพธ์ที่ต้องการ
วิธีการ ให้เขียนคำสั่งส่งค่า Parameter ID จากโปรแกรม A โดยในที่นี้ กำหนดให้ อีเวนต์ของการส่งค่านั้น ก็คือ เมื่อ ดับเบิ้ลคลิกที่ Line item แล้ว ให้แสดง Detail ของ line item นั้น(ส่งค่า Parameter ID ไปยังโปรแกรม B)
Code PROGRAM_A
REPORT PROGRAM_A. TABLES: kna1. DATA: BEGIN OF t_itabA OCCURS 0, kunnr LIKE kna1-kunnr, name1 LIKE kna1-name1, END OF t_itabA. DATA: lin TYPE i . SELECT-OPTIONS: s_kunnr FOR kna1-kunnr OBLIGATORY. AT LINE-SELECTION. GET CURSOR LINE lin. CLEAR: t_itabA-kunnr. READ LINE lin FIELD VALUE t_itabA-kunnr. IF t_itabA-kunnr <> ''. SET PARAMETER ID: 'KUN' FIELD t_itabA-kunnr. CALL TRANSACTION 'PROGRAM_B' AND SKIP FIRST SCREEN. ENDIF. START-OF-SELECTION. PERFORM select_data. PERFORM write_data. FORM select_data . SELECT kna1~kunnr kna1~name1 INTO CORRESPONDING FIELDS OF TABLE t_itabA FROM kna1 WHERE kunnr IN s_kunnr. ENDFORM. " select_data FORM write_data. LOOP AT t_itabA. WRITE: / t_itabA-kunnr, t_itabA-name1. ENDLOOP. ENDFORM. "write_data
Code PROGRAM_B
REPORT PROGRAM_B TABLES: kna1. DATA: BEGIN OF t_itabB OCCURS 0, kunnr LIKE kna1-kunnr, land1 LIKE kna1-land1, name1 LIKE kna1-name1, name2 LIKE kna1-name2, ort01 LIKE kna1-ort01, pstlz LIKE kna1-pstlz, END OF t_itabB. DATA: lin TYPE i . DATA: para TYPE tpara-paramid VALUE 'KUN', p_kunnr2 TYPE kna1-kunnr. GET PARAMETER ID para FIELD p_kunnr2. PARAMETER: p_kunnr LIKE kna1-kunnr. IF p_kunnr2 <> ''. p_kunnr = p_kunnr2. ENDIF. START-OF-SELECTION. PERFORM select_data. PERFORM write_data. FORM select_data . SELECT kna1~kunnr kna1~land1 kna1~name1 kna1~name2 kna1~ort01 kna1~pstlz INTO CORRESPONDING FIELDS OF TABLE t_itabB FROM kna1 WHERE kunnr EQ p_kunnr. ENDFORM. " select_data FORM write_data. LOOP AT t_itabB. WRITE: / 'Customer Number: ',t_itabB-kunnr , / 'Country Key: ',t_itabB-land1 , / 'Name 1: ',t_itabB-name1 , / 'Name 2: ',t_itabB-name2 , / 'City: ',t_itabB-ort01 , / 'Postal Code: ',t_itabB-pstlz . ENDLOOP. ENDFORM. "write_data
ปล. ตรงข้อความตัวหนานั้น ตัวสำคัญในการส่งค่า Parameter และ รับค่า Parameter เลยครับ Step คือ โปรแกรม A ส่ง โปรแกรม B ทำ แต่เราสามารถส่งค่าในตัวมันเองได้ด้วยนะครับ