PROVIDE 다중인포타입 기간 처리
DATA: LV_TIMES(2) TYPE N.
DATA: BEGIN OF LS_S0014,
BEG TYPE BEGDA,
END TYPE ENDDA,
ANV TYPE ANSVH,
MNR(3) TYPE NUMC,
END OF LS_S0014.
FIELD-SYMBOLS: <FS_SPT> TYPE LS_S0014.
PROVIDE FROM P9001 BETWEEN BEGDA AND ENDDA.
CLEAR: LV TIMES, LV_FIELD.
DO.
ADD 1 TO LV TIMES.
LV FIELD = ‘P9001-‘ && LV TIMES.
ASSIGN (LV FIELD) TO <FS_SPT>.
IF <FS SPT> IS ASSIGNED AND <FS SPT>-BEG IS NOT INITIAL AND <FS_SPT>-END IS NOT INITIAL.
IF LV_BEGDA IS INITIAL.
LV_BEGDA= <FS_SPT>-BEG.
ENDIF.
MOVE-CORRESPONDING <FS SPT> TO LS_S0014.
LOOP AT P0001 WHERE BEGDA =< LS_S0014-END
AND ENDDA => LS_S0014-BEG.
ENDLOOP.
IF SY-SUBRC = 0.
MOVE-CORRESPONDING P0001 TO LT P0001_SPLIT.
LT_P0001_SPLIT-ANSVH = LS_S0014-ANV.
LT_P0001_SPLIT-BEGDA = LS_S0014-BEG.
LT_P0001_SPLIT-ENDDA = LS_S0014-END.
IF LT_P0001_SPLIT-ENDDA >= P9001-ENDDA.
LT_P0001_SPLIT-ENDDA P9001-ENDDA.
LV ENDDA LT_P0001_SPLIT-ENDDA.
LT_P0001_SPLIT-INFTY= '0001".
APPEND LT_P0001_SPLIT.
CLEAR: LT_P0001_SPLIT, P0001.
EXIT.
ENDIF.
LT_P0001_SPLIT-INFTY= '0001’.
APPEND LT_P0001_SPLIT.
CLEAR LT_P0001_SPLIT, P0001.
ENDIF.
UNASSIGN <FS SPT>.
ELSE.
EXIT.
ENDIF.
IF P9001-ENDDA =< LV_ENDDA.
LV_ENDDA = P9001-ENDDA
ELSE.
LV_ENDDA = LS_S0014-END.
ENDIF.
ENDDO.
ENDPROVIDE.