Application Development and Automation 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: 
Read only

WBS Element

adnanmaqbool
Contributor
0 Likes
747

Dear Guys

I want to give my user a selection having only WBS element for selection,

Users requirment is that if he enters a WBS element then the report will show details of all related WBS element below it but not all un related WBS as CJ23N do it.

How the above thing is achievable.

2 REPLIES 2
Read only

Former Member
0 Likes
504

Hi,

You can declare a selection screen like:

select-options: s_wbs for PRPS-PSPNR.

then fetch data from PRPS and PROJ tables and display.

Regards,

Anji

Read only

p291102
Active Contributor
0 Likes
504

Hi,

I am sending the model report for WBS element . It will be very useful for u.

REPORT YMS_WBSNEWN LINE-SIZE 250 NO STANDARD PAGE HEADING.

TYPE-POOLS:SLIS.

TABLES:EKPO,PRPS,MSEG,MAKT,EKKO,MKPF,EKET,LFA1,MDSB,MBEW,ekkn.

DATA: BEGIN OF ITAB OCCURS 0,

NAME1 LIKE LFA1-NAME1, "VENDOR NAME

POSID LIKE PRPS-POSID, "WBS element

PSPNR LIKE PRPS-PSPNR,

EBELN LIKE MSEG-EBELN, "Purchasing Document Number

EBELP LIKE MSEG-EBELP, "Item Number ofPurchasing Document

EMATN LIKE EKPO-EMATN, "Ouput material no

TXZ01 LIKE EKPO-TXZ01, "OUTPUT MATERIAL DESCRIPTION

MENGE LIKE ekpo-MENGE, "OP Quantity

MEINS LIKE ekpo-MEINS, "UOM

ELIKZ LIKE EKPO-ELIKZ, "DELIVERY COMPLETED INDICATOR

  • MATNR LIKE EKPO-MATNR, "Input material no

BWART LIKE MSEG-BWART, "Movement type

EINDT LIKE EKET-EINDT, "ITEM DELIVERY DATE(PO)

LIFNR LIKE MSEG-LIFNR, "Vendor's account number

BUDAT LIKE MKPF-BUDAT, "POSTING DATE

MATNR LIKE MSEG-MATNR, "Input material no

MBLNR LIKE MSEG-MBLNR, "MAT DOC NO

MJAHR LIKE MSEG-MJAHR, "MAT DOC YR

  • EMATN LIKE MSEG-EMATN, "Output material No

ERFMG LIKE MDSB-ERFMG, " i/p material reqd qty

ERFME LIKE MDSB-ERFME, "UOM

  • BWART LIKE MSEG-BWART, "MOVMENT TYPE

PS_PSP_PNR LIKE ekkn-PS_PSP_PNR, "WBS element

MAKTX LIKE MAKT-MAKTX, "MATERIAL DESCRIPTION

EKGRP LIKE EKKO-EKGRP, "PURCHASING GROUP

BEDAT LIKE EKKO-BEDAT, "Purchasing document date

EKORG LIKE EKKO-EKORG, "PURCHASING ORGANISATION

STPRS LIKE MBEW-STPRS, "STANDARD PRICE

DMENG TYPE P DECIMALS 3, "DIFFERENCE

UMENG TYPE P DECIMALS 3, "TOTAL VALUE

END OF ITAB.

DATA: DIFF TYPE P DECIMALS 3.

DATA: TOTAL TYPE P DECIMALS 3.

DATA: REPID LIKE SY-REPID,

AFIELD TYPE SLIS_T_FIELDCAT_ALV,

FIELDCAT TYPE SLIS_FIELDCAT_ALV,

FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV,

I_EVENTS TYPE SLIS_T_EVENT,

S_EVENTS TYPE SLIS_ALV_EVENT,

SORTCAT TYPE SLIS_T_SORTINFO_ALV,

SORTCAT_LN TYPE SLIS_SORTINFO_ALV,

LAYOUT_IN TYPE SLIS_LAYOUT_ALV,

LAYOUT_IN1 TYPE SLIS_LAYOUT_ALV,

EVENTCAT TYPE SLIS_T_EVENT,

EVENTCAT_LN LIKE LINE OF EVENTCAT,

LS_KEYINFO TYPE SLIS_KEYINFO_ALV.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS WBS FOR PRPS-POSID NO INTERVALS NO-EXTENSION.

SELECT-OPTIONS VENDOR FOR ekko-LIFNR. "NO INTERVALS NO-EXTENSION.

SELECT-OPTIONS PDATE FOR ekko-bedat. "NO INTERVALS NO-EXTENSION.

SELECT-OPTIONS PGROUP FOR EKKO-EKGRP. "NO INTERVALS NO-EXTENSION.

SELECT-OPTIONS PURORG FOR EKKO-EKORG. "NO INTERVALS NO-EXTENSION.

SELECT-OPTIONS PURDOCNO FOR EKPO-EBELN. "NO INTERVALS NO-EXTENSION.

SELECTION-SCREEN END OF BLOCK B1.

START-OF-SELECTION.

REPID = SY-REPID.

PERFORM GET_VAL.

*SELECT EBELN EBELP FROM EKPO INTO (ITAB-EBELN, ITAB-EBELP) WHERE EBELN

*IN PURDOCNO.

*

  • SELECT APOSID BMENGE BMEINS BBWART

  • BLIFNR BEBELN BEBELP CNAME1 DEMATN EMATNR F~STPRS

  • "EERFMGEERFME

  • INTO CORRESPONDING FIELDS OF

*TABLE ITAB FROM PRPS AS A INNER JOIN MSEG AS B ON A~PSPNR =

*B~PS_PSP_PNR

  • INNER JOIN LFA1

  • AS C ON CLIFNR = BLIFNR INNER JOIN EKPO AS D ON DEBELN = BEBELN

  • AND DEBELP = BEBELP

  • INNER JOIN MDSB AS E ON EEBELN = BEBELN AND E~EBELP

  • = BEBELP INNER JOIN MBEW AS F ON FMATNR = EMATNR WHERE APOSID IN

*WBS AND

**B~LIFNR IN VENDOR."AND BWART IN ('101').

select aematn aebeln aebelp amenge ameins aTXZ01 a~elikz

b~PS_PSP_PNR

cekgrp cbedat clifnr cekorg

dposid ematnr gstprs "flifnr fmblnr fmjahr ferfmg ferfme

from ekpo as a inner join ekkn as b

on aebeln eq bebeln and aebelp eq bebelp

inner join ekko as c on aebeln eq cebeln

inner join prps as d on bps_psp_pnr eq dpspnr

inner join mdsb as e

on aebeln eq eebeln and aebelp eq eebelp

inner join mbew as g on gmatnr eq ematnr

  • inner join mseg as f on fmatnr eq ematnr

into corresponding fields of table itab where

d~posid in wbs and

c~ekgrp in pgroup and

c~ekorg in purorg and

a~ebeln in purdocno and

c~bedat in pdate and

c~lifnr in vendor .

*AND A~ELIKZ NE 'X'.

  • and f~bwart eq '122'.

"and f~lifnr in vendor

*DELETE ITAB WHERE MATNR IS INITIAL.

LOOP AT ITAB.

  • clear sy-subrc.

IF ITAB-ELIKZ EQ 'X'.

SELECT SINGLE MBLNR MJAHR MENGE MEINS BWART INTO (ITAB-MBLNR,

ITAB-MJAHR, ITAB-ERFMG, ITAB-ERFME, ITAB-BWART) FROM MSEG WHERE MATNR EQ

ITAB-ematn AND BWART EQ '122' AND EBELN EQ ITAB-EBELN AND EBELP EQ

ITAB-EBELP.

IF SY-SUBRC NE 0.

CLEAR: ITAB-MBLNR,ITAB-MJAHR,ITAB-ERFMG, ITAB-ERFME.

  • delete ITAB index sy-tabix.

  • continue.

ELSE.

ITAB-ELIKZ = ''.

ENDIF.

ENDIF.

SELECT SINGLE MBLNR MJAHR MENGE MEINS INTO (ITAB-MBLNR, ITAB-MJAHR,

ITAB-ERFMG, ITAB-ERFME) FROM MSEG WHERE

MATNR EQ ITAB-MATNR AND BWART EQ '541'

and ebeln eq itab-ebeln.

IF SY-SUBRC NE 0.

CLEAR: ITAB-MBLNR,ITAB-MJAHR,ITAB-ERFMG, ITAB-ERFME.

  • delete ITAB index sy-tabix.

  • continue.

ENDIF.

*select single stprs into itab-stprs from mbew where matnr eq itab-matnr

*.

select single name1 into itab-name1 from lfa1 where lifnr eq itab-lifnr.

IF SY-SUBRC NE 0.

CLEAR itab-name1 .

  • CLEAR ITAB-ERFMG.

  • CLEAR: ITAB-ERFME,ITAB-MBLNR,ITAB-MJAHR.

ENDIF.

SELECT SINGLE BUDAT FROM MKPF

INTO (itab-BUDAT) WHERE MBLNR EQ ITAB-MBLNR AND MJAHR EQ ITAB-MJAHR.

  • ITAB-BUDAT = MKPF-BUDAT.

IF SY-SUBRC NE 0.

CLEAR ITAB-BUDAT.

ENDIF.

*

  • SELECT EEINDT FEBELN INTO CORRESPONDING FIELDS OF TABLE ITAB FROM

*EKET AS E INNER JOIN EKKO AS F ON E~EBELN EQ F~EBELN "INTO ITAB-EINDT

  • WHERE EEBELN EQ ITAB-EBELN AND FEKGRP IN PGROUP AND F~EKORG IN

  • PURORG.

  • AND A~PSPNR EQ ITAB-PS_PSP_PNR.

  • ITAB-EMATN = EKPO-EMATN.

  • ITAB-MENGE = EKPO-MENGE.

  • ITAB-MEINS = EKPO-MEINS.

  • ITAB-EBELN = EKPO-EBELN.

  • ITAB-EBELP = EKPO-EBELP.

  • ITAB-EINDT = EKET-EINDT.

  • IF SY-SUBRC NE 0.

  • CLEAR ITAB.

  • CLEAR ITAB-EMATN.

  • CLEAR ITAB-MENGE.

  • CLEAR ITAB-MEINS.

  • CLEAR ITAB-EBELN.

  • CLEAR ITAB-EBELP.

  • CLEAR ITAB-EINDT.

  • ENDIF.

SELECT SINGLE MAKTX FROM MAKT INTO (itab-MAKTX) WHERE

MATNR EQ ITAB-MATNR. "AND PSPNR EQ ITAB-PS_PSP_PNR.

  • ITAB-MAKTX = MAKT-MAKTX.

  • IF SY-SUBRC NE 0.

  • CLEAR ITAB-MAKTX.

  • ENDIF.

  • SELECT SINGLE MATNR FROM MDSB INTO (MDSB-MATNR) WHERE

  • MATNR EQ ITAB-MATNR AND EBELN EQ EKPO-EBELN AND EBELP EQ

  • EKPO-EBELP . "AND PSPNR EQ ITAB-PS_PSP_PNR.

*

  • ITAB-MATNR = MDSB-MATNR.

*

  • IF SY-SUBRC NE 0.

  • CLEAR ITAB-MATNR.

  • ENDIF.

SELECT SINGLE EINDT FROM EKET INTO (itab-EINDT) WHERE

EBELN EQ ITAB-EBELN AND EBELP EQ ITAB-EBELP.

"AND PSPNR EQ ITAB-PS_PSP_PNR.

  • ITAB-EINDT = EKET-EINDT.

  • IF SY-SUBRC NE 0.

  • CLEAR ITAB-EINDT.

  • ENDIF.

  • SELECT SINGLE TXZ01 FROM EKPO INTO (EKPO-TXZ01) WHERE

  • EBELN EQ ITAB-EBELN AND EBELP EQ ITAB-EBELP AND EMATN EQ

  • ITAB-EMATN.

  • "AND PSPNR EQ ITAB-PS_PSP_PNR.

*

  • ITAB-TXZ01 = EKPO-TXZ01.

*

  • IF SY-SUBRC NE 0.

  • CLEAR ITAB-TXZ01.

  • ENDIF.

*

  • SELECT SINGLE BEDAT FROM EKKO INTO (EKKO-BEDAT) WHERE

  • EBELN EQ ITAB-EBELN AND EKGRP IN PGROUP AND EKORG IN PURORG AND

  • BEDAT IN PDATE .

  • "AND PSPNR EQ ITAB-PS_PSP_PNR.

*

  • ITAB-BEDAT = EKKO-BEDAT.

**

  • IF SY-SUBRC NE 0.

  • CLEAR ITAB.

  • ENDIF.

MODIFY ITAB INDEX SY-TABIX.

clear itab.

ENDLOOP.

LOOP AT ITAB.

CLEAR DIFF.

DIFF = ITAB-ERFMG - ITAB-MENGE.

  • DIFF = ITAB-BPMNG - ITAB-MENGE.

ITAB-DMENG = DIFF.

  • MODIFY ITAB INDEX SY-TABIX.

  • clear itab.

  • ENDLOOP.

*

*

  • LOOP AT ITAB.

  • CLEAR TOTAL.

TOTAL = ITAB-MENGE * ITAB-STPRS.

  • DIFF = ITAB-BPMNG - ITAB-MENGE.

ITAB-UMENG = TOTAL.

MODIFY ITAB INDEX SY-TABIX.

clear itab.

ENDLOOP.

SORT ITAB BY EMATN .

DELETE ITAB WHERE ELIKZ eq 'X' .

  • DELETE ADJACENT DUPLICATES FROM ITAB COMPARING EMATN.

sort itab by ebeln ebelp ascending.

LAYOUT_IN-COLWIDTH_OPTIMIZE = 'X'.

LAYOUT_IN-ZEBRA = 'X'.

EVENTCAT_LN-NAME = 'TOP_OF_PAGE'.

EVENTCAT_LN-FORM = 'SUBROUTINE1'.

