hello ,
update the table ZMZAB from external file for the selected plants.how to carry on this .
data : BEGIN OF EING,
MATNR LIKE ZMZAB-MATNR,
WERKS LIKE ZMZAB-WERKS,
GJAHR LIKE ZMZAB-GJAHR,
LETZTZUG(8),
ERSTZUG(8),
END OF EING.
data : BEGIN OF ZW.
INCLUDE STRUCTURE ZMZAB.
DATA: END OF ZW,
PARAMETERS:datei(40).
OPEN DATASET DATEI FOR INPUT IN TEXT MODE encoding default.
IF SY-SUBRC <> 0.
MESSAGE E050 WITH DATEI.
STOP.
ENDIF.
DO.
READ DATASET DATEI INTO EING.
IF SY-SUBRC <> 0.
EXIT.
ENDIF.
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
INPUT = EING-MATNR
IMPORTING
OUTPUT = MATNR
EXCEPTIONS
OTHERS = 1.
SELECT SINGLE * FROM MARA WHERE MATNR = MATNR.
IF SY-SUBRC <> 0.
WRITE: / EING, ' Materialnr. unbekannt'.
CONTINUE.
ENDIF.
IF EING-WERKS <> T001W-WERKS.
SELECT SINGLE * FROM T001W WHERE WERKS = EING-WERKS.
IF SY-SUBRC <> 0.
T001W-WERKS = SPACE.
ENDIF.
ENDIF.
IF T001W-WERKS = SPACE.
WRITE: / EING, ' Werk unbekannt'.
CONTINUE.
ENDIF.
IF EING-GJAHR < '1980' OR EING-GJAHR > SY-DATUM(4).
WRITE: / EING, ' Jahr falsch'.
CONTINUE.
ENDIF.
IF EING-LETZTZUG = '00000000' OR EING-LETZTZUG CN ZIF.
WRITE: / EING, ' Letztes Zugangsdatum falsch'.
CONTINUE.
ENDIF.
EDAT = EING-LETZTZUG.
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
DATE = EDAT
EXCEPTIONS
PLAUSIBILITY_CHECK_FAILED = 1.
IF SY-SUBRC <> 0.
WRITE: / EING, ' Letztes Zugangsdatum unmöglich'.
CONTINUE.
ENDIF.
IF EING-ERSTZUG = '00000000' OR EING-ERSTZUG CN ZIF.
WRITE: / EING, ' Erstes Zugangsdatum falsch'.
CONTINUE.
ENDIF.
EDAT = EING-ERSTZUG.
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
DATE = EDAT
EXCEPTIONS
PLAUSIBILITY_CHECK_FAILED = 1.
IF SY-SUBRC <> 0.
WRITE: / EING, ' Erstes Zugangsdatum unmöglich'.
CONTINUE.
ENDIF.
MOVE-CORRESPONDING EING TO ZW.
ADD 1 TO COM-ZLR.
SELECT SINGLE * FROM ZMZAB WHERE MATNR = MATNR AND
WERKS = ZW-WERKS AND GJAHR = ZW-GJAHR.
IF SY-SUBRC = 0.
IF ZW-ERSTZUG < ZMZAB-ERSTZUG.
ZMZAB-ERSTZUG = ZW-ERSTZUG.
ENDIF.
IF ZW-LETZTZUG > ZMZAB-LETZTZUG.
ZMZAB-LETZTZUG = ZW-LETZTZUG.
ENDIF.
UPDATE ZMZAB.
ELSE.
ZMZAB-MATNR = MATNR.
ZMZAB-WERKS = ZW-WERKS.
ZMZAB-GJAHR = ZW-GJAHR.
ZMZAB-LETZTZUG = ZW-LETZTZUG.
ZMZAB-ERSTZUG = ZW-ERSTZUG.
INSERT ZMZAB.
ENDIF.
IF COM-ZLR = 1000.
COMMIT WORK.
COM-ZLR = 0.
ENDIF.