Go on link..

link us with ...

Tuesday, December 21, 2010

Report for Updating the Z table for planned orders

REPORT ZVVF_CR07_8_9_TABUPDATE .

*---------------------------------------------------------------------*
* Report ZVVF_CR07_8_9_TABUPDATE *
* *
* MODULE : Production Planning *
* *
*---------------------------------------------------------------------*
* Objective : Report for Updating the Z table for planned orders *
* *
* Program : Update Tables( ) Download Data( ) Outputs List (X) *
* *
* Technical Specs No : *
* *
* Date Created : *
* *
* Author : *
* *
* Location : *
* *
* LDB : NOT-USED *
*---------------------------------------------------------------------*

*----------------------------------------------------------------------*
* Type-pools
*----------------------------------------------------------------------*

TYPE-POOLS : slis.


*---------------------------------------------------------------------*
* Tables *
*---------------------------------------------------------------------*
TABLES : PBIM,
PBED,
PLAF,
RESB,
KBKO,
PLPO,
CRHD,
ZVVF_CT_MATDISP.

*----------------------------------------------------------------------*
*Types *
*----------------------------------------------------------------------*
TYPES : BEGIN OF TY_MAIN,
WERKS LIKE PBIM-WERKS,
NAME1 LIKE T001W-NAME1,
PBDNR LIKE PBIM-PBDNR,
VERSB LIKE PBIM-VERSB,
BDZEI LIKE PBIM-BDZEI,
PDATU LIKE PBED-PDATU,
MATNR LIKE PBIM-MATNR,
MAKTX LIKE MAKT-MAKTX,
PLNMG LIKE PBED-PLNMG,
* MEINS LIKE PBED-MEINS,
ZVERN(6) TYPE C,
PSTTR LIKE PLAF-PSTTR,
PEDTR LIKE PLAF-PEDTR,
PLNUM LIKE PLAF-PLNUM,
VERID LIKE PLAF-VERID,
MATNRP LIKE PLAF-MATNR,
MAKTX1 LIKE MAKT-MAKTX,
GSMNG LIKE PLAF-GSMNG,
MEINS LIKE PLAF-MEINS,
RSNUM LIKE PLAF-RSNUM,
MATNRR LIKE RESB-MATNR,
MAKTXR LIKE MAKT-MAKTX,
ERFMG LIKE RESB-ERFMG,
ERFME LIKE RESB-ERFME,
BEDID LIKE PLAF-BEDID,
PLNNR LIKE KBKO-PLNNR,
PLNAL LIKE KBKO-PLNAL,
ARBPL LIKE CRHD-ARBPL,
BMSCH LIKE PLPO-BMSCH,
MEINH LIKE PLPO-MEINH,
VGW01 LIKE PLPO-VGW01,
VGE01 LIKE PLPO-VGE01,
FLRATE TYPE P DECIMALS 3,
END OF TY_MAIN.

TYPES : BEGIN OF TY_PLAF,
PSTTR LIKE PLAF-PSTTR,
PEDTR LIKE PLAF-PEDTR,
PLNUM LIKE PLAF-PLNUM,
VERID LIKE PLAF-VERID,
MATNR LIKE PLAF-MATNR,
GSMNG LIKE PLAF-GSMNG,
MEINS LIKE PLAF-MEINS,
RSNUM LIKE PLAF-RSNUM,
BEDID LIKE PLAF-BEDID,
MATNRR LIKE RESB-MATNR,
MAKTXR LIKE MAKT-MAKTX,
ERFMG LIKE RESB-ERFMG,
ERFME LIKE RESB-ERFME,
PLNNR LIKE KBKO-PLNNR,
BMSCH LIKE PLPO-BMSCH,
MEINH LIKE PLPO-MEINH,
VGW01 LIKE PLPO-VGW01,
VGE01 LIKE PLPO-VGE01,
OBJID LIKE CRHD-OBJID,
ARBPL LIKE CRHD-ARBPL,
KTEXT LIKE CRTX-KTEXT,
FLRATE TYPE P DECIMALS 3,
END OF TY_PLAF.

TYPES : BEGIN OF TY_PBIM,
WERKS LIKE PBIM-WERKS,
PBDNR LIKE PBIM-PBDNR,
VERSB LIKE PBIM-VERSB,
BDZEI LIKE PBIM-BDZEI,
MATNR LIKE PBIM-MATNR,
NAME1 LIKE T001W-NAME1,
MAKTX LIKE MAKT-MAKTX,
END OF TY_PBIM.

TYPES : BEGIN OF TY_DATA,
WERKS LIKE PBIM-WERKS,
NAME1 LIKE T001W-NAME1,
PBDNR LIKE PBIM-PBDNR,
VERSB LIKE PBIM-VERSB,
BDZEI LIKE PBIM-BDZEI,
MATNR LIKE PBIM-MATNR,
PDATU LIKE PBED-PDATU,
PLNMG LIKE PBED-PLNMG,
END OF TY_DATA.

TYPES : BEGIN OF TY_RESB,
RSNUM LIKE RESB-RSNUM,
MATNR LIKE RESB-MATNR,
MAKTX LIKE MAKT-MAKTX,
ERFMG LIKE RESB-ERFMG,
ERFME LIKE RESB-ERFME,
END OF TY_RESB.

TYPES : BEGIN OF TY_KBKO,
BEDID LIKE KBKO-BEDID,
PLNNR LIKE KBKO-PLNNR,
PLNAL LIKE KBKO-PLNAL,
END OF TY_KBKO.

TYPES : BEGIN OF TY_PLPO,
PLNNR LIKE PLPO-PLNNR,
BMSCH LIKE PLPO-BMSCH,
MEINH LIKE PLPO-MEINH,
VGW01 LIKE PLPO-VGW01,
VGE01 LIKE PLPO-VGE01,
ARBID LIKE PLPO-ARBID,
OBJID LIKE CRHD-OBJID,
ARBPL LIKE CRHD-ARBPL,
KTEXT LIKE CRTX-KTEXT,
END OF TY_PLPO.

TYPES : BEGIN OF TY_CRHD,
OBJID LIKE CRHD-OBJID,
ARBPL LIKE CRHD-ARBPL,
KTEXT LIKE CRTX-KTEXT,
END OF TY_CRHD.

TYPES : BEGIN OF TY_MAKT,
MATNR LIKE MAKT-MATNR,
MAKTX LIKE MAKT-MAKTX,
END OF TY_MAKT.

TYPES : BEGIN OF TY_VAL,
VERVs LIKE PBIM-VERVS,
END OF TY_VAL.

TYPES : BEGIN OF TY_VERNO,
VERNO LIKE ZVVF_CT_MATDISP-VERNO,
END OF TY_VERNO .

TYPES : BEGIN OF TY_VERVS,
VERVS LIKE PBIM-VERVS,
END OF TY_VERVS.


*----------------------------------------------------------------------*
*Internal tables
*----------------------------------------------------------------------*
*DATA : IT_MAIN TYPE STANDARD TABLE OF TY_MAIN WITH HEADER LINE.
DATA : IT_MAIN TYPE STANDARD TABLE OF ZVVF_CT_MATDISP WITH HEADER LINE.

DATA : IT_PLAF TYPE STANDARD TABLE OF TY_PLAF WITH HEADER LINE.
DATA : IT_PBIM TYPE STANDARD TABLE OF TY_PBIM WITH HEADER LINE.
DATA : IT_DATA TYPE STANDARD TABLE OF TY_DATA WITH HEADER LINE.
DATA : IT_RESB TYPE STANDARD TABLE OF TY_RESB WITH HEADER LINE.
DATA : IT_KBKO TYPE STANDARD TABLE OF TY_KBKO WITH HEADER LINE.
DATA : IT_PLPO TYPE STANDARD TABLE OF TY_PLPO WITH HEADER LINE.
DATA : IT_PLPO1 TYPE STANDARD TABLE OF TY_PLPO WITH HEADER LINE.
DATA : IT_CRHD TYPE STANDARD TABLE OF TY_CRHD WITH HEADER LINE.
DATA : IT_VAL TYPE STANDARD TABLE OF TY_VAL WITH HEADER LINE.
DATA : IT_MAKT TYPE STANDARD TABLE OF TY_MAKT WITH HEADER LINE.
DATA : IT_VERNO TYPE STANDARD TABLE OF TY_VERNO WITH HEADER LINE.
DATA : IT_VERVS TYPE STANDARD TABLE OF TY_VERVS WITH HEADER LINE.

*---------------------------------------------------------------------*
* WORK AREAS Begin with WA *
*---------------------------------------------------------------------*
DATA : WA_MAIN LIKE LINE OF IT_MAIN.

*----------------------------------------------------------------------*
*Constants Begin with C_
*----------------------------------------------------------------------*
CONSTANTS : C_PAART(2) TYPE C VALUE 'LA'.
CONSTANTS : C_PAART1(2) TYPE C VALUE 'NB'."Defined to use in modified query
CONSTANTS : C_POSNR(4) TYPE C VALUE '0010'.
CONSTANTS : C_VORNR(4) TYPE C VALUE '0011'.
CONSTANTS : C_VORNR1(4) TYPE C VALUE '0010'.
CONSTANTS : C_DESC(75) TYPE C VALUE 'MATERIAL WISE-PLANNED VS ACTUAL PRODUCTION REVIEW FOR UPDATE'.

*---------------------------------------------------------------------*
* Data Variables Begin with w_
*
*---------------------------------------------------------------------*
DATA : W_VERVS LIKE PBIM-VERVS,
W_CNT(2) TYPE C,
W_VERNO(12) TYPE C,
W_LAYOUT TYPE SLIS_LAYOUT_ALV,
W_FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
W_LIST_HEADER TYPE SLIS_T_LISTHEADER,
W_EVENTS TYPE SLIS_T_EVENT,
W_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
W_REPID TYPE SY-REPID.


*---------------------------------------------------------------------*
* parameters *
*---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.
SELECTION-SCREEN SKIP 1.

PARAMETERS : PR_WERKS TYPE PBIM-WERKS OBLIGATORY,
PR_PBDNR TYPE PBIM-PBDNR OBLIGATORY,
PR_VERSB TYPE PBIM-VERSB OBLIGATORY.

*---------------------------------------------------------------------*
* Select-options *
*---------------------------------------------------------------------*

SELECT-OPTIONS : SO_PDATU FOR PBED-PDATU OBLIGATORY,
SO_PSTTR FOR PLAF-PSTTR OBLIGATORY,
SO_PEDTR FOR PLAF-PEDTR OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B2 .

*---------------------------------------------------------------------*
* INITIALIZATION *
*---------------------------------------------------------------------*

INITIALIZATION.

W_REPID = SY-REPID.

REFRESH : IT_MAIN ,IT_PLAF,IT_PBIM,IT_DATA,IT_RESB,IT_KBKO,IT_PLPO,
IT_PLPO1,IT_CRHD,IT_VAL.
CLEAR : IT_MAIN ,IT_PLAF,IT_PBIM,IT_DATA,IT_RESB,IT_KBKO,IT_PLPO,
IT_PLPO1,IT_CRHD,IT_VAL.

PERFORM F003_eventtab_build_temp USING w_events[].


*---------------------------------------------------------------------*
* AT SELECTION-SCREEN output.
*---------------------------------------------------------------------*

At Selection-screen output .


*---------------------------------------------------------------------*
* At selection screen *
*---------------------------------------------------------------------*

At Selection-screen.

PERFORM F001_VALIDATE.


*---------------------------------------------------------------------*
* START-OF-SELECTION *
*---------------------------------------------------------------------*


START-OF-SELECTION .

PERFORM F004_FIELDCAT_INIT.

PERFORM F002_FETCH_DATA.

PERFORM F005_DISPLAY_DATA USING W_LIST_HEADER[].


*---------------------------------------------------------------------*
* END-OF-SELECTION *
*---------------------------------------------------------------------*

END-OF-SELECTION.

PERFORM F006_DISPLAY_LIST.

*----------------------------------------------------------------------*
* TOP-OF-PAGE *
*----------------------------------------------------------------------*
TOP-OF-PAGE.


*----------------------------------------------------------------------*
* TOP-OF-PAGE *
*----------------------------------------------------------------------*
END-OF-PAGE.

*&---------------------------------------------------------------------*
*& Form F001_VALIDATE
*&---------------------------------------------------------------------*

FORM F001_VALIDATE .


SELECT VERVS INTO CORRESPONDING FIELDS OF TABLE IT_VERVS "(W_VERVS)
FROM PBIM
WHERE VERSB = PR_VERSB AND
WERKS = PR_WERKS.
IF SY-SUBRC = 0.

READ TABLE IT_VERVS WITH KEY VERVS = 'X'.

IF SY-SUBRC NE 0.
MESSAGE E000(ZMSG_C007_8_9_PP).
ENDIF.

*LOOP AT IT_VERSV.
* IF IT_VERSV-VERSV NE 'X'.
* MESSAGE E000(ZMSG_C007_8_9_PP).
* ENDIF.
*ENDLOOP.
ENDIF.

SELECT P~WERKS P~PBDNR P~VERSB P~BDZEI P~MATNR
Q~NAME1
INTO CORRESPONDING FIELDS OF TABLE IT_PBIM
FROM PBIM AS P
INNER JOIN
T001W AS Q
ON P~WERKS = Q~WERKS
WHERE P~WERKS = PR_WERKS AND
P~VERSB = PR_VERSB AND
P~PBDNR = PR_PBDNR AND
P~VERVS = 'X' AND
P~LOEVR NE 'D'.
IF SY-SUBRC NE 0.
MESSAGE E002(ZMSG_C007_8_9_PP).
ENDIF.


ENDFORM. " F001_VALIDATE



*&---------------------------------------------------------------------*
*& Form F002_FETCH_DATA
*&---------------------------------------------------------------------*

FORM F002_FETCH_DATA .

SELECT MATNR MAKTX INTO CORRESPONDING FIELDS OF TABLE IT_MAKT
FROM MAKT
FOR ALL ENTRIES IN IT_PBIM
WHERE MATNR = IT_PBIM-MATNR AND
SPRAS = 'E'.

LOOP AT IT_PBIM.
READ TABLE IT_MAKT WITH KEY MATNR = IT_PBIM-MATNR.
IF SY-SUBRC = 0.
IT_PBIM-MAKTX = IT_MAKT-MAKTX.
MODIFY IT_PBIM TRANSPORTING MAKTX WHERE MATNR = IT_MAKT-MATNR.
ENDIF.
ENDLOOP.

CLEAR IT_MAKT.
REFRESH IT_MAKT."AS TO USE THE SAME INTERNAL TABLE FOR FETCHING DESC OF OTHER MATERIAL

* IF SY-SUBRC = 0.
*
* ENDIF.

* SELECT P~WERKS P~PBDNR P~VERSB P~BDZEI P~MATNR
* Q~PDATU Q~PLNMG
* R~NAME1
* INTO CORRESPONDING FIELDS OF TABLE IT_DATA
* FROM PBIM AS P
* INNER JOIN
* PBED AS Q
* ON P~BDZEI = Q~BDZEI
* INNER JOIN T001W AS R
* ON P~WERKS = R~WERKS
* WHERE P~WERKS = PR_WERKS AND
* P~VERSB = PR_VERSB AND
* P~PBDNR = PR_PBDNR AND
* Q~PDATU IN SO_PDATU.


IF SY-SUBRC = 0.
*--------------query before modifications

* SELECT PSTTR PEDTR PLNUM VERID MATNR GSMNG MEINS RSNUM BEDID
* INTO CORRESPONDING FIELDS OF TABLE IT_PLAF
* FROM PLAF
* FOR ALL ENTRIES IN IT_PBIM
* WHERE MATNR = IT_PBIM-MATNR AND
* PLWRK = PR_WERKS AND
* PSTTR IN SO_PSTTR AND
* PEDTR IN SO_PEDTR AND
* PAART = C_PAART AND
* BESKZ IN ('E','X').

*--------------query after modifications


SELECT PSTTR PEDTR PLNUM VERID MATNR GSMNG MEINS RSNUM BEDID
INTO CORRESPONDING FIELDS OF TABLE IT_PLAF
FROM PLAF
FOR ALL ENTRIES IN IT_PBIM
WHERE MATNR = IT_PBIM-MATNR AND
PLWRK = PR_WERKS AND
PSTTR IN SO_PSTTR AND
PEDTR IN SO_PEDTR AND
PAART = C_PAART.
* BESKZ IN ('E','X').

IF SY-SUBRC NE 0.
*-------TO GET PLNUM ALSO FOR PAART = LB AND SOBES = 3.
MESSAGE E003(ZMSG_C007_8_9_PP).
ELSE.
SELECT PSTTR PEDTR PLNUM VERID MATNR GSMNG MEINS RSNUM BEDID
APPENDING CORRESPONDING FIELDS OF TABLE IT_PLAF
* APPENDING INTO CORRESPONDING FIELDS OF TABLE IT_PLAF
FROM PLAF
FOR ALL ENTRIES IN IT_PBIM
WHERE MATNR = IT_PBIM-MATNR AND
PLWRK = PR_WERKS AND
PSTTR IN SO_PSTTR AND
PEDTR IN SO_PEDTR AND
PAART = C_PAART1 AND
SOBES = '3'.
* BESKZ IN ('E','X').
SORT IT_PLAF BY PLNUM.
DELETE ADJACENT DUPLICATES FROM IT_PLAF.

*-------------end of query -------------------------------
SELECT RSNUM MATNR ERFMG ERFME INTO CORRESPONDING FIELDS OF TABLE IT_RESB
FROM RESB
FOR ALL ENTRIES IN IT_PLAF
WHERE RSNUM = IT_PLAF-RSNUM AND
POSNR = C_POSNR AND
KZKUP NE 'X'.

SELECT MATNR MAKTX INTO CORRESPONDING FIELDS OF TABLE IT_MAKT
FROM MAKT
FOR ALL ENTRIES IN IT_RESB
WHERE MATNR = IT_RESB-MATNR AND
SPRAS = 'E'.

LOOP AT IT_RESB.
READ TABLE IT_MAKT WITH KEY MATNR = IT_RESB-MATNR.
IF SY-SUBRC = 0.
IT_RESB-MAKTX = IT_MAKT-MAKTX.
MODIFY IT_RESB TRANSPORTING MAKTX WHERE MATNR = IT_MAKT-MATNR.
ENDIF.
ENDLOOP.


SELECT BEDID PLNNR PLNAL INTO CORRESPONDING FIELDS OF TABLE IT_KBKO
FROM KBKO
FOR ALL ENTRIES IN IT_PLAF
WHERE BEDID = IT_PLAF-BEDID.

IF SY-SUBRC = 0.
LOOP AT IT_PLAF.
READ TABLE IT_RESB WITH KEY RSNUM = IT_PLAF-RSNUM.
IF SY-SUBRC = 0.
IT_PLAF-MAKTXR = IT_RESB-MAKTX.
IT_PLAF-MATNRR = IT_RESB-MATNR.
IT_PLAF-ERFMG = IT_RESB-ERFMG.
IT_PLAF-ERFME = IT_RESB-ERFME.
MODIFY IT_PLAF TRANSPORTING MATNRR ERFMG ERFME MAKTXR
WHERE RSNUM = IT_RESB-RSNUM.
ENDIF.

READ TABLE IT_KBKO WITH KEY BEDID = IT_PLAF-BEDID.
IF SY-SUBRC = 0.
IT_PLAF-PLNNR = IT_KBKO-PLNNR.
MODIFY IT_PLAF TRANSPORTING PLNNR
WHERE RSNUM = IT_RESB-RSNUM.
ENDIF.

ENDLOOP.

*----------QUERY BEFORE MODIFICATIONS

* SELECT PLNNR BMSCH MEINH VGW01 VGE01
* INTO CORRESPONDING FIELDS OF TABLE IT_PLPO
* FROM PLPO
* FOR ALL ENTRIES IN IT_PLAF
* WHERE PLNNR = IT_PLAF-PLNNR AND
* VORNR = C_VORNR.

*---------QUERY AFTER MODIFICATIONS.

SELECT PLNNR BMSCH MEINH VGW01 VGE01
INTO CORRESPONDING FIELDS OF TABLE IT_PLPO
FROM PLPO
FOR ALL ENTRIES IN IT_PLAF
WHERE PLNNR = IT_PLAF-PLNNR AND
PHFLG = 'X' AND
STEUS IN ('PI03','PIO4').
* VORNR = C_VORNR.

IF SY-SUBRC = 0.
ENDIF.

*---------FOR SELECTING THE WORK CENTERS

SELECT PLNNR BMSCH MEINH VGW01 VGE01 ARBID
INTO CORRESPONDING FIELDS OF TABLE IT_PLPO1
FROM PLPO
FOR ALL ENTRIES IN IT_PLAF
WHERE PLNNR = IT_PLAF-PLNNR AND
PHFLG NE 'X' AND
STEUS IN ('PI03','PI04').
* VORNR = C_VORNR1.
IF SY-SUBRC = 0.

SELECT P~OBJID P~ARBPL
Q~KTEXT
INTO CORRESPONDING FIELDS OF TABLE IT_CRHD
FROM CRHD AS P INNER JOIN
CRTX AS Q
ON P~OBJID = Q~OBJID AND
P~OBJTY = Q~OBJTY
FOR ALL ENTRIES IN IT_PLPO1
WHERE P~OBJID = IT_PLPO1-ARBID.

LOOP AT IT_PLPO1.
READ TABLE IT_CRHD WITH KEY OBJID = IT_PLPO1-ARBID.
IF SY-SUBRC = 0.
IT_PLPO1-OBJID = IT_CRHD-OBJID.
IT_PLPO1-ARBPL = IT_CRHD-ARBPL.
IT_PLPO1-KTEXT = IT_CRHD-KTEXT.
MODIFY IT_PLPO1 TRANSPORTING OBJID ARBPL KTEXT WHERE ARBID = IT_CRHD-OBJID.
ENDIF.
ENDLOOP.

LOOP AT IT_PLAF.
READ TABLE IT_PLPO WITH KEY PLNNR = IT_PLAF-PLNNR.
READ TABLE IT_PLPO1 WITH KEY PLNNR = IT_PLAF-PLNNR.

IF SY-SUBRC = 0.
IT_PLAF-BMSCH = IT_PLPO-BMSCH.
IT_PLAF-MEINH = IT_PLPO-MEINH.
IT_PLAF-VGW01 = IT_PLPO-VGW01.
IT_PLAF-VGE01 = IT_PLPO-VGE01.
IT_PLAF-OBJID = IT_PLPO1-OBJID.
IT_PLAF-ARBPL = IT_PLPO1-ARBPL.
IT_PLAF-KTEXT = IT_PLPO1-KTEXT.
IF IT_PLPO-VGW01 NE 0.
IT_PLAF-FLRATE = IT_PLPO-BMSCH / IT_PLPO-VGW01 / 60.
ENDIF.
MODIFY IT_PLAF TRANSPORTING BMSCH MEINH VGW01 VGE01 OBJID ARBPL KTEXT FLRATE
WHERE PLNNR = IT_PLPO-PLNNR.
ENDIF.
ENDLOOP.

ENDIF.
ENDIF.


**********************************************************
*SELECT P~WERKS P~PBDNR P~VERSB P~BDZEI P~MATNR
* Q~PDATU Q~PLNMG
* R~PSTTR R~PEDTR R~PLNUM R~VERID R~GSMNG R~MEINS R~RSNUM R~BEDID
* INTO CORRESPONDING FIELDS OF TABLE IT_DATA
* FROM PBIM AS P
* INNER JOIN
* PBED AS Q
* ON P~BDZEI = Q~BDZEI
* INNER JOIN
* PLAF AS R
* ON P~MATNR = R~MATNR
* WHERE P~WERKS = PR_WERKS AND
* P~VERSB IN SO_VERSB AND
* P~PBDNR IN SO_PBDNR AND
* Q~PDATU IN SO_PDATU AND
* PSTTR IN SO_PSTTR AND
* PEDTR IN SO_PEDTR AND
* PAART = C_PAART AND
* BESKZ IN ('E','X').
*
*FIND THE UNIQUE KEY IN BETWEEN PBIM AND PLAF OR PBED AND PLAF.
*****************************************************************
SELECT VERNO INTO CORRESPONDING FIELDS OF TABLE IT_VERNO
FROM ZVVF_CT_MATDISP
WHERE WERKS = PR_WERKS AND
PBDNR = PR_PBDNR AND
VERSB = PR_VERSB.
*IF SY-SUBRC = 0.
*SORT IT_VERNO BY VERNO DESCENDING.
*READ TABLE IT_VERNO INDEX 1.
*W_CNT = IT_VERNO-VERNO+6(2).
*W_CNT = W_CNT + 1.
*ELSE.
*W_CNT = '01'.
*ENDIF.
*
*CONCATENATE PR_PBDNR PR_VERSB W_CNT INTO W_VERNO.
*
*IF STRLEN( W_VERNO ) NE 8.
*
*CONCATENATE W_VERNO+0(6) '0' W_VERNO+6(1) INTO W_VERNO.
*
*ENDIF.

