Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FUNCTION ZMM_CAMBIOS_MATERIALES.
- *"----------------------------------------------------------------------
- *"*"Local Interface:
- *" IMPORTING
- *" VALUE(MATERIAL) TYPE MARA-MATNR OPTIONAL
- *" VALUE(FECHA) TYPE MARA-LAEDA
- *" EXPORTING
- *" VALUE(TINFO) TYPE CHAR100
- *" TABLES
- *" MATERIALES TYPE ZTPMATERIALCHANGES
- *" DESCRIPCIONLARGA TYPE ZTP_MAT_DESC_LARGA
- *"----------------------------------------------------------------------
- DATA: IT_MATERIALES TYPE ZTPMATERIALCHANGES,
- WA_MATERIALES LIKE LINE OF IT_MATERIALES,
- IT_DESCLARGA TYPE ZTP_MAT_DESC_LARGA,
- WA_DESCLARGA LIKE LINE OF IT_DESCLARGA,
- IT_TLINE TYPE TLINE OCCURS 0,
- WA_TLINE LIKE LINE OF IT_TLINE.
- TYPES:
- BEGIN OF TY_MARA,
- MATNR TYPE MARA-MATNR,
- ERSDA TYPE MARA-ERSDA,
- LAEDA TYPE MARA-LAEDA,
- MTART TYPE MARA-MTART,
- MEINS TYPE MARA-MEINS,
- MATKL TYPE MARA-MATKL,
- BISMT TYPE MARA-BISMT,
- PRDHA TYPE MARA-PRDHA,
- MSTAE TYPE MARA-MSTAE,
- NORMT TYPE MARA-NORMT,
- END OF TY_MARA,
- BEGIN OF TY_MAKT,
- MATNR TYPE MAKT-MATNR,
- MAKTX TYPE MAKT-MAKTX,
- END OF TY_MAKT,
- BEGIN OF TY_MARC,
- MATNR TYPE MARC-MATNR,
- WERKS TYPE MARC-WERKS,
- EKGRP TYPE MARC-EKGRP,
- INSMK TYPE MARC-INSMK,
- KZKRI TYPE MARC-KZKRI,
- DISMM TYPE MARC-DISMM,
- SERNP TYPE MARC-SERNP,
- END OF TY_MARC,
- BEGIN OF TY_MVKE,
- MATNR TYPE MVKE-MATNR,
- DWERK TYPE MVKE-DWERK,
- VKORG TYPE MVKE-VKORG,
- END OF TY_MVKE,
- BEGIN OF TY_MBEW,
- MATNR TYPE MBEW-MATNR,
- BWKEY TYPE MBEW-BWKEY,
- BWTTY TYPE MBEW-BWTTY,
- BKLAS TYPE MBEW-BKLAS,
- END OF TY_MBEW,
- BEGIN OF TY_MARD,
- MATNR TYPE MARD-MATNR,
- WERKS TYPE MARD-WERKS,
- END OF TY_MARD.
- DATA: IT_MARA TYPE TY_MARA OCCURS 0,
- IT_MAKT TYPE TY_MAKT OCCURS 0,
- IT_MARC TYPE TY_MARC OCCURS 0,
- IT_MARC1 TYPE TY_MARC OCCURS 0,
- IT_MARC2 TYPE TY_MARC OCCURS 0,
- IT_MARC3 TYPE TY_MARC OCCURS 0,
- IT_MARC4 TYPE TY_MARC OCCURS 0,
- IT_MVKE1 TYPE TY_MVKE OCCURS 0,
- IT_MVKE2 TYPE TY_MVKE OCCURS 0,
- IT_MVKE3 TYPE TY_MVKE OCCURS 0,
- IT_MVKE4 TYPE TY_MVKE OCCURS 0,
- IT_MBEW TYPE TY_MBEW OCCURS 0,
- IT_MBEW1 TYPE TY_MBEW OCCURS 0,
- IT_MARD TYPE TY_MARD OCCURS 0,
- WA_MARA LIKE LINE OF IT_MARA,
- WA_MAKT LIKE LINE OF IT_MAKT,
- WA_MARC LIKE LINE OF IT_MARC,
- WA_MVKE1 LIKE LINE OF IT_MVKE1,
- WA_MVKE2 LIKE LINE OF IT_MVKE2,
- WA_MVKE3 LIKE LINE OF IT_MVKE3,
- WA_MVKE4 LIKE LINE OF IT_MVKE4,
- WA_MBEW LIKE LINE OF IT_MBEW.
- DATA: BEGIN OF TI_HEADER OCCURS 0.
- include STRUCTURE THEAD.
- DATA: END OF TI_HEADER.
- DATA: X TYPE I,
- E(1) TYPE N.
- DATA MAT TYPE THEAD-TDNAME.
- TABLES: MARA, MAKT, MVKE.
- IF MATERIAL EQ SPACE.
- * SELECT MARA~MATNR MARA~ERSDA MARA~LAEDA MARA~MTART MAKT~MAKTX MARA~MEINS MARA~MATKL MARA~BISMT MARA~PRDHA MVKE1~DWERK AS DWERK1000 MVKE2~DWERK AS DWERK2000 MVKE3~DWERK AS DWERK3000
- * MVKE4~DWERK AS DWERK4000 MARA~MSTAE MAX( MARC~EKGRP ) AS EKGRP
- * MAX( MARC~INSMK ) AS INSMK MAX( MARC~KZKRI ) AS KZKRI MAX( MARC~DISMM ) AS DISMM MAX( MARC~SERNP ) AS SERNP MAX( MBEW~BWTTY ) AS BWTTY MAX( MBEW~BKLAS ) AS BKLAS MARA~NORMT
- * INTO TABLE IT_MATERIALES
- * FROM MARA
- * LEFT JOIN MAKT ON MARA~MATNR = MAKT~MATNR
- * LEFT JOIN MARC ON MARA~MATNR = MARC~MATNR
- * INNER JOIN MBEW ON MARC~MATNR = MBEW~MATNR AND MARC~WERKS = MBEW~BWKEY
- * LEFT JOIN MARD ON MARC~MATNR = MARD~MATNR AND MARC~WERKS = MARD~WERKS
- * LEFT JOIN MVKE AS MVKE1 ON MARA~MATNR = MVKE1~MATNR AND MVKE1~VKORG = '1000'
- * LEFT JOIN MVKE AS MVKE2 ON MARA~MATNR = MVKE2~MATNR AND MVKE2~VKORG = '2000'
- * LEFT JOIN MVKE AS MVKE3 ON MARA~MATNR = MVKE3~MATNR AND MVKE3~VKORG = '3000'
- * LEFT JOIN MVKE AS MVKE4 ON MARA~MATNR = MVKE4~MATNR AND MVKE4~VKORG = '4000'
- * WHERE MAKT~SPRAS = 'S'
- ** AND MARA~MATNR = MATERIAL
- * AND MARA~LAEDA >= FECHA
- * GROUP BY MARA~MATNR MARA~ERSDA MARA~LAEDA MARA~MTART MAKT~MAKTX MARA~MEINS MARA~MATKL MARA~BISMT MARA~PRDHA MVKE1~DWERK MVKE2~DWERK MVKE3~DWERK MVKE4~DWERK MARA~MSTAE MARA~NORMT.
- SELECT MATNR ERSDA LAEDA MTART MEINS MATKL BISMT PRDHA MSTAE NORMT
- FROM MARA INTO TABLE IT_MARA
- WHERE LAEDA >= FECHA.
- ELSE.
- CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
- EXPORTING
- input = MATERIAL
- IMPORTING
- output = MATERIAL.
- SELECT MATNR ERSDA LAEDA MTART MEINS MATKL BISMT PRDHA MSTAE NORMT
- FROM MARA INTO TABLE IT_MARA
- WHERE MATNR = MATERIAL AND
- LAEDA >= FECHA.
- ENDIF.
- IF NOT IT_MARA[] IS INITIAL.
- SELECT MATNR MAKTX FROM MAKT INTO TABLE IT_MAKT
- FOR ALL ENTRIES IN IT_MARA
- WHERE MATNR = IT_MARA-MATNR AND SPRAS = 'S'.
- SORT IT_MAKT BY MATNR.
- SELECT MATNR WERKS EKGRP INSMK KZKRI SERNP FROM MARC INTO TABLE IT_MARC
- FOR ALL ENTRIES IN IT_MARA
- WHERE MATNR = IT_MARA-MATNR.
- SORT IT_MARC BY MATNR.
- SELECT MATNR DWERK AS DWERK1 VKORG FROM MVKE INTO TABLE IT_MVKE1
- FOR ALL ENTRIES IN IT_MARA
- WHERE MATNR = IT_MARA-MATNR AND VKORG IN ('1000','2000','3000','4000').
- SORT IT_MVKE1 BY MATNR.
- * SELECT MATNR DWERK AS DWERK2 FROM MVKE INTO TABLE IT_MVKE2
- * FOR ALL ENTRIES IN IT_MARA
- * WHERE MATNR = IT_MARA-MATNR AND VKORG = '2000'.
- *
- * SORT IT_MVKE2 BY MATNR.
- *
- * SELECT MATNR DWERK AS DWERK3 FROM MVKE INTO TABLE IT_MVKE3
- * FOR ALL ENTRIES IN IT_MARA
- * WHERE MATNR = IT_MARA-MATNR AND VKORG = '3000'.
- *
- * SORT IT_MVKE3 BY MATNR.
- *
- * SELECT MATNR DWERK AS DWERK4 FROM MVKE INTO TABLE IT_MVKE4
- * FOR ALL ENTRIES IN IT_MARA
- * WHERE MATNR = IT_MARA-MATNR AND VKORG = '4000'.
- *
- * SORT IT_MVKE4 BY MATNR.
- ENDIF.
- IF NOT IT_MARC IS INITIAL.
- SELECT MATNR BWKEY BWTTY BKLAS FROM MBEW INTO TABLE IT_MBEW
- FOR ALL ENTRIES IN IT_MARC
- WHERE MATNR = IT_MARC-MATNR AND BWKEY = IT_MARC-WERKS.
- SORT IT_MARC BY MATNR.
- SELECT MATNR WERKS FROM MARD INTO TABLE IT_MARD
- FOR ALL ENTRIES IN IT_MARC
- WHERE MATNR = IT_MARC-MATNR AND WERKS = IT_MARC-WERKS.
- SORT IT_MARD BY MATNR.
- ENDIF.
- IT_MVKE2[] = IT_MVKE1[].
- IT_MVKE3[] = IT_MVKE1[].
- IT_MVKE4[] = IT_MVKE1[].
- DELETE IT_MVKE1 WHERE VKORG NE '1000'.
- DELETE IT_MVKE2 WHERE VKORG NE '2000'.
- DELETE IT_MVKE3 WHERE VKORG NE '3000'.
- DELETE IT_MVKE4 WHERE VKORG NE '4000'.
- IT_MARC1[] = IT_MARC[].
- IT_MARC2[] = IT_MARC[].
- IT_MARC3[] = IT_MARC[].
- IT_MARC4[] = IT_MARC[].
- IT_MBEW1[] = IT_MBEW[].
- SORT IT_MARC DESCENDING BY EKGRP.
- SORT IT_MARC1 DESCENDING BY INSMK.
- SORT IT_MARC2 DESCENDING BY KZKRI.
- SORT IT_MARC3 DESCENDING BY DISMM.
- SORT IT_MARC4 DESCENDING BY SERNP.
- SORT IT_MBEW DESCENDING BY BKLAS.
- SORT IT_MBEW1 DESCENDING BY BKLAS.
- LOOP AT IT_MARA INTO WA_MARA.
- CLEAR: WA_MATERIALES, WA_MAKT, WA_MARC, WA_MBEW, WA_MVKE1, WA_MVKE2, WA_MVKE3, WA_MVKE4.
- MOVE-CORRESPONDING WA_MARA TO WA_MATERIALES.
- READ TABLE IT_MAKT WITH KEY MATNR = WA_MATERIALES-MATNR BINARY SEARCH INTO WA_MAKT.
- WA_MATERIALES-MAKTX = WA_MAKT-MAKTX.
- READ TABLE IT_MARC WITH KEY MATNR = WA_MATERIALES-MATNR BINARY SEARCH INTO WA_MARC.
- WA_MATERIALES-EKGRP = WA_MARC-EKGRP.
- CLEAR WA_MARC.
- READ TABLE IT_MARC1 WITH KEY MATNR = WA_MATERIALES-MATNR BINARY SEARCH INTO WA_MARC.
- WA_MATERIALES-INSMK = WA_MARC-INSMK.
- CLEAR WA_MARC.
- READ TABLE IT_MARC2 WITH KEY MATNR = WA_MATERIALES-MATNR BINARY SEARCH INTO WA_MARC.
- WA_MATERIALES-KZKRI = WA_MARC-KZKRI.
- CLEAR WA_MARC.
- READ TABLE IT_MARC3 WITH KEY MATNR = WA_MATERIALES-MATNR BINARY SEARCH INTO WA_MARC.
- WA_MATERIALES-DISMM = WA_MARC-DISMM.
- CLEAR WA_MARC.
- READ TABLE IT_MARC4 WITH KEY MATNR = WA_MATERIALES-MATNR BINARY SEARCH INTO WA_MARC.
- WA_MATERIALES-SERNP = WA_MARC-SERNP.
- READ TABLE IT_MBEW WITH KEY MATNR = WA_MATERIALES-MATNR BINARY SEARCH INTO WA_MBEW.
- WA_MATERIALES-BWTTY = WA_MBEW-BWTTY.
- CLEAR WA_MBEW.
- READ TABLE IT_MBEW1 WITH KEY MATNR = WA_MATERIALES-MATNR BINARY SEARCH INTO WA_MBEW.
- WA_MATERIALES-BKLAS = WA_MBEW-BKLAS.
- READ TABLE IT_MVKE1 WITH KEY MATNR = WA_MATERIALES-MATNR BINARY SEARCH INTO WA_MVKE1.
- WA_MATERIALES-DWERK1000 = WA_MVKE1-DWERK.
- READ TABLE IT_MVKE2 WITH KEY MATNR = WA_MATERIALES-MATNR BINARY SEARCH INTO WA_MVKE2.
- WA_MATERIALES-DWERK2000 = WA_MVKE2-DWERK.
- READ TABLE IT_MVKE3 WITH KEY MATNR = WA_MATERIALES-MATNR BINARY SEARCH INTO WA_MVKE3.
- WA_MATERIALES-DWERK3000 = WA_MVKE3-DWERK.
- READ TABLE IT_MVKE4 WITH KEY MATNR = WA_MATERIALES-MATNR BINARY SEARCH INTO WA_MVKE4.
- WA_MATERIALES-DWERK4000 = WA_MVKE4-DWERK.
- APPEND WA_MATERIALES TO IT_MATERIALES.
- ENDLOOP.
- MATERIALES[] = IT_MATERIALES[].
- * data y.
- * y = 0.
- * while y = 0.
- *
- * ENDWHILE.
- IF SY-SUBRC = 0.
- LOOP AT IT_MATERIALES INTO WA_MATERIALES.
- CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
- EXPORTING
- input = WA_MATERIALES-MATNR
- IMPORTING
- output = WA_MATERIALES-MATNR.
- MAT = WA_MATERIALES-MATNR.
- CALL FUNCTION 'READ_TEXT'
- EXPORTING
- CLIENT = SY-MANDT
- ID = 'GRUN'
- LANGUAGE = 'S'
- NAME = MAT
- OBJECT = 'MATERIAL'
- ARCHIVE_HANDLE = 0
- LOCAL_CAT = ' '
- IMPORTING
- HEADER = TI_HEADER
- TABLES
- LINES = IT_TLINE
- EXCEPTIONS
- NOT_FOUND = 1.
- IF SY-SUBRC = 0.
- X = 1.
- LOOP AT IT_TLINE INTO WA_TLINE.
- WA_DESCLARGA-MATNR = WA_MATERIALES-MATNR.
- WA_DESCLARGA-LINEA = X.
- WA_DESCLARGA-TEXTO = WA_TLINE-TDLINE.
- APPEND WA_DESCLARGA TO IT_DESCLARGA.
- X = X + 1.
- ENDLOOP.
- TINFO = 'EJECUCION EXITOSA'.
- ENDIF.
- ENDLOOP.
- DESCRIPCIONLARGA[] = IT_DESCLARGA[].
- MATERIALES[] = IT_MATERIALES[].
- ELSE.
- TINFO = 'NO SE ENCONTRARON REGISTROS'.
- ENDIF.
- ENDFUNCTION.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement