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

Billing Level WBS element

Former Member
0 Likes
493

Hi,

Iam Running a report. If i key in Project # and weekend dates , The Report Should fetch WBS element, WBS element - Billing Level , etc etc

Suppose a project 13381 has wbs elements 13381.001, 13381.101, 13381.501. The WBS Element Billing level for them are 13381-B01, 13381-B02, 13381-B03.

This is coming Properly in the Report.

But When I Key In Project Number as Select-options.

Project # 13381 to 13382

Iam Not Getting The Billing level of 13382 , But Iam properly getting The billing level for 13381. If the execute the report with single Project I get it properly , But The same thing with range Iam not getting Billing level for the Other Projects in the Range.

Below is the Code only for Fetching WBS level 2 .

Plz Tell me , How do i get the billing level for the all the projects in Range. What should i change in the code

DATA: TEMP_PSPNR LIKE PRPS-PSPNR.

DATA: BEGIN OF INT_PRHI OCCURS 0,

LEVEL(1) TYPE C, "level in the hierarchy

WBS LIKE PRHI, "Record for hierarchy

END OF INT_PRHI.

DATA: LEVEL2_INIT(1) TYPE C. "set to initial for each new proj

DATA: BEGIN OF LEVEL2_PRPS OCCURS 0,

POSNR LIKE PRHI-POSNR,

POSID LIKE PRPS-POSID,

POST1 LIKE PRPS-POST1,

END OF LEVEL2_PRPS.

IF PRPS-PSPNR <> TEMP_PSPNR.

MOVE PRPS-PSPNR TO TEMP_PSPNR.

MOVE PRPS-POSID TO ITAB-X_WBSELEMENT.

ENDIF.

PERFORM FIND_LEVEL_2

USING PROJ-PSPNR

TEMP_PSPNR.

ITAB-X_WBS_LEVEL2TITLE = LEVEL2_PRPS-POST1.

ITAB-X_WBS_LEVEL2 = LEVEL2_PRPS-POSID.

FORM FIND_LEVEL_2

USING PROJECT

WBS.

DATA: TOP_POSNR LIKE PRHI-POSNR,

FIND_POSNR LIKE PRHI-POSNR,

SECOND_POSNR LIKE PRHI-POSNR.

IF LEVEL2_INIT IS INITIAL.

LEVEL2_INIT = 'X'.

CLEAR INT_PRHI.

REFRESH INT_PRHI.

SELECT * FROM PRHI

WHERE PSPHI = PROJECT.

MOVE-CORRESPONDING PRHI TO INT_PRHI-WBS.

APPEND INT_PRHI.

ENDSELECT.

SORT INT_PRHI BY WBS-POSNR.

LOOP AT INT_PRHI WHERE WBS-UP = '00000000'.

EXIT.

ENDLOOP.

TOP_POSNR = INT_PRHI-WBS-POSNR.

LOOP AT INT_PRHI WHERE

WBS-UP = TOP_POSNR.

INT_PRHI-LEVEL = '2'.

MODIFY INT_PRHI.

SECOND_POSNR = INT_PRHI-WBS-POSNR.

LOOP AT INT_PRHI WHERE

WBS-UP = SECOND_POSNR.

INT_PRHI-LEVEL = '3'.

MODIFY INT_PRHI.

ENDLOOP.

ENDLOOP.

ENDIF.

FIND_POSNR = WBS.

DO 10 TIMES.

LOOP AT INT_PRHI

WHERE WBS-POSNR = FIND_POSNR.

ENDLOOP.

IF INT_PRHI-LEVEL = '2'.

SECOND_POSNR = INT_PRHI-WBS-UP.

SELECT SINGLE * FROM PRPS WHERE PSPNR = FIND_POSNR.

  • SELECT SINGLE * FROM PRPS WHERE PSPNR = SECOND_POSNR.

LEVEL2_PRPS-POST1 = PRPS-POST1.

LEVEL2_PRPS-POSID = PRPS-POSID.

EXIT.

ENDIF.

FIND_POSNR = INT_PRHI-WBS-UP.

ENDDO.

SELECT SINGLE * FROM PRPS WHERE PSPNR = WBS. "resets prps!!!

ENDFORM.

Hi,

Iam Running a report. If i key in Project # and weekend dates , The Report Should fetch WBS element, WBS element - Billing Level , etc etc

