form get_values_f4_function.
* Internal Table for storage location help
TYPES: BEGIN OF tp_person,
bukrs LIKE pa0001-bukrs, "Company Code
pernr LIKE pa0001-pernr, "Personnel number
END OF tp_person.
it_person TYPE TABLE OF tp_person.
TYPES: BEGIN OF tp_person,
bukrs LIKE pa0001-bukrs, "Company Code
pernr LIKE pa0001-pernr, "Personnel number
END OF tp_person.
it_person TYPE TABLE OF tp_person.
data: dynfields type table of dynpread with header line.
dynfields-fieldname = 'S_BUKRS-LOW'.
append dynfields.
dynfields-fieldname = 'S_BUKRS-HIGH'.
append dynfields.
call function 'DYNP_VALUES_READ'
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
translate_to_upper = 'X'
TABLES
dynpfields = dynfields
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
others = 11.
EXPORTING
dyname = sy-cprog
dynumb = sy-dynnr
translate_to_upper = 'X'
TABLES
dynpfields = dynfields
EXCEPTIONS
invalid_abapworkarea = 1
invalid_dynprofield = 2
invalid_dynproname = 3
invalid_dynpronummer = 4
invalid_request = 5
no_fielddescription = 6
invalid_parameter = 7
undefind_error = 8
double_conversion = 9
stepl_not_found = 10
others = 11.
READ TABLE it_dyfields INDEX 1.
rg_bukrs-low = it_dyfields-fieldvalue.
rg_bukrs-low = it_dyfields-fieldvalue.
READ TABLE it_dyfields INDEX 2.
rg_bukrs-high = it_dyfields-fieldvalue.
rg_bukrs-high = it_dyfields-fieldvalue.
SELECT SINGLE * FROM t001 WHERE bukrs IN rg_bukrs.
IF sy-subrc = 0. "Company code is valid
SELECT * FROM pa0001
INTO CORRESPONDING FIELDS OF TABLE it_person
WHERE bukrs IN rg_bukrs.
SELECT * FROM pa0001
INTO CORRESPONDING FIELDS OF TABLE it_person
WHERE bukrs IN rg_bukrs.
DELETE ADJACENT DUPLICATES FROM it_person COMPARING pernr.
SORT it_person BY bukrs pernr.
* Display it.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'PERNR'
dynprofield = 'S_PERNR'
dynpprog = sy-cprog
dynpnr = sy-dynnr
value_org = 'S'
TABLES
value_tab = it_person
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
ENDIF.
endform. "get_values_f4_function
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'PERNR'
dynprofield = 'S_PERNR'
dynpprog = sy-cprog
dynpnr = sy-dynnr
value_org = 'S'
TABLES
value_tab = it_person
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
ENDIF.
endform. "get_values_f4_function