IF SY-SUBRC = 0.
SORT IT_VERNO BY VERNO DESCENDING.
READ TABLE IT_VERNO INDEX 1.
W_CNT = IT_VERNO-VERNO+10(2).
W_CNT = W_CNT + 1.
ELSE.
W_CNT = '01'.
ENDIF.

CONCATENATE PR_WERKS PR_PBDNR PR_VERSB W_CNT INTO W_VERNO.

IF STRLEN( W_VERNO ) NE 12.

CONCATENATE W_VERNO+0(10) '0' W_VERNO+10(1) INTO W_VERNO.

ENDIF.



LOOP AT IT_PBIM.
* READ TABLE IT_DATA WITH KEY WERKS = IT_PBIM-WERKS PBDNR = IT_PBIM-PBDNR
* VERSB = IT_PBIM-VERSB MATNR = IT_PBIM-MATNR.
*LOOP AT IT_DATA WHERE WERKS = IT_PBIM-WERKS AND PBDNR = IT_PBIM-PBDNR AND
* VERSB = IT_PBIM-VERSB AND MATNR = IT_PBIM-MATNR.
* IF SY-SUBRC = 0.


LOOP AT IT_PLAF WHERE MATNR = IT_PBIM-MATNR.
MOVE W_VERNO TO IT_MAIN-VERNO."
MOVE IT_PBIM-WERKS TO IT_MAIN-WERKS.
MOVE IT_PBIM-PBDNR TO IT_MAIN-PBDNR.
MOVE IT_PBIM-VERSB TO IT_MAIN-VERSB.
MOVE IT_PBIM-MATNR TO IT_MAIN-MATNR.
MOVE IT_PBIM-NAME1 TO IT_MAIN-NAME1.
MOVE IT_PBIM-MAKTX TO IT_MAIN-MAKTX.
MOVE IT_PBIM-BDZEI TO IT_MAIN-BDZEI.
* MOVE IT_DATA-BDZEI TO IT_MAIN-BDZEI.
* MOVE IT_DATA-PDATU TO IT_MAIN-PDATU.
* MOVE IT_DATA-PLNMG TO IT_MAIN-PLNMG.
MOVE IT_PLAF-PSTTR TO IT_MAIN-PSTTR.
MOVE IT_PLAF-PEDTR TO IT_MAIN-PEDTR.
MOVE IT_PLAF-PLNUM TO IT_MAIN-PLNUM.
MOVE IT_PLAF-VERID TO IT_MAIN-VERID.
* MOVE IT_PLAF-MATNR TO IT_MAIN-MATNRP.
* MOVE IT_PLAF-MATNR TO IT_MAIN-MATNR1."
MOVE IT_PLAF-GSMNG TO IT_MAIN-GSMNG.
MOVE IT_PLAF-MEINS TO IT_MAIN-MEINS.
MOVE IT_PLAF-RSNUM TO IT_MAIN-RSNUM.
MOVE IT_PLAF-BEDID TO IT_MAIN-BEDID.
MOVE IT_PLAF-MATNRR TO IT_MAIN-MATNR1.
MOVE IT_PLAF-MAKTXR TO IT_MAIN-MAKTX1.
MOVE IT_PLAF-ERFMG TO IT_MAIN-ERFMG.
MOVE IT_PLAF-ERFME TO IT_MAIN-ERFME.
MOVE IT_PLAF-PLNNR TO IT_MAIN-PLNNR.
MOVE IT_PLAF-BMSCH TO IT_MAIN-BMSCH.
MOVE IT_PLAF-MEINH TO IT_MAIN-MEINH.
MOVE IT_PLAF-VGW01 TO IT_MAIN-VGW01.
MOVE IT_PLAF-VGE01 TO IT_MAIN-VGE01.
MOVE IT_PLAF-OBJID TO IT_MAIN-OBJID.
MOVE IT_PLAF-ARBPL TO IT_MAIN-ARBPL.
MOVE IT_PLAF-KTEXT TO IT_MAIN-KTEXT.
MOVE IT_PLAF-FLRATE TO IT_MAIN-FLOWRATE.
APPEND IT_MAIN.
ENDLOOP.
* ENDIF.
ENDLOOP.
* ENDLOOP. " EXTRA
ENDIF.
ENDIF.

