WBS Element reversal - urgent

HI
I want to reverse the settlement for the current period (i.e 05 )because it was closed once, now we want to reverse. in CJ88, i am trying to reverse, it displays the error message as ""sender is opned or closed - settelment is not possible""
posting period for 04 is closed and 05 is running.
please guide me for alternative ways.
Regards
Krishna

The WBS element which is the sender here might  have the systen status as CRTD/CLSD/DEL, hence the error.
Are you sure if you have values to be settled on these WBS?
Regards
Sreenivas

Similar Messages

  • WBS Element report in both currency- Urgent

    hi
    I want to pull WBS elements report in Both USD and CAN $ together but i do not know whr to do it.
    plz tell me whr in Project System i can do this
    plz help it is very urgent
    Thanks
    Manish

    Hi Manish,
    Use transaction code <b>CJI3</b>. When prompted, input controlling area, and on prompt for DB Profile, input <b>000000000001</b>. Input the WBS element in its field and execute. Once the report is displayed, Use the "<b>Change Layout</b>" icon to select the fields "<b>Value COCurr</b>", "<b>Value ObjCurr</b>", "<b>Value TranCurr</b>" etc. pull these across from the right hand side to the left hand side using the directional arrow. Press "Enter". The figures would now show in the report for the various currencies.
    I hope this helps.
    Do not forget to award the points please.
    Regards,
    Jacob

  • Reversing TECO status for Multiple WBS elements

    Hi,
    Question on setting and then reversing TECO status for a WBS element.
    When a project is closed technically in project builder, all underlaying items (wbs, network/activity) are technically closed as well.
    When you try to undo this, only the status of the top element is changed, not the underlaying items.
    Is there any way in which we get the underlaying items changed as well (mass change is not an option)
    Regards,
    Jatinder Bansal

    You can try two methods :-
    1.  Open project in project builder, Select project definition and then go to WBS Overview under project definition, now select all WBS Element and then undo TECO status. Now all the WBS status will be updated. But, this will not have any effect on network and its activities.
    2. Open the project in planning board, now select all the objects, now undo the TECO status. This will change the status of all selected objects like WBS,Network and activites....

  • 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....

  • Report on WBS element

    Hi,
    We have a requirement wherein we want to pull the account balances in the following format:
    Co Cd
        GL A/C
             WBS ELEMENT
             WBS ELEMENT
             WBS ELEMENT
        GL A/C
             WBS ELEMENT
             WBS ELEMENT
             WBS ELEMENT
    Does anyone have any idea on report that we can use to pull this info? Also, is there a way to show summation over more than 1 selection. Like here in this case it would be WBS Element, GL Account and COCD.
    Its very urgent so any help in this regard would be appreciated
    Thanks,
    N
    All answers will be rewarded points!

    Try the following report.
    INFO Systems->Fixed Assets->Day-toDay-Activites->International
    S_ALR_87012060 - List of Origins by Cost Elements.

  • Settlement Through WBS element in CJ88

    Dear Expert,
    When I going settle one asse through WBS element P05/00204/CB, I got the follwing problem in SAP
    Down payment to recipient 802000000006 0 area 01 amount 5,142.74 not cleared
    Message no. AW605
    Diagnosis
    All downpayments were not cleared for the asset under construction for the receiver 802000000006 0 in area 01. An amount of 5,142.74 was not cleared, or too much was cleared.
    You can only completely transfer an asset under construction if you reverse the down payments in the current fiscal year beforehand.
    Procedure
    Clear the downpayments that you want to settle to receiver 802000000006 0.
    Should I find the vendor? If yes, how can I find exact vedor.
    Regards
    David

    got it from PS forum

  • How to change WBS Element in FI Entry for Asset

    Hi all,
    I have a scenario where an asset has been capitalized with  WBS element 1. After several months we realized that it has to go to WBS element 2.
    We update the Asset Master Data with a new WBS Element 2.
    Depreciation from this date onwards is posted to WBS Element 2 (this is expected), but in FI the asset acquisition cost is still in WBS element 1.
    Does anyone know how to rectify the FI document with correct WBS element i.e  WBS Element 2
    Any advice would be greatly appreciated
    Regards
    Pramod Saraswat

    Hi Pramod,
    In posted document you cant change the WBS element.
    In order to post on WBS 2 , you have to reverse the acquisation entry posted on WBS1. Then update correct one in  asset master then post acquisation.
    Ravi

  • Uploading WBS Elements Via CJ02

    Hi All,
    I have to upload the Wbs elements for the Project from the Transaction CJ02. As there are different levels is heirarchy , and I should double click on each wbs elements which I entered, and then fill in the details information of each wbs element.
    Could u please help me how to upload this data .
    Is there any Bapi or can we upload Via Transaction CJ20n.
    Please suggest be the best approach. with detailed information? Its bit urgent.?
    Appriciate the earliest reply.
    Thanks
    Krishna

    Hi,
    Check below given code. Let me know if you get any error.
    Regarding your question "Index field in IWbsElementTable", there is not INDEX field in IWbsElementTable. By index it means the entry in table. Index = 1 means that first entry in table, index = 2 means second entry in table and so on.
    Let me know if you have any question.
    DATA: lv_seqno(6)  TYPE n   VALUE '000001',
          lc_seqno(6)  TYPE n   VALUE '000000'.
    * Structures and Internal tables used in the BAPI
    DATA  : gs_project_definition       LIKE bapi_project_definition,
            gs_project_definition_upd   LIKE bapi_project_definition_up.
    DATA  : gt_method_project           LIKE bapi_method_project
                                             OCCURS 0 WITH HEADER LINE,
            gt_wbs_element_table_update LIKE bapi_wbs_element_update
                                             OCCURS 0 WITH HEADER LINE,
            gt_wbs_element_table        LIKE bapi_wbs_element
                                             OCCURS 0 WITH HEADER LINE,
            gt_wbs_hierarchie_table     LIKE bapi_wbs_hierarchie
                                             OCCURS 0 WITH HEADER LINE,
            gt_return                   LIKE bapireturn1
                                             OCCURS 0 WITH HEADER LINE,
            gt_return1                  LIKE bapiret2
                                             OCCURS 0 WITH HEADER LINE,
            gt_message_table            LIKE bapi_meth_message
                                             OCCURS 0 WITH HEADER LINE.
    * Populate Project definition
    gs_project_definition-project_definition = 'PD-TRAINING'.
    gs_project_definition-description        = 'Training project'.
    gs_project_definition-project_profile    = 'PPRO001'.
    * Populate Project dafinition update table
    gs_project_definition_upd-project_definition = space.
    * Populate project method update
    gt_method_project-refnumber      = lv_seqno.
    gt_method_project-objecttype     = 'WBS-ELEMENT'.
    gt_method_project-method         = 'CREATE'.
    gt_method_project-objectkey      = 'TRAINING'.
    APPEND gt_method_project.
    lv_seqno = lv_seqno + 1.
    gt_method_project-refnumber      = lv_seqno.
    gt_method_project-objecttype     = 'WBS-ELEMENT'.
    gt_method_project-method         = 'CREATE'.
    gt_method_project-objectkey      = 'TRAINING.1'.
    APPEND gt_method_project.
    lv_seqno = lv_seqno + 1.
    gt_method_project-refnumber      = lv_seqno.
    gt_method_project-objecttype     = 'WBS-ELEMENT'.
    gt_method_project-method         = 'CREATE'.
    gt_method_project-objectkey      = 'TRAINING.2'.
    APPEND gt_method_project.
    gt_method_project-refnumber      = lc_seqno.
    gt_method_project-objecttype     = space.
    gt_method_project-method         = 'SAVE'.
    gt_method_project-objectkey      = space.
    * Populate WBS element
    gt_wbs_element_table-wbs_element        = 'TRAINING'.
    gt_wbs_element_table-project_definition = 'PD-TRAINING'.
    gt_wbs_element_table-description        = 'Whole Project'.
    gt_wbs_element_table-wbs_element        = 'TRAINING.1'.
    gt_wbs_element_table-project_definition = 'PD-TRAINING'.
    gt_wbs_element_table-description        = 'Preparation'.
    gt_wbs_element_table-wbs_element        = 'TRAINING.2'.
    gt_wbs_element_table-project_definition = 'PD-TRAINING'.
    gt_wbs_element_table-description        = 'Execution'.
    * Update the I_WBS_ELEMENT_TABLE_UPDATE table for the BAPI
    * This is done 3 times because there are 3 WBS elements
    * created for the Studio Project
    DO 3 TIMES.
      gt_wbs_element_table_update-wbs_element = 'I'.
      APPEND gt_wbs_element_table_update.
    ENDDO.
    CALL FUNCTION 'BAPI_PROJECT_MAINTAIN'
         EXPORTING
              i_project_definition       = gs_project_definition
              i_project_definition_upd   = gs_project_definition_upd
         IMPORTING
              return                     = gt_return
         TABLES
              i_method_project           = gt_method_project
              i_wbs_element_table_update = gt_wbs_element_table_update
              i_wbs_element_table        = gt_wbs_element_table
    *          i_wbs_hierarchie_table     = gt_wbs_hierarchie_table
              e_message_table            = gt_message_table.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
       WAIT          = 'X'
    IMPORTING
       RETURN        = gt_RETURN1.
    Regards,
    RS

  • ****Selection of WBS element Similar to LDB ( PSJ )****

    Hi,
    I need to select WBS element (PRPS-PSPNR)
    Based on the following fields on the selection screen
    Project PSPID
    WBS element POSID
    Network/order AUFNR
    Activity  ACT01-VORNR
    Materials in network  AFVC-ISTRU .
    Help needed urgently .
    High Points will be given for sure .
    Thanks In Advance

    You can use the table "AFVC"

  • Related to PS of WBS Element

    Hi gurus,
    when am doing creation of PR or PO the system is allowing for a value more than approved in the project system. There is no check in the system to stop creation of PR or PO having value more than approved WBS element. However system is perfectly working if it is service scenario.
    System should work perfectly at every level (PR, PO, GRIN, Issue of material(MIGO), Reservation against PM Orders etc.) both im material as well as in service scenario against approved WBS element (Project System).
    Please can any suggest for that.
    Its very urgent.
    Regards
    Raj

    Depends on the settings you defined as 'Availability-control activity group' under configuration node 'Define Tolerance Limits'
    Path: Project System>Costs>Budget>Define Tolerance Limits
    Mention the activity group for your budget profile to ++. Once done execute T Code: CJBN mentioning the project and the budget profile.
    Regards
    Sreenivas

  • Creation of WBS Element Hierarchy

    Hi Friends,
    I have input file like the below(1 Project definition and n WBS elements)
    Project Definition     WBS Element
    HE-000200     
                         HE-000200.01
                         HE-000200.01.00001
                         HE-000200.01.00002
                         HE-000200.02
                         HE-000200.02.00001
                         HE-000200.02.00002
                         HE-000200.03
                         HE-000200.03.00001
                         HE-000200.03.00002
                         HE-000200.04
                         HE-000200.04.00001
                         HE-000200.04.00002
    I created Project Definition HE-000200 by using BAPI_BUS2001_create.
    Now I want to create above WBS elements hierarchy for the above project.
    I am using the BAPI_BUS2054_create_multi.
    is it possitble to create wbs elemnents like the baove hierarchy by using BAPI_BUS2054_create_multi? if yes send me the code , it will help to me.
    !!!!! IT is very urgent.
    Waiting for your inputs
    Regards,

    Hi Raju,
    See this .,.,this might help u.,.,
    *& 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 = 'Deb Program'
    TEXT1 = 'No Projects were created...'
    TICON = 'I'
    BUTTON_1 = 'CANCEL'
    ENDIF.
    Regards
    Deb

  • How to find parent wbs element from child wbs element

    Hi ,
            I have a WBS element . How to find its parent WBS element . What should be the logic and table fields should i consider ? Please help me , its urgent.

    You can use the BAPI_PROJECT_GETINFO function module to get this info.
    The function is very well documented, and it looks like the table E_WBS_HIERARCHIE_TABLE should have the WBS heirarchy in it.
    Hope this helps.
    Sudha

  • Level One WBS Element as Acct Assignment Element

    Dear Friend's
    My user have created one project, In that there are various levels WBS Elements.
    Normally we never tick Level One WBS Element as a Acct Assignment Element.But User have made Level One WBS Element as Acct Assg Element and then Project is Released.So now I can't remove that tick because that field is Grayed out or Freezed.
    Now i wanted to Remove or Undo Release status and then I have to remove Acct Assg Element Tick.
    Pls guide me on this issue.
    Thanks in Advance.
    Regards,
    Sandeep N.Theurkar

    Hello,
             I had not seen this problem before. So i checked it in my system. But i didn't see this
    happening for me.
             I think once system status is in REL (released) status you cannot reverse it. According to me Acct.
    assignment field become gray only when posting is made against that WBS and not after release.
    Pls check it and inform.
    Regards,
    Ashish Kulkarni

  • RRB-How to get the activity description instead of WBS element in the bill

    Dear All,
    I am using RRB DIP profile to do my Resource related billing
    RRB-How to get the activity description instead of WBS element in the billing
    document.Now  iam able to get the cost and the quantity used as line items but instead of getting the respective line items in the invoice iam still getting the WBS
    element description for all the activities.Can some body guide me to overcome this problem.
    Assured reward points for your suggestions and help.
    Thanking you,
    Best regards,
    R.Srinivasan

    Dear All,
    Please can any body help me for the same.IT is urgent.I will award you points.
    thankyou,
    Best regards,
    R.Srinivasan

  • How to settle previous period WBS element which was closed.

    Hi all,
    Please let me know, how to settle previous period WBS element which was closed.
    Thanks and kind regards,
    Padmaja.

    actually the wbs element was  related to 2005 and it must be cleared in 2005 itself.but due to some problem it had been not cleared. we cant open the prior period and close the wbs element .if we reverse it shows as erroneous transactions .

Maybe you are looking for