Download as pdf or txt
Download as pdf or txt
You are on page 1of 11

Module Pool Programming

Flow Logic Events


Flow Logic Events

Process on Value Request


After the PROCESS ON VALUE-REQUEST
statement, you can only use the MODULE statement
together with the FIELD statement.
When the user chooses F4 for a field <f>, the system
calls the module <mod> belonging to the FIELD <f>
statement. If there is more than one FIELD statement
for the same field <f>, only the first is executed.
FLOW LOGIC EVENTS

The module <mod> is defined in the ABAP program


like a normal PAI module.

However, the contents of the screen field <f> are not


available, since it is not transported by the FIELD
statement during the
PROCESS ON HELP-REQUEST event.
Code
TYPES: BEGIN OF VALUES,
CARRID TYPE SPFLI-CARRID,
CONNID TYPE SPFLI-CONNID,
END OF VALUES.
DATA: CARRIER(3) TYPE C,
CONNECTION(4) TYPE C.
DATA: PROGNAME LIKE SY-REPID,
DYNNUM LIKE SY-DYNNR,
DYNPRO_VALUES TYPE TABLE OF DYNPREAD,
FIELD_VALUE LIKE LINE OF
DYNPRO_VALUES,
VALUES_TAB TYPE TABLE OF VALUES.
CALL SCREEN 100.
Code
MODULE INIT OUTPUT.
PROGNAME = SY-REPID.
DYNNUM = SY-DYNNR.
CLEAR: FIELD_VALUE, DYNPRO_VALUES.
FIELD_VALUE-FIELDNAME = 'CARRIER'.
APPEND FIELD_VALUE TO
DYNPRO_VALUES.
ENDMODULE.

MODULE CANCEL INPUT.


LEAVE PROGRAM.
ENDMODULE.
Code
MODULE VALUE_CARRIER INPUT.
CALL FUNCTION
'F4IF_FIELD_VALUE_REQUEST'
EXPORTING
TABNAME = 'DEMOF4HELP'
FIELDNAME = 'CARRIER1'
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD = 'CARRIER'.
ENDMODULE.
Code
MODULE VALUE_CONNECTION INPUT.

CALL FUNCTION 'DYNP_VALUES_READ'


EXPORTING
DYNAME = PROGNAME
DYNUMB = DYNNUM
TRANSLATE_TO_UPPER = 'X'
TABLES
DYNPFIELDS = DYNPRO_VALUES.
READ TABLE DYNPRO_VALUES INDEX 1 INTO
FIELD_VALUE.
Code
SELECT CARRID CONNID
FROM SPFLI INTO CORRESPONDING FIELDS
OF TABLE VALUES_TAB WHERE
CARRID = FIELD_VALUE-FIELDVALUE
Code
CALL FUNCTION
'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
RETFIELD = 'CONNID'
DYNPPROG = PROGNAME
DYNPNR = DYNNUM
DYNPROFIELD = 'CONNECTION'
VALUE_ORG = 'S'
TABLES
VALUE_TAB = VALUES_TAB.
ENDMODULE.
Layout

The next screen (statically defined) for screen 100 is


itself. It has the following layout:
Code

PROCESS BEFORE OUTPUT.


MODULE INIT.
PROCESS AFTER INPUT.
MODULE CANCEL AT EXIT-COMMAND.
PROCESS ON VALUE-REQUEST.
FIELD CARRIER MODULE VALUE_CARRIER.
FIELD CONNECTION MODULE
VALUE_CONNECTION.

You might also like