Suppose a project 13381 has wbs elements 13381.001, 13381.101, 13381.501. The WBS Element Billing level for them are 13381-B01, 13381-B02, 13381-B03.

This is coming Properly in the Report.

But When I Key In Project Number as Select-options.

Project # 13381 to 13382

Iam Not Getting The Billing level of 13382 , But Iam properly getting The billing level for 13381. If the execute the report with single Project I get it properly , But The same thing with range Iam not getting Billing level for the Other Projects in the Range.

Below is the Code only for Fetching WBS level 2 .

Plz Tell me , How do i get the billing level for the all the projects in Range. What should i change in the code

DATA: TEMP_PSPNR LIKE PRPS-PSPNR.

DATA: BEGIN OF INT_PRHI OCCURS 0,

LEVEL(1) TYPE C, "level in the hierarchy

WBS LIKE PRHI, "Record for hierarchy

END OF INT_PRHI.

DATA: LEVEL2_INIT(1) TYPE C. "set to initial for each new proj

DATA: BEGIN OF LEVEL2_PRPS OCCURS 0,

POSNR LIKE PRHI-POSNR,

POSID LIKE PRPS-POSID,

POST1 LIKE PRPS-POST1,

END OF LEVEL2_PRPS.

IF PRPS-PSPNR <> TEMP_PSPNR.

MOVE PRPS-PSPNR TO TEMP_PSPNR.

MOVE PRPS-POSID TO ITAB-X_WBSELEMENT.

ENDIF.

PERFORM FIND_LEVEL_2

USING PROJ-PSPNR

TEMP_PSPNR.

ITAB-X_WBS_LEVEL2TITLE = LEVEL2_PRPS-POST1.

ITAB-X_WBS_LEVEL2 = LEVEL2_PRPS-POSID.

FORM FIND_LEVEL_2

USING PROJECT

WBS.

DATA: TOP_POSNR LIKE PRHI-POSNR,

FIND_POSNR LIKE PRHI-POSNR,

SECOND_POSNR LIKE PRHI-POSNR.

IF LEVEL2_INIT IS INITIAL.

LEVEL2_INIT = 'X'.

CLEAR INT_PRHI.

REFRESH INT_PRHI.

SELECT * FROM PRHI

WHERE PSPHI = PROJECT.

MOVE-CORRESPONDING PRHI TO INT_PRHI-WBS.

APPEND INT_PRHI.

ENDSELECT.

SORT INT_PRHI BY WBS-POSNR.

LOOP AT INT_PRHI WHERE WBS-UP = '00000000'.

EXIT.

ENDLOOP.

TOP_POSNR = INT_PRHI-WBS-POSNR.

LOOP AT INT_PRHI WHERE

WBS-UP = TOP_POSNR.

INT_PRHI-LEVEL = '2'.

MODIFY INT_PRHI.

SECOND_POSNR = INT_PRHI-WBS-POSNR.

LOOP AT INT_PRHI WHERE

WBS-UP = SECOND_POSNR.

INT_PRHI-LEVEL = '3'.

MODIFY INT_PRHI.

ENDLOOP.

ENDLOOP.

ENDIF.

FIND_POSNR = WBS.

DO 10 TIMES.

LOOP AT INT_PRHI

WHERE WBS-POSNR = FIND_POSNR.

ENDLOOP.

IF INT_PRHI-LEVEL = '2'.

SECOND_POSNR = INT_PRHI-WBS-UP.

SELECT SINGLE * FROM PRPS WHERE PSPNR = FIND_POSNR.

  • SELECT SINGLE * FROM PRPS WHERE PSPNR = SECOND_POSNR.

LEVEL2_PRPS-POST1 = PRPS-POST1.

LEVEL2_PRPS-POSID = PRPS-POSID.

EXIT.

ENDIF.

FIND_POSNR = INT_PRHI-WBS-UP.

ENDDO.

SELECT SINGLE * FROM PRPS WHERE PSPNR = WBS. "resets prps!!!

ENDFORM.

1 REPLY 1
Read only

Former Member
0 Likes
366

Hey Guys,

I Corrected it Myself, the problem was in the

FORM FIND_LEVEL_2

USING PROJECT

WBS.

<b>IF LEVEL2_INIT IS INITIAL. ]

LEVEL2_INIT = 'X'.</b> ]

These shud be taken off , if the Projects are in range , The above works only for a single project.