ENDFORM. " F002_FETCH_DATA

*&---------------------------------------------------------------------*
*& Form F003_eventtab_build_temp
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_W_EVENTS[] text
*----------------------------------------------------------------------*

FORM F003_eventtab_build_temp USING RT_EVENTS TYPE SLIS_T_EVENT.

DATA : LW_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = RT_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

READ TABLE RT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE INTO LW_EVENT.
IF SY-SUBRC = 0.
MOVE W_TOP_OF_PAGE TO LW_EVENT-FORM.
APPEND LW_EVENT TO RT_EVENTS.
ENDIF.


ENDFORM. " F003_eventtab_build_temp

*&---------------------------------------------------------------------*
*& Form F004_FIELDCAT_INIT
*&---------------------------------------------------------------------*

FORM F004_FIELDCAT_INIT .

DATA : LW_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'WERKS'.
lw_fieldcat-seltext_m = 'Plant Code'.
lw_fieldcat-outputlen = 4.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'NAME1'.
lw_fieldcat-seltext_m = 'Plant Description'.
lw_fieldcat-outputlen = 30.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'PBDNR'.
lw_fieldcat-seltext_m = 'Requirement Plan No'.
lw_fieldcat-outputlen = 10.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'VERSB'.
lw_fieldcat-seltext_m = 'Version No'.
lw_fieldcat-outputlen = 2.
APPEND lw_fieldcat TO w_fieldcatalog.

* CLEAR lw_fieldcat.
* lw_fieldcat-fieldname = 'PDATU'.
* lw_fieldcat-seltext_m = 'Plan Del date'.
* lw_fieldcat-outputlen = 8.
* APPEND lw_fieldcat TO w_fieldcatalog.
*
CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'MATNR'.
lw_fieldcat-seltext_m = 'Material Code'.
lw_fieldcat-outputlen = 18.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'MAKTX'.
lw_fieldcat-seltext_m = 'Material Desc'.
lw_fieldcat-outputlen = 40.
APPEND lw_fieldcat TO w_fieldcatalog.
*
* CLEAR lw_fieldcat.
* lw_fieldcat-fieldname = 'PLNMG'.
* lw_fieldcat-seltext_m = 'Planned Qty'.
* lw_fieldcat-outputlen = 13.
* APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'VERNO'.
lw_fieldcat-seltext_m = 'PLO.Version'.
lw_fieldcat-outputlen = 6.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'PSTTR'.
lw_fieldcat-seltext_m = 'Order Start Date'.
lw_fieldcat-outputlen = 8.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'PEDTR'.
lw_fieldcat-seltext_m = 'Order End Date'.
lw_fieldcat-outputlen = 8.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'PLNUM'.
lw_fieldcat-seltext_m = 'Planned Order'.
lw_fieldcat-outputlen = 10.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'VERID'.
lw_fieldcat-seltext_m = 'Prod Ver'.
lw_fieldcat-outputlen = 4.
APPEND lw_fieldcat TO w_fieldcatalog.


CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'GSMNG'.
lw_fieldcat-seltext_m = 'Planned Order Qty'.
lw_fieldcat-outputlen = 13.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'MEINS'.
lw_fieldcat-seltext_m = 'Base Unit'.
lw_fieldcat-outputlen = 3.
APPEND lw_fieldcat TO w_fieldcatalog.


CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'RSNUM'.
lw_fieldcat-seltext_m = 'Reservation Num'.
lw_fieldcat-outputlen = 10.
APPEND lw_fieldcat TO w_fieldcatalog.


CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'MATNR1'.
lw_fieldcat-seltext_m = 'Planned Material'.
lw_fieldcat-outputlen = 18.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'MAKTX1'.
lw_fieldcat-seltext_m = 'Material Desc'.
lw_fieldcat-outputlen = 40.
APPEND lw_fieldcat TO w_fieldcatalog.



CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'ERFMG'.
lw_fieldcat-seltext_m = 'Planned req Qty'.
lw_fieldcat-outputlen = 13.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'ERFME'.
lw_fieldcat-seltext_m = 'Planned Unit Of Issue'.
lw_fieldcat-outputlen = 3.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'BEDID'.
lw_fieldcat-seltext_m = 'ID of Planned Order'.
lw_fieldcat-outputlen = 12.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'PLNNR'.
lw_fieldcat-seltext_m = 'Recipe Group'.
lw_fieldcat-outputlen = 8.
APPEND lw_fieldcat TO w_fieldcatalog.


CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'ARBPL'.
lw_fieldcat-seltext_m = 'Work Center'.
lw_fieldcat-outputlen = 8.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'KTEXT'.
lw_fieldcat-seltext_m = 'Work Center Description'.
lw_fieldcat-outputlen = 40.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'BMSCH'.
lw_fieldcat-seltext_m = 'Base Qty'.
lw_fieldcat-outputlen = 13.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'MEINH'.
lw_fieldcat-seltext_m = 'Act./Op UoM'.
lw_fieldcat-outputlen = 3.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'VGW01'.
lw_fieldcat-seltext_m = 'STD Value'.
lw_fieldcat-outputlen = 9.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'VGE01'.
lw_fieldcat-seltext_m = 'STD Value Unit'.
lw_fieldcat-outputlen = 3.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'FLOWRATE'."'FLRATE'.
lw_fieldcat-seltext_m = 'Flow Rate/Hr'.
lw_fieldcat-outputlen = 13.
APPEND lw_fieldcat TO w_fieldcatalog.

CLEAR lw_fieldcat.
lw_fieldcat-fieldname = 'OBJID'.
lw_fieldcat-seltext_m = 'Object Id'.
lw_fieldcat-outputlen = 8.
APPEND lw_fieldcat TO w_fieldcatalog.



ENDFORM. " F004_FIELDCAT_INIT

*&---------------------------------------------------------------------*
*& Form F005_DISPLAY_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_W_LIST_HEADER[] text
*----------------------------------------------------------------------*

FORM F005_DISPLAY_DATA USING lt_top_of_page TYPE slis_t_listheader.

DATA : lw_line TYPE slis_listheader.

CLEAR lw_line.
lw_line-typ = 'H'.
lw_line-info = C_DESC.
APPEND lw_line TO lt_top_of_page.
CLEAR lw_line.

* CLEAR lw_line.
* lw_line-typ = 'S'.
* lw_line-info = C_INFO.
* APPEND lw_line TO lt_top_of_page.
* CLEAR lw_line.



ENDFORM. " F005_DISPLAY_DATA

*&--------------------------------------------------------------------*
*& Form TOP_OF_PAGE
*&--------------------------------------------------------------------*

FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = W_LIST_HEADER
* I_LOGO =
* I_END_OF_LIST_GRID =
.
ENDFORM. "TOP_OF_PAGE

*&---------------------------------------------------------------------*
*& Form F006_DISPLAY_LIST
*&---------------------------------------------------------------------*

FORM F006_DISPLAY_LIST .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = W_REPID
I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
I_BACKGROUND_ID = 'ALV_BACKGROUND'
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = W_LAYOUT
IT_FIELDCAT = W_FIELDCATALOG[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
I_SAVE = 'A'
* IS_VARIANT =
IT_EVENTS = W_EVENTS[]
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_MAIN
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.



ENDFORM. " F006_DISPLAY_LIST

*&---------------------------------------------------------------------*
*& Form PF_STATUS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM PF_STATUS using extab type slis_t_extab.

SET PF-STATUS 'ZC7_8_9_STANDARD'.

ENDFORM. "PF_STATUS

*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM USER_COMMAND using OK_CODE type SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.

CASE OK_CODE.
WHEN '&DATA_SAVE'.

PERFORM F007_SAVE_DATA.

MESSAGE I001(ZMSG_C007_8_9_PP).

LEAVE PROGRAM.


ENDCASE.


ENDFORM. "USER_COMMAND
*&---------------------------------------------------------------------*
*& Form F007_SAVE_DATA
*&---------------------------------------------------------------------*

FORM F007_SAVE_DATA .

DATA : LW_CNT(2) TYPE C.

DATA : LW_VERNO(12) TYPE C.

SELECT VERNO INTO CORRESPONDING FIELDS OF TABLE IT_VERNO
FROM ZVVF_CT_MATDISP
WHERE WERKS = PR_WERKS AND
PBDNR = PR_PBDNR AND
VERSB = PR_VERSB.
IF SY-SUBRC = 0.
SORT IT_VERNO BY VERNO DESCENDING.
READ TABLE IT_VERNO INDEX 1.
LW_CNT = IT_VERNO-VERNO+10(2).
LW_CNT = LW_CNT + 1.
ELSE.
LW_CNT = '01'.
ENDIF.

CONCATENATE PR_WERKS PR_PBDNR PR_VERSB LW_CNT INTO LW_VERNO.

IF STRLEN( LW_VERNO ) NE 12.

CONCATENATE LW_VERNO+0(10) '0' LW_VERNO+10(1) INTO LW_VERNO.

ENDIF.

LOOP AT IT_MAIN INTO WA_MAIN.
WA_MAIN-VERNO = LW_VERNO.
MODIFY IT_MAIN FROM WA_MAIN.
INSERT ZVVF_CT_MATDISP FROM WA_MAIN.

ENDLOOP.



ENDFORM. " F007_SAVE_DATA

No comments:

link us...

For Visitors

if you want to publish or Add something on ERP, SAP , SAP FUNCTIONAL, SAP ABAP then mail us along with your email-id. contain must be yours

email-id :- avinashkr_raj@yahoo.com(any email)

email-id :- avinaskr_raj.abap@blogger.com ( use only gmail)