APPEND EVENTCAT_LN TO EVENTCAT.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = REPID

IT_FIELDCAT = AFIELD

  • IT_SORT = SORTCAT

I_SAVE = 'X '

IT_EVENTS = EVENTCAT

TABLES

T_OUTTAB = ITAB.

----


  • FORM SUBROUTINE1 *

----


  • ........ *

----


FORM SUBROUTINE1.

WRITE:/ 'SERVALL ENGG P LTD.',

/,

/25 'REPORT DATE:', SY-DATUM, 128 'PAGE NO.:' , SY-PAGNO.

*ULINE.

ENDFORM.

----


  • FORM GET_VAL *

----


  • ........ *

----


FORM GET_VAL.

FIELDCAT-COL_POS = '1'.

FIELDCAT-FIELDNAME = 'NAME1'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'LFA1'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'VENDOR NAME'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '2'.

FIELDCAT-FIELDNAME = 'EBELN'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'EKPO'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'PURDOCNO'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '3'.

FIELDCAT-FIELDNAME = 'BEDAT'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'EKKO'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'PURDOCDT'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '4'.

FIELDCAT-FIELDNAME = 'EBELP'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'MSEG'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'ITEMNO'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '5'.

FIELDCAT-FIELDNAME = 'BUDAT'.

FIELDCAT-TABNAME = 'ITAB'.

  • FIELDCAT-REF_TABNAME = 'MKPF'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = '541ISSUE DT'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '6'.

FIELDCAT-FIELDNAME = 'EMATN'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'EKPO'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'O/P MATERIAL NO'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '7'.

FIELDCAT-FIELDNAME = 'TXZ01'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'EKPO'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'O/P MAT.DESC'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '8'.

FIELDCAT-FIELDNAME = 'MATNR'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'MSEG'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'MATERIAL NO'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '9'.

FIELDCAT-FIELDNAME = 'MAKTX'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'MAKT'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'MAT DESC.'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '10'.

FIELDCAT-FIELDNAME = 'EINDT'.

FIELDCAT-TABNAME = 'ITAB'.

  • FIELDCAT-REF_TABNAME = 'EKET'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'PO DELY DATE.'.

APPEND FIELDCAT TO AFIELD.

  • FIELDCAT-COL_POS = '6'.

  • FIELDCAT-FIELDNAME = 'BWART'.

  • FIELDCAT-TABNAME = 'ITAB'.

  • FIELDCAT-REF_TABNAME = 'MSEG'.

  • FIELDCAT-DO_SUM = ''.

  • FIELDCAT-SELTEXT_l = 'MOVEMENT TYPE'.

  • APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '11'.

FIELDCAT-FIELDNAME = 'ERFMG'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'MSEG'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'I/P MAT REQD QTY'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '12'.

FIELDCAT-FIELDNAME = 'ERFME'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'MSEG'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'UOM'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '13'.

FIELDCAT-FIELDNAME = 'MENGE'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'EKPO'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'PO QTY'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '14'.

FIELDCAT-FIELDNAME = 'MEINS'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'EKPO'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'UOM'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '15'.

FIELDCAT-FIELDNAME = 'STPRS'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'MBEW'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'STD PRICE'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '16'.

FIELDCAT-FIELDNAME = 'UMENG'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'MBEW'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'TOTAL VALUE'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '17'.

FIELDCAT-FIELDNAME = 'DMENG'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'MSEG'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'DIFF QTY'.

APPEND FIELDCAT TO AFIELD.

FIELDCAT-COL_POS = '18'.

FIELDCAT-FIELDNAME = 'POSID'.

FIELDCAT-TABNAME = 'ITAB'.

FIELDCAT-REF_TABNAME = 'PRPS'.

FIELDCAT-DO_SUM = ''.

FIELDCAT-SELTEXT_l = 'WBS ELEMENT'.

APPEND FIELDCAT TO AFIELD.

  • FIELDCAT-COL_POS = '19'.

  • FIELDCAT-FIELDNAME = 'MBLNR'.

  • FIELDCAT-TABNAME = 'ITAB'.

    • FIELDCAT-REF_TABNAME = 'MSEG'.

  • FIELDCAT-DO_SUM = ''.

  • FIELDCAT-SELTEXT_l = 'MATDOCNO'.

  • APPEND FIELDCAT TO AFIELD.

*

*

  • SORTCAT_LN-TABNAME = ITAB.

  • SORTCAT_LN-FIELDNAME = 'EBELN'.

    • sortcat_ln-down = 'x'.

*

  • SORTCAT_LN-SUBTOT = 'X'.

    • SORCAT_LN-UP = 'X'.

  • APPEND SORTCAT_LN TO SORTCAT.

ENDFORM.

Thanks,

Shankar