Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

regarding update using external file

Former Member
0 Kudos

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.

1 REPLY 1

Former Member
0 Kudos

What is ur problem....?