❓ 예시

1. F4IF_INT_TABLE_VALUE_REQUEST

컬럼명을 지정해줘야할 때, 사용했음
1. value_tab , field_tab : field tab 설정을 통해 컬럼명을 임의로 지정이 가능
2. field tab을 줄 경우엔 value_tab 의 값을 문자열로 받기 때문에 정확한 offset 지정이 필요함
2. DDIF_FIELDINFO_GET

해당 필드의 정보를 얻기 위해 사용하는 펑션
1. 테이블 - 필드의 정보를 얻어오는 것이기 때문에, position (순서) offset (위치) 를 정확히 찾아줘야함
2. 디버깅을 통해 INTLEN (내부길이) 를 확인한 후 offset 값을 주면 찾기 편함
FORM f4_sysid .
DATA : ls_field TYPE dfies,
lt_field TYPE TABLE OF dfies,
lt_return TYPE TABLE OF ddshretval,
BEGIN OF ls_f4,
data(500),
END OF ls_f4,
lt_f4 LIKE TABLE OF ls_f4.
SELECT sysid, sysnm
FROM ztfiifsysid
INTO TABLE @DATA(lt_data).
LOOP AT lt_data INTO DATA(ls_data).
CONCATENATE ls_data-sysid ls_data-sysnm INTO ls_f4-data.
APPEND ls_f4 TO lt_f4.
CLEAR ls_f4.
ENDLOOP.
CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
tabname = 'ZTFIIFSYSID'
fieldname = 'SYSID'
lfieldname = 'SYSID'
IMPORTING
dfies_wa = ls_field.
ls_field-fieldname = 'SYSID'.
ls_field-scrtext_m = 'SYSTEM ID'.
ls_field-position = 1.
CLEAR : ls_field-offset.
APPEND ls_field TO lt_field.
CLEAR ls_field.
CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
tabname = 'ZTFIIFSYSID'
fieldname = 'SYSNM'
lfieldname = 'SYSNM'
IMPORTING
dfies_wa = ls_field.
ls_field-fieldname = 'SYSNM'.
ls_field-scrtext_m = 'SYSTEM 이름'.
ls_field-position = 2.
ls_field-offset = 8. " 바이트 수로 계산해서 위치 찍기
APPEND ls_field TO lt_field.
CLEAR ls_field.
* value_tab 과 field_tab 모두 줘야하는 경우, ( 빌트인으로 설계된 테이블 )
* field_tab 에 정확한 offset 을 줘야 제대로 찍힘.
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'SYSID'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'PA_SYSID'
value_org = 'S'
TABLES
value_tab = lt_f4
field_tab = lt_field.
ENDFORM.