WBS Element Texts

Hi All,
             I am facing the problem of texts for the info object 0wbs_elemt and 0project.
The number of wbs element is 06/9999/40/I000 and the texts are not visible while reporting on this info object. We have loaded the master data before loading of the transaction data and we have loaded both attribute data and texts data.
When I enter the WBS Element on the Selection Screen and check for consistency of the entered selection criteria the medium length of the texts is visible on the selection screen but not inside the report.
The property of the WBS element in the Query is  Display as Key and Name.
Where could the problem be.
Points Assured.
Regards
Joga

Hi,
can you check if your master data texts are properly loaded? Run tcode RSDMD with 0WEBS_ELEMT and verify that your ID has texts.
Otherwise goto your R3 source system; table PRPS, field PST1 should have your text; if you don't get it in R/3 then it hasn't been maintained....
hope this helps...
Olivier.

Similar Messages

  • I need a report of PS Text assigned to Project Definition or WBS Elements.

    Dear Friend's
    I need a report of PS Text assigned to Project Definition or WBS Elements.
    By putting Project Definition or WBS Elements i must get all PS Text & print option is also required.
    How i can do this in PS module.
    Regard's
    Sandeep

    hi pratap,
    on ps texts account, can u pl let me know, how i can restrict using the ps texts assigned to one project, bcos the same ps text can be edited or modified any other user.
    ps texts may be different eg, different excel sheets assigned at wbs elements.
    1. abc project wbs assigned xyz ps text (excel sheet)
    2. zyx project wbs assigned xyz1 ps text (excel sheet)
    the above are used by two different users.
    if abc project user goes thru cj02 for editing the ps text xyz, but at the same time, if this user goes thru pull down list, he can also pick up xyz1 ps text and can do edit/modify. 
    is there any way to restrict thru basis/ps control or authorisations
    my requirement whatever assigned ps text is only has to be changed/modified as & when the user opens project thru cj02
    pl help
    regards
    srihari

  • Description text in WBS element

    In esscatsap.com DC ..
    We are looking to select Description text in WBS element or at least
    show the description instead of WBS element.
    How is that possible ? The best way i am guessing after looking at the
    code is to add one more column (Description). But is this something
    doable or advisible.
    we looked at all the user exits, but nothing is helpful

    Please post this question in WD java forum. If you want to do it, you need to change the DC using NWDI track.
    Regards
    Vishal Kapoor

  • Vendor Payments Report with WBS Elements

    Dear Expert,
    I am looking a report for Vendor outgoing payment against WBS Elements.
    Is there any Vendor Payments report with WBS Elements in SAP? I have seen FBL1N but WBS Elements field is blank.
    Thanks
    Samiee.

    Hi,
    You mentioned WBS Element is blank; so please check in any one sample payment documnet whetehr WBS is maintained and if yes find which field it is populated. For eg; sometimes people populate this information in the text or assignment field. If that is the case then change the layout accordingly in FBL1N.
    Regards
    Sreekanth

  • WBS element group  in Report Painter

    Hi,
    What is the procedure to insert WBS element group as parameter selection field in a report painter?
    I'm working in PS Information System / Hierachy Reports and we want to extract economic information
    Thanks!
    Sayaton

    Hi
    To create a Transaction Code for a Report Painter/report writer report
    Tcode for Report Painter
    To create a TCode, follow the steps below.
    1) Go to Transaction code SE93, Enter TCode Name and Press Create.
    2) Give short Description and select Parameter Transaction, Press Enter
    3) Select Transation Radio Button and write START_REPORT in the next text
    box Also Check the box Skip Initial Screen.
    4) On the bottom of Screen (default Values), Enter Parameters
    i) Name = D_SREPOVARI-REPORTTYPE. Value = RW
    ii) Name = D_SREPOVARI-REPORT Value = Your Report Group Name (Say 1SIP)
    5) Save and Execute.
    <b>Reward points for useful Answers</b>
    Regards
    Anji

  • Report Painter Request - Cost Center and WBS Element

    Hi Everyone,
    Currently, my company settles all project related expenses through to a cost center by way of an internal settlement cost element (category 21).  The issue with this is that when the expense gets to the cost center, they lose all visability as to where the expense originated, such as salaries or travel expense (category 1 cost elements).  We can't switch the settlements to the originating cost element from wbs to cost center just because of the additional data/volume that will cause.  My thought was to create a report painter that can run by cost center but also show the wbs's that settle to that cost center and group the expenses by primary cost element (cat 1).  I'm assuming that there is a way to marry a cost center and wbs element by way of the wbs settlement rule but how would that be done for reporting purposes?  I've seen it done before by way of a nightly job that created sets based on the combination of cost center and wbs but I'm not sure how that was done.  Any advise and examples?
    Example:
    Cost Center:  IT
    WBS: A.0017.01.01 (settles to cost center IT)
    Postings made:
    1.  CC IT and CE 552000 "salaries"..............................$20,000
    2.  WBS A.0017.01.01 and CE 552000 "salaries"........... $5,000
    3.  Settlement of WBS to CC (expenses flow through to CC IT by way of CE 985000)
    I want to run CC IT and see that the account 552000 really shows $25,000 and can be broken down by cost object (CC and WBS by the amounts above)
    Thanks,
    Pete

    Hi Peter,
    I had a similar requirement and used report painter report group 1SHK-002 (in library 1VK).
    I took a copy of the standard and ameneded it slightly, I switched the explode so it occured on the cost center not cost element.
    The report runs so that direct costs on the cost center are shown at primary cost level. And values settled to the cost center are shown on the partner object. In your case i guess WBS Elements (Partner ObjType WBS).
    Now in my case I didnt need cost element breakdown on partner level, just on cost center so effectively I have(sorry for text alignment but I hope you get the idea):
    GL1   .............  100
    GL2   .............  250
    + Cost center1 total ....350
    GL3 .............   50
    GL4 ............. 100
    + Cost center2 total.... 150
    Primary Cost Total ..... 500
    X-YZ-1.200 .............   50
    X-YZ-1.400 ............. 100
    + WBS total ............. 150
    IO 1............. 100
    IO 2  ............. 100
    +IO total  ............. 200
    Partner Total............. 350
    Overall total .............  850.
    Its not exactly like your requirement but it might be a good report for you to work with to get what you need.
    Elaine

  • Relationship between tables milestone and wbs element

    Hi  Guys,
    1.I have taken two tables in my source code retieving milestone number(mlst_zaehl), usage(mlstn),and wbs element(pspsnr)
    from TABLE MLST and the other table is PRPS(WBS ELEMENT TABLE, and the fields are psphi(project) , and pspnr(wbs elemrnt,
    The problem is i am not getting the project (psphi)  FROM PRPS TABLE and the link field is PRPS-PSPNR = MLST-PSPNR.
    2.Other requiremnt is  in the same program, iam getting reservation quantity and also DELIVERY QUANTITY
    if delivery qty equal to reservation quantity then exit  and if the reservation qty is NOT equal to delivery qty,
    i need to UPDATE the corressponding USAGE , MILESTONE TEXT, AND QTY in milestone table MLST.
    please let me know any function to update milestone or BAPI or i sahll use BDC.
    Reagrds
    subbara

    Hi
    I think you want to link MLST and PRPS tables to get the milestone fields...
    From Table MLST - Mile stone number - MLST_ZAEHL and WBS element - PSPNR, link the WBS elements with PRPS table - WBS element - PSPNR and for project - PSPHI (Current Project Number).
    For project number you can take from PRPS - PSPHI or from PROJ table
    - Pithan

  • Error while uploading Journal with wbs element

    Hi SAP Folks,
    I am trying to upload journal through a customized transaction.
    The journal line item has wbs elements in it.
    While uploading journal it is showing the below error only when I am using a particular cost element from XXXX Cost element group.
    For other cost element from ZZZZ cost element group, it is not showing any error.
    ERROR: This G/L Code is only valid for Capital Projects (C-WBS elem.
    Is there  any transaction code which will link the cost elements to the project codes.
    Please help.
    Thanks in advance.

    Hi Paulo,
    This G/L code is only valid for Capital Projects (C-WBS elem
    Message no. ZCO002
    Prerequisite
    CO Area = 'XXXX'
    AND G/L >= '10000' AND G/L <= '19999'
    Check
    ( WBS Element >= 'x.1' AND
    WBS Element <= 'x.9.99.999.9.9.9' )
    OR
    ( Network >= 'x1' AND
    Network <= 'xZZZZZZZZZZZ' )
    OR
    ( Order >= '700000000000' AND
    Order <= '799999999999' )
    "| PM Orders can use Capital GL codes for Capital Works |"
    Message
    message type - E
    message no. - 002
    Message class - ZCO
    message text - This G/L code is only valid for Capital Projects (C-WBS elem
    Do i need to change anything.
    Error message no. ZCO002 is matching with the message of Validation.
    How do I proceed further??
    Thanks in advance
    Regards,
    Sophia

  • Updating WBS element in a sales order

    There is application in Project System (PS) module where I am creating the Project using bapi BAPI_PROJECT_MANTAIN and then uploading the budget for the same using bapi KBPP_EXTERN_UPDATE_CO. After this when I am trying to update the sales order to update its WBS element using bapi BAPI_SALESORDER_CHANGE it’s going into short dump. Dump description as follows :
    Category               ABAP Programming Error
    Runtime Errors         MESSAGE_TYPE_X
    ABAP Program           SAPLBPFC
    Application Component  FI-FM
    Date and Time          17.07.2014 15:11:07
    Short text of error message:
    System error in : LBPFCFE2 Table:   Report:   Routine: DETERMINE_OBJ_ENQ
    _MODE
    Long text of error message:
    Diagnosis
         An internal error has occurred.
    System Response
         Processing will be discontinued.
    Procedure
         Contact your system manager.
    Technical information about the message:
    Message class....... "BP"
    Number.............. 005
    Variable 1.......... "LBPFCFE2"
    Variable 2.......... " "
    Variable 3.......... " "
    Variable 4.......... "DETERMINE_OBJ_ENQ_MODE"
    Whereas when I am running the bapi BAPI_SALESORDER_CHANGE standalone using se37 with same test data its updating sales order properly.
    After debugging the standard bapi I have found out that there is a subroutine determine_obj_enq_mode which is setting the variable u_enq_mode.In our case this variable is blank that’s y its going into dump.I tried hardcoding this variable to 2 then it updates the bapi properly.So will you suggest for the enhancement where we can hardcode this variable or is there any other solution you will suggest.
    Thank you

    There is application in Project System (PS) module where I am creating the Project using bapi BAPI_PROJECT_MANTAIN and then uploading the budget for the same using bapi KBPP_EXTERN_UPDATE_CO. After this when I am trying to update the sales order to update its WBS element using bapi BAPI_SALESORDER_CHANGE it’s going into short dump. Dump description as follows :
    Category               ABAP Programming Error
    Runtime Errors         MESSAGE_TYPE_X
    ABAP Program           SAPLBPFC
    Application Component  FI-FM
    Date and Time          17.07.2014 15:11:07
    Short text of error message:
    System error in : LBPFCFE2 Table:   Report:   Routine: DETERMINE_OBJ_ENQ
    _MODE
    Long text of error message:
    Diagnosis
         An internal error has occurred.
    System Response
         Processing will be discontinued.
    Procedure
         Contact your system manager.
    Technical information about the message:
    Message class....... "BP"
    Number.............. 005
    Variable 1.......... "LBPFCFE2"
    Variable 2.......... " "
    Variable 3.......... " "
    Variable 4.......... "DETERMINE_OBJ_ENQ_MODE"
    Whereas when I am running the bapi BAPI_SALESORDER_CHANGE standalone using se37 with same test data its updating sales order properly.
    After debugging the standard bapi I have found out that there is a subroutine determine_obj_enq_mode which is setting the variable u_enq_mode.In our case this variable is blank that’s y its going into dump.I tried hardcoding this variable to 2 then it updates the bapi properly.So will you suggest for the enhancement where we can hardcode this variable or is there any other solution you will suggest.
    Thank you

  • Upload of opening finance balances with wbs elements

    Hi Gurus,
    Appreciate if you can please share some knowledge on taking opening FI balances including open vendor and customer invoices with wbs elements..
    We are going live in mid year and p&l items should reflect data of prior periods in the fiscal year...
    Now question is how can we see project wise details in finance of already running projects?????
    If we enter wbs in gl, customer and vendor lines then how will data come in cost and profit center, as project settlement is required to settle on cost center????
    Whats is ideal way to handle such situation??
    One more thing to add that we have activated document splitting on profit center.....
    Please reply back
    Thank you

    Hi,
    if those WBS are statiscall there will not any settlement even if you pass the WBS in docuemnt level if you don't maintain settlement rule it won't settle it. one more option pass the WBS in a/c doucment text filed or assignment then you can easily find it out .
    Regards,
    Raman

  • Very  urgent- find parent-child relationship for wbs element

    Hi,
    There is a certain parent child heirachy in WBS elements.My requiremnet is to delete WBS element depending on certain field , say depending on some ""status"".If the status is active in some or any of the child then I am not suppose to delete its respective parent too. This parent-child relation can have say 5 levels.
    For this I require a logic /program which shall maintain the parent reference for that particular child whih I want/ dont want to delete.
    I am maintaining bottom- to -top approach.
    That is I shall be checking for the status of the lowest level of WBS and then  going to the highest.
    Please Help!
    Kshitija

    hi you can use following code....
    REPORT  zpmgmt_rpt_projinfo NO STANDARD PAGE HEADING LINE-SIZE  160.
    *& Includes
    INCLUDE <icon>.
    INCLUDE zdata_declare_n.  " include for data declaration
    INCLUDE zsubr_n.          " include for both subroutines
    DATA: gv_index LIKE sy-tabix,
          lv_index LIKE sy-tabix,
          date_index TYPE sy-tabix.
    *& Start of Selection ( Get Data )
    START-OF-SELECTION.
    For initial display cnt is set to X
      IF cnt EQ 'X'.
        PERFORM getdata.
        CLEAR it_final.
        PERFORM hierarchy.
        cnt = ''.
      ENDIF.
    *&      Form  GETDATA
    Fetches the data and logic for T1 and T2
    -->  p1        text
    <--  p2        text
    FORM getdata.
    Getting project header data
      SELECT * FROM proj
        INTO CORRESPONDING FIELDS OF TABLE it_proj
        WHERE pspid IN so_posid
        AND werks IN so_plant
        AND stort IN so_loc
        AND erdat IN so_date.
      IF sy-subrc <> 0.
        MESSAGE 'Enter the valid entry' TYPE 'I'.
        STOP.
      ENDIF.
      LOOP AT it_proj.
        PROJECT = it_proj-pspid.
    Get project & WBS element details
    BAPI used gives the output in some specific format
    which is used for roll-up logic.
        CALL FUNCTION 'BAPI_PROJECT_GETINFO'
         EXPORTING
            project_definition           = project
            with_activities              = 'X'
         IMPORTING
            e_project_definition         = e_project_definition
         TABLES
            e_wbs_hierarchie_table       = e_wbs_hierarchie_table.
    Appending all the projects in the e_wbs.
            LOOP AT e_wbs_hierarchie_table.
              MOVE-CORRESPONDING e_wbs_hierarchie_table TO e_wbs.
              APPEND e_wbs.
              CLEAR e_wbs.
            ENDLOOP.
        CLEAR PROJECT.
      ENDLOOP.
      SET COUNTRY 'US'.
      i_repid = sy-repid.
    Getting data into internal tables
    Getting project WBS element
      SELECT * FROM prps
        INTO CORRESPONDING FIELDS OF TABLE it_prps
        FOR ALL ENTRIES IN it_proj
        WHERE psphi = it_proj-pspnr.
    Getting project activities
      SELECT * FROM afvc
        INTO CORRESPONDING FIELDS OF TABLE it_afvc
        FOR ALL ENTRIES IN it_prps
        WHERE projn = it_prps-pspnr.
      SORT it_afvc BY vornr.
    Getting activities start & end dates from AFVV
      SELECT * FROM afvv
       INTO CORRESPONDING FIELDS OF TABLE it_afvv
       FOR ALL ENTRIES IN it_afvc
       WHERE aufpl = it_afvc-aufpl
       AND aplzl = it_afvc-aplzl.
    Getting plant name
      SELECT * FROM t001w
        INTO CORRESPONDING FIELDS OF TABLE it_t001w
        FOR ALL ENTRIES IN it_proj
        WHERE werks = it_proj-werks.
    Logic for passing data to final internal table
    Passing Project master data
      READ TABLE it_proj INDEX 1.
      IF sy-subrc EQ 0.
        CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'
          EXPORTING
            input  = it_proj-pspid
          IMPORTING
            output = it_proj-pspid.
        it_final-posid = it_proj-pspid.
        it_final-post1 = it_proj-post1.
        APPEND it_final.
        CLEAR it_final.
      ENDIF.
    Passing WBS element to the final internal table IT_FINAL
      LOOP AT it_prps.
        CALL FUNCTION 'CONVERSION_EXIT_ABPSN_OUTPUT'
          EXPORTING
            input  = it_prps-posid
          IMPORTING
            output = it_prps-posid.
         CLEAR color.
    Get WBS element status ans color(T2)from OBJNR
        CALL FUNCTION 'ZGET_STATUS_N'
          EXPORTING
            objnr    = it_prps-objnr
          IMPORTING
            color    = color
          TABLES
            t_status = it_tj30t.
        IF     color = 'RED'.
          it_final-t2 = '@0A@'.
        ELSEIF color = 'YELLOW'.
          it_final-t2 = '@09@'.
        ELSEIF color = 'GREEN'.
          it_final-t2 = '@08@'.
        ENDIF.
        SORT it_tj30t DESCENDING.
    Getting User statuses of WBS element at component level.
        READ TABLE it_tj30t INDEX 1.
        IF sy-subrc EQ 0.
          CONCATENATE it_tj30t-txt04 '' INTO it_final-txt04 SEPARATED BY  space.
        ENDIF.
        READ TABLE it_tj30t INDEX 2.
        IF sy-subrc EQ 0.
          CONCATENATE it_tj30t-txt04 it_final-txt04 INTO it_final-txt04  SEPARATED BY space.
        ENDIF.
        MOVE-CORRESPONDING it_prps TO it_final.
        READ TABLE it_proj WITH KEY pspid = it_prps-posid.
        IF sy-subrc EQ 0.
          it_final-werks = it_proj-werks.
        ENDIF.
        APPEND it_final.
        CLEAR  it_final-txt04.
    Passing activity to the final internal table IT_FINAL
        LOOP AT it_afvc WHERE projn EQ it_prps-pspnr.
          CLEAR color.
    Getting user status and color(T2) for Activity from OBJNR
          CALL FUNCTION 'ZGET_STATUS_N'
            EXPORTING
              objnr    = it_afvc-objnr
            IMPORTING
              color    = color
            TABLES
              t_status = it_tj30t.
          IF     color = 'RED'.
            it_final-t2 = '@0A@'.
          ELSEIF color = 'YELLOW'.
            it_final-t2 = '@09@'.
          ELSEIF color = 'GREEN'.
            it_final-t2 = '@08@'.
          ENDIF.
          CLEAR: it_final-fsavd,
                 it_final-fssad.
          MOVE-CORRESPONDING it_afvc TO it_final.
    Getting User statuses of WBS element at activity level.
          SORT it_tj30t DESCENDING.
          READ TABLE it_tj30t INDEX 1.
          IF sy-subrc EQ 0.
            CONCATENATE it_tj30t-txt04 '' INTO it_final-txt04 SEPARATED  BY space.
          ENDIF.
          READ TABLE it_tj30t INDEX 2.
          IF sy-subrc EQ 0.
            CONCATENATE it_tj30t-txt04 it_final-txt04 INTO it_final-txt04  SEPARATED BY space.
          ENDIF.
          APPEND it_final.
          lv_index = sy-tabix.
          CLEAR it_final-txt04.
          CLEAR it_final-ltxa1.
          CLEAR it_tj30t.
          REFRESH it_tj30t.
    Start Date and End Date fetched from AFVV.
          LOOP AT it_afvv  WHERE   aufpl  EQ it_afvc-aufpl
                              AND   aplzl EQ it_afvc-aplzl.
            MOVE-CORRESPONDING it_afvv TO it_final.
            MODIFY it_final INDEX lv_index TRANSPORTING fsavd fssad.
          ENDLOOP.
          CLEAR it_afvc.
          CLEAR lv_index.
        ENDLOOP.
      ENDLOOP.
    Logic for T1.
    T1 is based on T2 and start date and end date of activities.
      LOOP AT it_final WHERE stufe = 3
                       AND ltxa1 IS NOT INITIAL.
        gv_index = sy-tabix.
        PERFORM date_difference.
        CASE it_final-t2.
          WHEN '@0A@'.     "  If Red
            IF sy-datum GT it_final-fssad.
              it_final-t1 = '@0A@'.
            ELSEIF sy-datum LE it_final-fssad AND
                   sy-datum GE it_final-fsavd.
              IF gv_diff > 1.
                PERFORM date_monitor.
              ENDIF.
              it_final-t1 = '@09@'.
            ELSEIF
              sy-datum LT it_final-fsavd.
              it_final-t1 = '@08@'.
            ENDIF.
          WHEN '@09@'.     " If Yellow
            IF sy-datum GT it_final-fssad.
              it_final-t1 = '@0A@'.
            ELSEIF sy-datum LE it_final-fssad AND
                   sy-datum GE it_final-fsavd.
              IF gv_diff > 1.
                PERFORM date_monitor.
              ENDIF.
              it_final-t1 = '@09@'.
            ELSEIF
              sy-datum LT it_final-fsavd.
              it_final-t1 = '@08@'.
            ENDIF.
          WHEN '@08@'.     " If Green
            it_final-t1 = '@08@'.
        ENDCASE.
        MODIFY it_final INDEX gv_index TRANSPORTING t1.
        CLEAR gv_index.
      ENDLOOP.
    ENDFORM.                    " GETDATA
    *&      Form  hierarchy
    Displays the data in ALV hierarchical manner.
    In coding 3 tables are used for roll-up functionality.
    FORM hierarchy .
      DATA: it_final1 LIKE it_final OCCURS 0 WITH HEADER LINE.
      DATA: it_final2 LIKE it_final OCCURS 0 WITH HEADER LINE.
      DATA: it_final3 LIKE it_final OCCURS 0 WITH HEADER LINE.
      DATA: count TYPE i VALUE 1.
      DATA: posid LIKE prps-posid.
      DATA: change,
            date_mask  TYPE c LENGTH 10,
            lv_index2 LIKE sy-tabix.
      DATA: index TYPE sy-tabix.
      DATA: up LIKE prps-posid.
    Deleting duplicate entries from the it_final.*****************
      DELETE ADJACENT DUPLICATES FROM it_final.
      LOOP AT it_final WHERE stufe EQ 2.
        IF posid NE it_final-posid.
          posid = it_final-posid.
        ELSE.
          DELETE it_final INDEX sy-tabix.
        ENDIF.
      ENDLOOP.
      CLEAR posid.
      LOOP AT it_final  WHERE stufe EQ 3
                        AND ltxa1 EQ space.
        IF posid NE it_final-posid.
          posid = it_final-posid.
        ELSE.
          DELETE it_final INDEX sy-tabix.
        ENDIF.
      ENDLOOP.
    Updating a new intrnal table for roll up functionality. ********
      it_final1[] = it_final[].
      CLEAR: lv_index2.
      LOOP AT it_final1 WHERE stufe =  3
                        AND ltxa1 IS NOT INITIAL.
        READ TABLE it_final WITH KEY  stufe = 3
                                      posid = it_final1-posid
                                      post1 = it_final1-post1.
       clear change.
        IF sy-subrc = 0.
          lv_index = sy-tabix.
          IF lv_index2 <> lv_index.
            CLEAR: change.
            lv_index2 = lv_index.
          ENDIF.
          IF it_final1-t1 = '@0A@'.
            it_final-t1 =  '@0A@' .
            MODIFY it_final INDEX lv_index TRANSPORTING t1.
            DELETE it_final1 WHERE posid = it_final-posid.
            CONTINUE.
          ENDIF.
          IF  it_final1-t1 = '@09@'.
            it_final-t1 = '@09@'.
            change = 'Y'.
            MODIFY it_final INDEX lv_index TRANSPORTING t1.
            CONTINUE.
          ENDIF.
          IF it_final1-t1 = '@08@'.
            it_final-t1 =  '@08@' .
            IF change IS INITIAL.
              MODIFY it_final INDEX lv_index TRANSPORTING t1.
            ENDIF.
            CONTINUE.
          ENDIF.
        ENDIF.
      ENDLOOP.
      it_final2[] = it_final[].
      CLEAR: lv_index2.
      LOOP AT it_final2 WHERE stufe = 3
                        AND ltxa1 IS INITIAL.
        READ TABLE e_wbs WITH KEY wbs_element = it_final2-posid.
        IF sy-subrc = 0.
          READ TABLE it_final WITH KEY stufe = 2
                                       posid = e_wbs-up.
          IF sy-subrc = 0.
            CHECK it_final-t1 <> '@0A@'.
            lv_index = sy-tabix.
            IF lv_index2 <> lv_index.
              CLEAR: change.
              lv_index2 = lv_index.
            ENDIF.
            IF   it_final2-t1 = '@0A@'.
              it_final-t1 =  '@0A@' .
              MODIFY it_final INDEX lv_index TRANSPORTING t1.
              CONTINUE.
            ENDIF.
            IF  it_final2-t1 = '@09@'.
              it_final-t1 = '@09@'.
              MODIFY it_final INDEX lv_index TRANSPORTING t1.
              change = 'Y'.
              CONTINUE.
            ENDIF.
            IF it_final2-t1 = '@08@'.
              it_final-t1 =  '@08@' .
              IF change IS INITIAL.
                MODIFY it_final INDEX lv_index TRANSPORTING t1.
              ENDIF.
              CONTINUE.
            ENDIF.
          ENDIF.
        ENDIF.
      ENDLOOP.
      it_final3[] = it_final[].
      CLEAR: lv_index2.
      CLEAR change.
      LOOP AT it_final3 WHERE stufe = 2.
        READ TABLE e_wbs WITH KEY wbs_element = it_final3-posid.
        CHECK sy-subrc = 0.
        READ TABLE it_final WITH KEY stufe = 1
                                     posid = e_wbs-up.
        IF sy-subrc = 0.
          CHECK it_final-t1 <> '@0A@'.
          lv_index = sy-tabix.
          IF lv_index2 <> lv_index.
            CLEAR: change.
            lv_index2 = lv_index.
          ENDIF.
          IF   it_final3-t1 = '@0A@'.
            it_final-t1 =  '@0A@' .
            MODIFY it_final INDEX lv_index TRANSPORTING t1.
            DELETE it_final3.   " WHERE stufe = 2.
            CONTINUE.
          ENDIF.
          IF  it_final3-t1 = '@09@'.
            it_final-t1 = '@09@'.
            MODIFY it_final INDEX lv_index TRANSPORTING t1.
            change = 'Y'.
            CONTINUE.
          ENDIF.
          IF it_final3-t1 = '@08@'.
            it_final-t1 =  '@08@' .
            IF change IS INITIAL.
              MODIFY it_final INDEX lv_index TRANSPORTING t1.
            ENDIF.
            CONTINUE.
          ENDIF.
        ENDIF.
      ENDLOOP.
    Building hierarchy table ***************
      LOOP AT it_final.
        IF it_final-stufe = '0'.
          node_tab-type = 'T'.
          node_tab-name = 'Project'.
          node_tab-tlevel = '01'.
          node_tab-nlength = '8'.
          node_tab-color = '4'.
          node_tab-text = it_final-post1.
          node_tab-tlength ='20'.
          node_tab-tcolor = 5.
          APPEND node_tab.
          it_final_hsk-node = node_tab.
          APPEND it_final_hsk. CLEAR it_final_hsk.
          CLEAR node_tab.
        ELSEIF it_final-stufe = '1'.
          node_tab-type = 'P'.
          node_tab-name = 'Project'.
          node_tab-tlevel = '02'.
          node_tab-nlength = '10'.
          node_tab-color = '1'.
          node_tab-kind2 = 'I'.
          node_tab-text3+0(4) = it_final-t1.
          node_tab-tlength3 = '5'.
          node_tab-tcolor3 = 1.
          node_tab-kind3 = ' '.
          node_tab-text4 = it_final-posid.
          node_tab-tlength4 ='20'.
          node_tab-tcolor4 = 3.
    Code added for plant name
          CALL FUNCTION 'CONVERSION_EXIT_ABPSN_INPUT'
            EXPORTING
              input  = it_final-posid
            IMPORTING
              output = it_final-posid.
          READ TABLE it_proj WITH KEY pspid = it_final-posid.
          CHECK sy-subrc = 0.
          READ TABLE it_t001w WITH KEY werks = it_proj-werks.
          CHECK sy-subrc = 0.
    Code End.
          node_tab-kind4 = ' '.
          node_tab-text5 = it_t001w-name1.   " Plant Name
          node_tab-tlength5 ='25'.
          node_tab-tcolor5 = 4.
          node_tab-kind5 = ' '.
          node_tab-text6 = it_proj-stort.
          node_tab-tlength6 ='15'.
          node_tab-tcolor6 = 4.
          node_tab-kind6 = ' '.
          node_tab-text7 = it_final-post1.
          node_tab-tlength7 ='25'.
          node_tab-tcolor7 = 4.
          APPEND node_tab.
          it_final_hsk-node = node_tab.
          APPEND it_final_hsk. CLEAR it_final.
          CLEAR node_tab.
        ELSEIF it_final-stufe = '2'.
          node_tab-type = 'P'.
          node_tab-name = 'Gate Id'.
          node_tab-tlevel = '03'.
          node_tab-nlength = '10'.
          node_tab-color = '1'.
          node_tab-kind2 = 'I'.
          node_tab-text3+0(4) = it_final-t1.
          node_tab-tlength3 = '5'.
          node_tab-tcolor3 = 1.
          node_tab-kind3 = ' '.
          node_tab-text4 = it_final-posid.
          node_tab-tlength4 ='20'.
          node_tab-tcolor4 = 3.
          node_tab-kind4 = ' '.
          node_tab-text5 = it_final-post1.
          node_tab-tlength5 ='25'.
          node_tab-tcolor5 = 4.
          APPEND node_tab.
          it_final_hsk-node = node_tab.
          APPEND it_final_hsk.
          CLEAR it_final.
          CLEAR node_tab.
        ELSEIF it_final-stufe = '3' AND it_final-ltxa1 EQ space.
          node_tab-type = 'P'.
          node_tab-name = 'Component'.
          node_tab-tlevel = '04'.
          node_tab-nlength = '11'.
          node_tab-color = '1'.
          node_tab-kind2 = 'I'.
          node_tab-text3+0(4) = it_final-t1.
          node_tab-tlength3 = '5'.
          node_tab-tcolor3 = 1.
          node_tab-kind3 = ' '.
          node_tab-text4 = it_final-posid.
          node_tab-tlength4 ='25'.
          node_tab-tcolor4 = 3.
          node_tab-kind4 = ' '.
          node_tab-text5 = it_final-post1.
          node_tab-tlength5 ='25'.
          node_tab-tcolor5 = 4.
    Code added for start date and end date for component level.
          SELECT SINGLE pstrm petrf INTO (v_pstrm, v_petrf)
               FROM prte WHERE posnr = it_final-pspnr.
          it_final-fsavd = v_pstrm.
          it_final-fssad = v_petrf.
          MODIFY it_final INDEX sy-tabix.
          WRITE it_final-fsavd TO date_mask MM/DD/YYYY.
          node_tab-tpos1 = '0'.
          node_tab-kind5 = ' '.
          node_tab-text6 = date_mask.
          node_tab-tlength6 ='10'.
          node_tab-tcolor6 = 3.
          CLEAR date_mask.
          WRITE it_final-fssad TO date_mask MM/DD/YYYY.
          node_tab-tpos1 = '0'.
          node_tab-kind6 = ' '.
          node_tab-text7 = date_mask.
          node_tab-tlength7 ='10'.
          node_tab-tcolor7 = 3.
          CLEAR date_mask.
          APPEND node_tab.
          it_final_hsk-node = node_tab.
          APPEND it_final_hsk.
          CLEAR it_final_hsk.
          CLEAR node_tab.
        ELSEIF it_final-ltxa1 IS NOT INITIAL.
          node_tab-type = 'P'.
          node_tab-name = 'Element'.
          node_tab-tlevel = '05'.
          node_tab-nlength = '11'.
          node_tab-color = '1'.
          node_tab-kind = 'I'.
          node_tab-text1+0(4) = it_final-t1.
          node_tab-tlength1 = '5'.
          node_tab-tcolor1 = 1.
          node_tab-kind2 = 'I'.
          node_tab-text3+0(4) = it_final-t2.
          node_tab-tlength3 = '5'.
          node_tab-tcolor3 = 1.
          node_tab-kind3 = ' '.
          node_tab-text4 = it_final-ltxa1.
          node_tab-tlength4 ='45'.
          node_tab-tcolor4 = 3.
          node_tab-kind4 = ' '.
          node_tab-text5 = it_final-txt04.
          node_tab-tlength5 ='10'.
          node_tab-tcolor5 = 3.
          WRITE it_final-fsavd TO date_mask .
          node_tab-kind5 = ' '.
          node_tab-text6 = date_mask.
          node_tab-tlength6 ='10'.
          node_tab-tcolor6 = 3.
          CLEAR date_mask.
          WRITE it_final-fssad TO date_mask.
          node_tab-tpos1 = '0'.
          node_tab-kind6 = ' '.
          node_tab-text7 = date_mask.
          node_tab-tlength7 ='10'.
          node_tab-tcolor7 = 3.
          CLEAR date_mask.
          APPEND node_tab.
          it_final_hsk-node = node_tab.
          APPEND it_final_hsk.
          CLEAR it_final_hsk.
          CLEAR node_tab.
        ENDIF.
      ENDLOOP.
      CALL FUNCTION 'RS_TREE_CONSTRUCT'
        TABLES
          nodetab = it_final_hsk.
      CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
        EXPORTING
          callback_program      = i_repid
          callback_user_command = 'USER_COMMAND'
          callback_gui_status   = 'ZLD_TREE_N'
          screen_start_column   = 0
          use_control           = 'L'.
    ENDFORM.                    " hierarchy
    *&      Form  MYGUI
          text
         -->EX_TAB     text
    FORM zld_tree_n.
      SET PF-STATUS 'ZLD_TREE_N'.
    ENDFORM.                    "zld_tree.
    **&      Form  user_command
        Code for REFRESH button
    FORM user_command TABLES   node STRUCTURE seucomm
                               USING ucomm CHANGING exit
                                        list_refresh.
      CASE ucomm.
        WHEN 'REFR' .
          CLEAR it_final.
          REFRESH it_final_hsk.
          REFRESH it_final.
          PERFORM getdata.
          CLEAR it_final.
          PERFORM hierarchy.
        WHEN 'BACK1'.
          LEAVE TO TRANSACTION 'ZCN41_N'.
      ENDCASE.
    ENDFORM.                    "user_command
    include.....
    *&  Include           ZDATA_DECLARE
    *& Tables used for the report
    TABLES: proj, prps, aufk, afvc, jest, tj30t, afvv, prte.
    *& Type Pools used
    TYPE-POOLS: slis, icon, fibs, stree.
    *& Class & Data defination
    CLASS DEFINATION
    CLASS cl_gui_resources DEFINITION LOAD.
    DATA DECLARATION
    DATA: g_lights_name TYPE lvc_cifnm VALUE 'LIGHT',
          pspid LIKE proj-pspid,
          l_pos TYPE i VALUE 1,
          gs_layout TYPE slis_layout_alv,
          color TYPE zcn41_color_n-color.
    DATA : cnt VALUE 'X'.
    DATA : i_repid TYPE sy-repid.
    DATA : t_node TYPE snodetext.
    DATA : node_tab LIKE t_node OCCURS 0 WITH HEADER LINE.
    DATA : gv_diff TYPE p, stort LIKE proj-stort.
    CONSTANTS: st_formname_top_of_page TYPE slis_formname
                                  VALUE 'TOP_OF_PAGE-ALV'.
    *& Internal Table Declarations
    DATA it_proj   TYPE STANDARD TABLE OF proj WITH HEADER LINE.
    DATA it_prps   TYPE STANDARD TABLE OF prps WITH HEADER LINE.
    DATA it_afvc   TYPE STANDARD TABLE OF afvc WITH HEADER LINE.
    DATA it_tj30t  TYPE STANDARD TABLE OF tj30t WITH HEADER LINE.
    DATA it_afvv   TYPE STANDARD TABLE OF afvv WITH HEADER LINE.
    DATA it_jcds   TYPE STANDARD TABLE OF jcds WITH HEADER LINE.
    DATA it_t001w  TYPE STANDARD TABLE OF t001w WITH HEADER LINE.
    DATA: BEGIN OF it_final OCCURS 0,
              stufe  LIKE prps-stufe,
              pspnr  LIKE prps-pspnr,
              t1      TYPE icon-id,
              t2      TYPE icon-id,
              node    LIKE node_tab,
              posid  LIKE prps-posid,
              post1  LIKE prps-post1,
              ltxa1  LIKE afvc-ltxa1,
              txt04(20),
              objnr  LIKE afvc-objnr,
              vornr  LIKE afvc-vornr,
              aufpl  LIKE afvc-aufpl,
              aplzl  LIKE afvc-aplzl,
              fsavd  LIKE afvv-fsavd,  "Ear. Start date
              fssad  LIKE afvv-fssad,  "Ear. finish date
              werks  LIKE t001w-name1,     " added after update
              stort  LIKE proj-stort,     " added after update
         END OF it_final.
    DATA: BEGIN OF it_hsk OCCURS 0,
            t2      TYPE icon-id,
            t1      TYPE icon-id,
            posid  LIKE prps-posid,
            post1  LIKE prps-post1,
            objnr  LIKE afvc-objnr,
            stufe  LIKE prps-stufe,
          END OF it_hsk.
    DATA: BEGIN OF it_new OCCURS 0,
            objnr LIKE afvc-objnr,
            fsavd LIKE afvv-fsavd,
            fssad LIKE afvv-fssad,
            udate LIKE jcds-udate,
            t2(10),
          END OF it_new.
    CLEAR : node_tab, node_tab[].
    DATA  : entval TYPE prps-posid.
    DATA  : ct_fieldcat TYPE  slis_t_fieldcat_alv.
    DATA  : BEGIN OF it_final_hsk OCCURS 0,
              node LIKE node_tab,
            END OF it_final_hsk.
    DATA  : project LIKE bapipr-project_definition,
            e_project_definition LIKE bapi_project_definition_ex.
    DATA  : e_wbs_hierarchie_table TYPE STANDARD TABLE OF bapi_wbs_hierarchie
            WITH HEADER LINE.
    DATA  : e_wbs LIKE e_wbs_hierarchie_table OCCURS 0 WITH HEADER LINE.
    DATA:  v_pstrm LIKE prte-pstrm, v_petrf LIKE prte-petrf,
           v_posnr LIKE prps-pspnr.
    *& Selection Screen of the report
    SELECTION-SCREEN BEGIN OF BLOCK pms WITH FRAME TITLE text-001.
    SELECT-OPTIONS so_posid FOR proj-pspid OBLIGATORY.
    SELECT-OPTIONS so_plant FOR proj-werks.
    SELECT-OPTIONS so_loc FOR proj-stort.
    SELECT-OPTIONS so_date FOR sy-datum.
    SELECTION-SCREEN END OF BLOCK pms.
    *AT SELECTION-SCREEN .
    READ TABLE it_proj WITH KEY pspid = so_posid.
    IF sy-subrc <> 0.
       MESSAGE 'Project Name dose not exist' TYPE 'E.
    ENDIF.
    include..
    *&  Include           ZSUBR
    *&      Form  date_difference
          text
    -->  p1        text
    <--  p2        text
    FORM date_difference .
      CALL FUNCTION 'ZDATETIME_DIFFERENCE_N'
        EXPORTING
          date1                  = it_final-fsavd
          time1                  = '000000'
          date2                  = it_final-fssad
          time2                  = '000000'
       IMPORTING
         datediff               = gv_diff
       EXCEPTIONS
         INVALID_DATETIME       = 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.                    " date_difference
    *&      Form  date_monitor
          text
    -->  p1        text
    <--  p2        text
    T1 for more than 1 days activities
    Subroutines result out the T1 on basis of 80% of activity ( Green )
    or if 20 % reamined. ( Yellow )
    FORM date_monitor .
      DATA: date TYPE string,
            temp_date TYPE string,
            lv_date LIKE afvv-fsavd,
            lv_date_final LIKE afvv-fsavd,
            lv_days LIKE  bseg-dtws1 VALUE 0.
      CONSTANTS: con TYPE f VALUE '0.8'.
    *lv_date = it_new-fsavd.
      IF gv_diff EQ 2.
        lv_days = 1.
        CALL FUNCTION 'ZCALC_DATE_N'
          EXPORTING
            date      = it_final-fsavd
            days      = lv_days
            months    = '00'
            sign      = '+'
            years     = '00'
          IMPORTING
            calc_date = lv_date_final.
        IF sy-datum LE lv_date_final.
          it_final-t1 = '@08@'.
        ELSEIF sy-datum GT lv_date_final AND
               sy-datum EQ it_final-fssad.
          it_final-t1 = '@09@'.
        ENDIF.
      ELSEIF gv_diff > 2.
        lv_days = con * gv_diff.
        CALL FUNCTION 'ZCALC_DATE_N'
          EXPORTING
            date      = lv_date
            days      = lv_days
            months    = '00'
            sign      = '+'
            years     = '00'
          IMPORTING
            calc_date = lv_date_final.
        IF sy-datum LE lv_date_final.
          it_final-t1 = '@08@'.
        ELSEIF sy-datum GT lv_date_final AND
               sy-datum EQ it_final-fssad.
          it_final-t1 = '@09@'.
        ENDIF.
      ENDIF.
    ENDFORM.                    " date_monitor
    this code will give you exact out put as you required from bootom to top functinality....with status....

  • Table name for WBS element deleted

    If a  WBS element is deleted , the corresponding object id which is internally created by the system is also deleted from the PRPS table,
    Is there a way to find all the deleted WBS elements and what is the table name for the same.

    Hello
    1. Goto table PRPS with PSPNR = WBS number. Get field OBJNR.
    2. With PRPS-OBJNR goto table JEST. You will have all status for this WBS element.
    3. Text for status - table TJ02T

  • WBS Element Name Change

    Hi,
    User wants to change the WBS element Name, but the field is greyed out.
    User has the access to CJ02 but only the long text is open to change but WBS Element Name / ID field is freezed and can not be changed.
    The current status of WBS element is released.
    In Quality system I am able to change the WBS element Name / ID.
    Please let me know what can be the reason for WBS Element name field being greyed out.
    Thanks
    Satish

    Hi,
    I agree with Nitin.
    You can not open any version witht he old name if they are already created and in at table level internal number is stored. When you change external number will get changed but not the internal number.
    So for any report purpose or in any developments you are taking internal number and thru conversion exit converting it to external number then it will return old value not new value.
    It will create lot of inconsistency in data once such volume of such instances grew.
    If possible , set deletion indicator to that WBSE and create new one with desired name afresh.
    Thanks
    Saikishore.Ganga

  • Table for description of  WBS element status

    hi guys ,
    i use BAPI_BUS2054_GET_STATUS to get WBS element status and it return value of REL  , in which table can i get the description of REL ?

    hi
    hope u will get some idea from this code:-
    Reward if help.
    Adding WBS Element in Proper Hierarchy from a Text File.
    *& Include ZBAPIWBS
    *& Report Z_BAPI_CJ20N
    REPORT Z_BAPI_CJ20N.
    INCLUDE ZBAPICJ20NTOP.
    INCLUDE ZBAPICJ20NFILEUP.
    INCLUDE ZBAPICJ20NLOGIC.
    *& Include ZBAPICJ20NTOP
    DATA: BEGIN OF ITMAIN OCCURS 0,
    PROJECT_DEFINITION TYPE PS_PSPID,
    DESCRIPTION TYPE PS_POST1,
    PROJECT_PROFILE TYPE PROFIDPROJ,
    BUS_AREA TYPE GSBER,
    WBS_ELEMENT TYPE PS_POSID,
    WBS_DESCRIPTION TYPE PS_POST1,
    END OF ITMAIN,WA_MAIN LIKE LINE OF ITMAIN,ITWBS LIKE STANDARD
    TABLE OF ITMAIN WITH HEADER LINE, ITMAIN2 LIKE STANDARD TABLE OF
    ITMAIN.
    DATA: ITPRJDEF TYPE STANDARD TABLE OF BAPI_PROJECT_DEFINITION WITH
    HEADER LINE,WA_PRJDEF LIKE LINE OF ITPRJDEF.
    DATA: ITPRJDEFUP TYPE STANDARD TABLE OF BAPI_PROJECT_DEFINITION_UP WITH
    HEADER LINE, WA_PRJDEFUP LIKE LINE OF ITPRJDEFUP.
    DATA: ITMETPRJ TYPE STANDARD TABLE OF BAPI_METHOD_PROJECT,
    WA_METPRJ LIKE LINE OF ITMETPRJ.
    DATA: RETURN TYPE BAPIRETURN1,MSG TYPE STANDARD TABLE OF
    BAPI_METH_MESSAGE WITH HEADER LINE.
    DATA: LINES TYPE I,REFNO TYPE I VALUE 0.
    DESCRIBE TABLE ITMAIN LINES LINES.
    DATA: METTYPE TYPE STRING VALUE 'Create'.
    DATA: WA_DUPLI LIKE LINE OF ITMAIN.
    WA_DUPLI-PROJECT_DEFINITION = 'JB'.
    DATA: SPLIT1(50) TYPE C.
    DATA: PREVWBS TYPE PS_POSID VALUE ' ',
    LEFTWBS TYPE PS_POSID VALUE ' '.
    DATA: POS TYPE I VALUE 1.
    DATA: OFF TYPE I VALUE 0,MODE TYPE I,INDEX1 TYPE I VALUE 0,
    INDEX2 TYPE I VALUE 0,INDEX3 TYPE I VALUE 0,
    INDEX4 TYPE I VALUE 0,INDEX5 TYPE I VALUE 0,
    POS2 TYPE I VALUE 0,FLAG TYPE I VALUE 0.
    DATA: ITBUS TYPE STANDARD TABLE OF BAPI_BUS2054_NEW,
    WA_BUS LIKE LINE OF ITBUS, RET TYPE STANDARD TABLE OF BAPIRET2,
    WA_RET LIKE LINE OF RET, ITBUS2 LIKE STANDARD TABLE OF BAPI_BUS2054_NEW,
    WA_BUS2 LIKE LINE OF ITBUS, WA_BUS3 LIKE LINE OF ITBUS.
    DATA: BAPIRET TYPE BAPIRETURN1,
    PROJEX TYPE BAPI_PROJECT_DEFINITION_EX.
    *& Include ZBAPICJ20NFILEUP
    CALL FUNCTION 'UPLOAD'
    EXPORTING
    FILENAME = ' '
    FILETYPE = 'DAT'
    TABLES
    DATA_TAB = ITMAIN .
    *& Include ZBAPICJ20NLOGIC
    SORT ITMAIN BY PROJECT_DEFINITION WBS_ELEMENT.
    LOOP AT ITMAIN INTO WA_MAIN.
    IF WA_DUPLI-PROJECT_DEFINITION <> WA_MAIN-PROJECT_DEFINITION.
    WA_PRJDEF-PROJECT_DEFINITION = WA_MAIN-PROJECT_DEFINITION.
    WA_PRJDEF-DESCRIPTION = WA_MAIN-DESCRIPTION.
    WA_PRJDEF-PROJECT_PROFILE = WA_MAIN-PROJECT_PROFILE.
    WA_PRJDEF-BUS_AREA = WA_MAIN-BUS_AREA.
    WA_PRJDEFUP-PROJECT_DEFINITION = 'X'.
    WA_PRJDEFUP-DESCRIPTION = 'X'.
    WA_PRJDEFUP-PROJECT_PROFILE = 'X'.
    WA_PRJDEFUP-BUS_AREA = 'X'.
    WA_METPRJ-REFNUMBER = REFNO + 1 .
    WA_METPRJ-OBJECTTYPE = 'ProjectDefinition'.
    WA_METPRJ-METHOD = METTYPE.
    WA_METPRJ-OBJECTKEY = WA_MAIN-PROJECT_DEFINITION.
    APPEND WA_METPRJ TO ITMETPRJ.
    WA_METPRJ-REFNUMBER = ''.
    WA_METPRJ-OBJECTTYPE = ''.
    WA_METPRJ-METHOD = 'Save'.
    WA_METPRJ-OBJECTKEY = ''.
    APPEND WA_METPRJ TO ITMETPRJ.
    CALL FUNCTION 'BAPI_PROJECT_MAINTAIN'
    EXPORTING
    I_PROJECT_DEFINITION = WA_PRJDEF
    I_PROJECT_DEFINITION_UPD = WA_PRJDEFUP
    IMPORTING
    RETURN = RETURN
    TABLES
    I_METHOD_PROJECT = ITMETPRJ
    E_MESSAGE_TABLE = MSG.
    IF SY-SUBRC = 0.
    FLAG = 1.
    ENDIF.
    WA_DUPLI-PROJECT_DEFINITION = WA_MAIN-PROJECT_DEFINITION.
    COMMIT WORK.
    DELETE ITMETPRJ FROM 1 TO 2.
    INCLUDE ZBAPIWBS_ALL.
    ENDIF.
    ENDLOOP.
    *& Include ZBAPIWBS_ALL
    LOOP AT ITMAIN INTO WA_MAIN WHERE PROJECT_DEFINITION = WA_DUPLI-PROJECT_DEFINITION.
    APPEND WA_MAIN TO ITWBS.
    ENDLOOP.
    *Sort the table
    LOOP AT ITWBS INTO WA_MAIN.
    SPLIT1 = WA_MAIN-WBS_ELEMENT.
    POS = 0.
    LOOP AT ITWBS WHERE WBS_ELEMENT <> SPLIT1.
    IF STRLEN( ITWBS-WBS_ELEMENT ) = STRLEN( SPLIT1 ).
    IF POS = 0.
    APPEND WA_MAIN TO ITMAIN2.
    ENDIF.
    APPEND ITWBS TO ITMAIN2.
    DELETE ITWBS WHERE WBS_ELEMENT EQ ITWBS-WBS_ELEMENT.
    POS = 1.
    ELSE.
    IF POS = 0.
    APPEND WA_MAIN TO ITMAIN2.
    DELETE ITWBS WHERE WBS_ELEMENT EQ WA_MAIN.
    ENDIF.
    POS = 1.
    ENDIF.
    ENDLOOP.
    INDEX1 = INDEX1 + 1.
    ENDLOOP.
    *Define UP element
    LOOP AT ITMAIN2 INTO WA_MAIN.
    WA_BUS-WBS_ELEMENT = WA_MAIN-WBS_ELEMENT.
    WA_BUS-DESCRIPTION = WA_MAIN-WBS_DESCRIPTION.
    WA_BUS-WBS_UP = ''.
    WA_BUS-WBS_LEFT = ''.
    SPLIT1 = WA_MAIN-WBS_ELEMENT.
    LOOP AT ITMAIN2 INTO WA_MAIN WHERE WBS_ELEMENT <> SPLIT1.
    IF STRLEN( WA_MAIN-WBS_ELEMENT ) < STRLEN( SPLIT1 ) .
    FIND WA_MAIN-WBS_ELEMENT IN SPLIT1.
    IF SY-SUBRC = 0.
    WA_BUS-WBS_UP = WA_MAIN-WBS_ELEMENT.
    PREVWBS = WA_MAIN-WBS_ELEMENT.
    ENDIF.
    ENDIF.
    ENDLOOP.
    APPEND WA_BUS TO ITBUS.
    INDEX2 = INDEX2 + 1.
    ENDLOOP.
    PREVWBS = ''.
    LEFTWBS = ''.
    Define LEFT ELEMENT.
    LOOP AT ITMAIN2 INTO WA_MAIN.
    POS = 0.
    SPLIT1 = WA_MAIN-WBS_ELEMENT.
    READ TABLE ITBUS INTO WA_BUS2 WITH KEY WBS_ELEMENT = WA_MAIN-WBS_ELEMENT.
    WA_BUS-WBS_ELEMENT = SPLIT1.
    WA_BUS-DESCRIPTION = WA_MAIN-WBS_DESCRIPTION.
    WA_BUS-WBS_UP = WA_BUS2-WBS_UP.
    OFF = SY-TABIX.
    LOOP AT ITMAIN2 INTO WA_MAIN WHERE WBS_ELEMENT <> SPLIT1.
    READ TABLE ITBUS INTO WA_BUS3 WITH KEY WBS_ELEMENT = WA_MAIN-WBS_ELEMENT.
    IF STRLEN( WA_BUS2-WBS_ELEMENT ) = STRLEN( WA_BUS3-WBS_ELEMENT ) AND
    WA_BUS2-WBS_UP = WA_BUS3-WBS_UP AND POS = 0.
    IF STRLEN( LEFTWBS ) <> STRLEN( SPLIT1 ).
    LEFTWBS = ''.
    ENDIF.
    IF STRLEN( LEFTWBS ) = STRLEN( SPLIT1 ).
    FIND WA_BUS2-WBS_UP IN LEFTWBS.
    IF SY-SUBRC <> 0.
    LEFTWBS = ''.
    ENDIF.
    ENDIF.
    WA_BUS-WBS_LEFT = LEFTWBS.
    LEFTWBS = SPLIT1.
    POS = 1.
    MODIFY ITBUS INDEX OFF FROM WA_BUS.
    ENDIF.
    ENDLOOP.
    ENDLOOP.
    WA_BUS-WBS_ELEMENT = ''.
    APPEND WA_BUS TO ITBUS.
    Store WBS ELEMENTS.
    LOOP AT ITBUS INTO WA_BUS.
    SPLIT1 = WA_BUS-WBS_ELEMENT.
    APPEND WA_BUS TO ITBUS2.
    INDEX3 = 1.
    POS = 0.
    LOOP AT ITBUS INTO WA_BUS WHERE WBS_ELEMENT <> SPLIT1.
    IF STRLEN( WA_BUS-WBS_ELEMENT ) <> STRLEN( SPLIT1 ) AND POS = 0.
    POS = 1.
    INDEX4 = INDEX3.
    CALL FUNCTION 'BAPI_PS_INITIALIZATION' .
    CALL FUNCTION 'BAPI_BUS2054_CREATE_MULTI'
    EXPORTING
    I_PROJECT_DEFINITION = WA_DUPLI-PROJECT_DEFINITION
    TABLES
    IT_WBS_ELEMENT = ITBUS2
    ET_RETURN = RET .
    CALL FUNCTION 'BAPI_PS_PRECOMMIT'
    TABLES
    ET_RETURN = RET.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
    WAIT = 'X'
    IMPORTING
    RETURN = WA_RET.
    ENDIF.
    APPEND WA_BUS TO ITBUS2.
    INDEX3 = INDEX3 + 1.
    ENDLOOP.
    DELETE ITBUS2 FROM 1 TO INDEX3.
    DELETE ITBUS FROM 1 TO INDEX4.
    ENDLOOP.
    DELETE ITWBS FROM 1 TO INDEX1.
    CLEAR ITWBS.
    DELETE ITMAIN2 FROM 1 TO INDEX2.
    *At the end of all projects' processing
    IF FLAG = 1.
    CALL FUNCTION 'POPUP_FOR_INTERACTION'
    EXPORTING
    HEADLINE = 'PS Project & WBS Creation'
    TEXT1 = 'All the Projects have been created.Please check......'
    TICON = 'I'
    BUTTON_1 = 'OK'.
    ELSE.
    CALL FUNCTION 'POPUP_FOR_INTERACTION'
    EXPORTING
    HEADLINE = 'Jeet Program'
    TEXT1 = 'No Projects were created...'
    TICON = 'I'
    BUTTON_1 = 'CANCEL'
    ENDIF.

  • Template for O12* WBS long text

    Is it possible to create a template for O12* WBS  long text. I think SAPscripts can be used. If it can be used can anyone suggest me as how to go about doing it .
    Thanks
    Edited by: Alvaro Tejada Galindo on May 23, 2008 5:33 PM

    Hello,
    the way to find it out is that you set a breakpoint into the function module READ_TEXT ( via SE37) and then process a PSP-Element with a long text via CJ12 or CJ13.
    The transaction will stop at the breakpoint, an you get the text-id/text-name/ text-object from the input parameters on the function module.
    If i try, it says ID = 'LTXT', name = 'E'<PRPS-PSPNR>, object = 'PMS', but for a WBS text there may be other parameters.
    If you need the logic in an own programm, you could use the function READ_TEXT instead of selecting texts via STXH/STXL.
    Regards Wolfgang

Maybe you are looking for

  • PDF with comments crashing, using InDesign CS3

    I'm using OS10.6 and switching back and forth between Acrobat Pro 9.3.4 and InDesign CS3 5.0.4.  I have Firefox running too, as well as Bridge and Word. The PDF was originally made by me.  I email it to my client and she adds comments using her Windo

  • Mav Contacts does not import csv file

    Trying to import my Outlook exchange contacts to Mavericks Contacts.  Exported from outlook to excel. Saved excel file to csv format.  Tried to import csv file to Mavericks Contacts:  Error message says the csv file is not compatible.  Also imported

  • Workflow Design

    Hi How to find an image attached with the FI Invoice document. Any method/function module that specifies whether a document is attached with the FI document or not. If not the WF should not start or should prompt an error message. There is no event t

  • Eula has stopped working; put path but did not get and "accept" option  now what?

    I cannot get Adobe Reader 11.0.02 to work and get the message "Eula is not working" .  I searched and performed the recommended path check ie. C:\ProgramFiles(x86)\Adobe\Reader11.0\Reader -- but got no option to "accept". Now what do I do?

  • CAC or smart card use with Oracle database and web server

    I've been asked to smart card (CAC) enable our Oracle web server and database access. We currently use CAC to access many of our other applications. Where can I find the following information Oracle software required (and is it an additional cost) Ho