1. 开始例程 ODSO ZCMMD050 -> ODSO ZCELT078
BREAK-POINT.
DATA: CUSTOMER2 TYPE /BI0/OICUSTOMER.
LOOP AT SOURCE_PACKAGE ASSIGNING <SOURCE_FIELDS>.
IF <SOURCE_FIELDS>-CUSTOMER = ''.
DELETE SOURCE_PACKAGE.
ELSE.
call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
input = <SOURCE_FIELDS>-CUSTOMER
importing
output = CUSTOMER2.
IF CUSTOMER2+0(1) <> '9'.
DELETE SOURCE_PACKAGE.
ENDIF.
ENDIF.
ENDLOOP.
2. 开始例程 ODSO ZCELT058 -> ODSO ZCELT078
BREAK-POINT.
DATA: CUSTOMER2 TYPE /BI0/OICUSTOMER.
LOOP AT SOURCE_PACKAGE ASSIGNING <SOURCE_FIELDS>.
IF <SOURCE_FIELDS>-CUSTOMER = ''.
DELETE SOURCE_PACKAGE.
ELSE.
call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
exporting
input = <SOURCE_FIELDS>-CUSTOMER
importing
output = CUSTOMER2.
IF CUSTOMER2+0(1) <> '9'.
DELETE SOURCE_PACKAGE.
ENDIF.
ENDIF.
ENDLOOP.
3 . 结束例程 ODSO ZCELT058 -> ODSO ZCELT078
TYPES: BEGIN OF TY_ZCMMD050,
CALDAY TYPE /BI0/OICALDAY,
/BIC/ZMATERIAL TYPE /BIC/OIZMATERIAL,
CUSTOMER TYPE /BI0/OICUSTOMER,
/BIC/ZGRID TYPE /BIC/OIZGRID,
/BIC/ZCLABS TYPE /BIC/OIZCLABS,
/BIC/ZJXAMOUNT TYPE /BIC/OIZJXAMOUNT,
/BIC/ZNTJAMT TYPE /BIC/OIZNTJAMT,
END OF TY_ZCMMD050.
DATA: LT_ZCMMD050 TYPE STANDARD TABLE OF TY_ZCMMD050,
LS_ZCMMD050 TYPE TY_ZCMMD050,
LT_RESULT TYPE _ty_t_TG_1,
LS_RESULT TYPE _ty_s_TG_1.
LT_RESULT[] = RESULT_PACKAGE[].
CLEAR RESULT_PACKAGE.
LOOP AT LT_RESULT INTO LS_RESULT.
SELECT CALDAY /BIC/ZMATERIAL CUSTOMER /BIC/ZGRID /BIC/ZCLABS
/BIC/ZJXAMOUNT /BIC/ZNTJAMT
INTO CORRESPONDING FIELDS OF TABLE LT_ZCMMD050
FROM /BIC/AZCMMD05000
WHERE CALDAY = LS_RESULT-CALDAY
AND /BIC/ZMATERIAL = LS_RESULT-/BIC/ZMATERIAL
AND CUSTOMER = LS_RESULT-CUSTOMER
AND /BIC/ZGRID = LS_RESULT-/BIC/ZGRID.
IF SY-SUBRC = 0.
LOOP AT LT_ZCMMD050 INTO LS_ZCMMD050.
IF LS_RESULT-/BIC/ZESTNOW <> LS_ZCMMD050-/BIC/ZCLABS.
LS_RESULT-/BIC/ZCLABS = LS_ZCMMD050-/BIC/ZCLABS.
LS_RESULT-/BIC/ZJXAMOUNT = LS_ZCMMD050-/BIC/ZJXAMOUNT.
LS_RESULT-/BIC/ZNTJ_SUM = LS_ZCMMD050-/BIC/ZNTJAMT.
ENDIF.
ENDLOOP.
ELSE.
LS_RESULT-/BIC/ZCLABS = 0.
LS_RESULT-/BIC/ZJXAMOUNT = 0.
LS_RESULT-/BIC/ZNTJ_SUM = 0.
ENDIF.
APPEND LS_RESULT TO RESULT_PACKAGE.
ENDLOOP.
结束例程
BREAK-POINT.
TYPES: BEGIN OF TY_ZCELT058,
CALDAY TYPE /BI0/OICALDAY,
/BIC/ZMATERIAL TYPE /BIC/OIZMATERIAL,
CUSTOMER TYPE /BI0/OICUSTOMER,
/BIC/ZGRID TYPE /BIC/OIZGRID,
/BIC/ZESTNOW TYPE /BIC/OIZESTNOW,
/BIC/ZJXAMOUNT TYPE /BIC/OIZJXAMOUNT,
/BIC/ZNTJAMT TYPE /BIC/OIZNTJAMT,
END OF TY_ZCELT058.
*
DATA: LT_ZCELT058 TYPE STANDARD TABLE OF TY_ZCELT058,
LS_ZCELT058 TYPE TY_ZCELT058,
LT_RESULT TYPE _ty_t_TG_1,
LS_RESULT TYPE _ty_s_TG_1.
*
LT_RESULT[] = RESULT_PACKAGE[].
CLEAR RESULT_PACKAGE.
*
LOOP AT LT_RESULT INTO LS_RESULT.
SELECT CALDAY /BIC/ZMATERIAL CUSTOMER /BIC/ZGRID /BIC/ZESTNOW
/BIC/ZJXAMOUNT /BIC/ZNTJAMT
INTO CORRESPONDING FIELDS OF TABLE LT_ZCELT058
FROM /BIC/AZCELT05800
WHERE CALDAY = LS_RESULT-CALDAY
AND /BIC/ZMATERIAL = LS_RESULT-/BIC/ZMATERIAL
AND CUSTOMER = LS_RESULT-CUSTOMER
AND /BIC/ZGRID = LS_RESULT-/BIC/ZGRID.
IF SY-SUBRC = 0.
* LOOP AT LT_ZCELT058 INTO LS_ZCELT058.
* IF LS_RESULT-/BIC/ZCLABS <> LS_ZCELT058-/BIC/ZESTNOW.
* LS_RESULT-/BIC/ZESTNOW = LS_ZCELT058-/BIC/ZESTNOW.
* LS_RESULT-/BIC/ZELTJXJ = LS_ZCELT058-/BIC/ZJXAMOUNT.
* LS_RESULT-/BIC/ZELTNTJ = LS_ZCELT058-/BIC/ZNTJAMT.
ELSE.
LS_RESULT-/BIC/ZESTNOW = 0.
LS_RESULT-/BIC/ZELTJXJ = 0.
LS_RESULT-/BIC/ZELTNTJ = 0.
APPEND LS_RESULT TO RESULT_PACKAGE.
ENDIF.
* ENDLOOP.
* ENDIF.
ENDLOOP.