Skip to Content
0
Former Member
Jun 25, 2008 at 06:27 AM

regarding update using external file

29 Views

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.