Issue in WBS element Status in BI

Hi,
Can I reopen the WBS element from closed to release status? If yes how it again will be update to BI system?
Kindly help me.

Hello again,
I´m sorry I missed the BI part...I have no knowledge on that side. Maybe other experts my assist here.
Regarding JEST: An object can have more than one current status. You can filter out those status from JEST that are inactive
(field INACT) and those that are user status (code starting with 'E' in field STAT).
In order to identify the status codes with their names and description you may check table TJ02T.
Unfortunately there is no other more direct way to check this in tables.
Hope this helps and sorry again for the missunderstandin
Rgds
Martina

Similar Messages

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

  • How to Change WBS Element Status Profile

    Dear PS Experts,
    Once Status profile is set for WBS element, system is not allowing to change the same.
    What should I do to change the status profile?
    Moreover I will like to know the Table details in which Status profile details are kept for a WBS Element.
    Thanking you all.

    Hi,
    You can change the status profile on 'Control' tab of Project Definition. But this change will be effective for new WBS elements. I dont think you can change status profile for existing WBS. You will have to delete and re-create them.
    Status proflie for WBS is stored in JSTO table. Get OBJNR for WBS from PRPS table and insert in JSTO table to get status profile.
    Regards
    Shrikant

  • Multiple milestone creation issue for WBS element  'BAPI_PROJECT_MAINTAIN'?

    Hi all,
    I am using 'BAPI_PROJECT_MAINTAIN' to  create Project definition,WBS element & milestone for WBS at once.
    The program is working fine if one wbs element have one milestone.
    But If any of the WBS elements have more than one milestone, the milestones are not creating properly.
    The bottom level WBS milestones are creating for some higher level  WBS. some milestones are not at all
    creating. I am not getting any error message.
    Code for mile stone section is :
    **fill milsestone data for WBS in BAPI structures
            lv_mlstno = lv_mlstno + 1.
            it_wbsmilestone-milestone_number = lv_mlstno.
            it_wbsmilestone-wbs_element  = it_wbsdata-ID.
            it_wbsmilestone-milestone_usage = it_wbsdata-mlstn.
            concatenate it_wbsdata-edatu+6(4) it_wbsdata-edatu+3(2) it_wbsdata-edatu(2) into it_wbsmilestone-FIXED_MILESTONE_DATE_BASIC.
            it_wbsmilestone-SALES_DOC_DATE_INIDICATOR = it_wbsdata-faktp.
            it_wbsmilestone-INVOICE_PERCENTAGE   = it_wbsdata-fproz.
            append it_wbsmilestone.
            clear it_wbsmilestone.
    **fill milsestone data for WBS in BAPI update structures
            it_wbsmilestoneupd-milestone_number = cs_x.
            it_wbsmilestoneupd-wbs_element  = cs_x.
            it_wbsmilestoneupd-wbs_element  = cs_x.
            it_wbsmilestoneupd-milestone_usage = cs_x.
            it_wbsmilestoneUPD-FIXED_MILESTONE_DATE_BASIC = cs_x.
            it_wbsmilestoneupd-SALES_DOC_DATE_INIDICATOR = cs_x.
            it_wbsmilestoneupd-INVOICE_PERCENTAGE   = cs_x.
            append it_wbsmilestoneUPD.
            clear it_wbsmilestoneUPD.
    **Fill bapi table method project1 for the creation of WBS milestone
    **milestone will be created only after the creation of WBS elements first
    **lv_refnum is  the link to wbs element, which is already appened to it_methodproject
              it_methodproject-refnumber   = lv_refnum.
              it_methodproject-objecttype  = 'WBS Milestone'.
              it_methodproject-method      = 'Create'.
              append it_methodproject.
              clear it_methodproject.
          endif.
    How to resolve the issue?
    Please help.
    Thanks,
    vamshi

    Hi Ravi,
    Thanks for your continuous reply.
    The problem is solved.
    I  have passed the, reference number of WBS element  creation to milestone creation  in the 'Method' table.
    Thatswhy it is picking wrongly.
    I have corrected this by passing different reference numbers to WBS and milestone creations
    based on their tables.
    Thanks,
    Vamshi

  • Currency issue in WBS element

    Hi,
    I want to maintain two different cost centers belonging to different company codes (one with USD and other with INR) in WBS element level in requesting and responsible cost center field. When I do this, I'm getting an error message stating that "currency in requesting company code must be company code currency". Please let me know how to overcome this issue and maintain cost centers with two different currencies.
    Aman

    Aman,
    This is standard functionality cost center company code should be same as WBS company code.
    Question:
    Why you want to assign cost center's from diferent company code to one WBS element?
    Thanks
    Aby

  • Equipments Issued for WBS element

    Hi all,
    A Functional Location can be added to a WBS Element. We have came up with a requirement that once the equipments are issued against a WBS element, those issued are required to be installed at particular functional location automatically.
    How we could cater this?
    We need to do this without a ABAP development.
    Thanks in advance.

    hi sank.N
    if in Order settlement profile is u maintain default settlement category as WBS ,and mention WBS no account assignment tab in eqpt,f.loc then when u create MO on that eqpt or f.loc then in settlement rule u can find the WBS no .... and also for automatic assignment of F.loc to WBS in case of PM-PS intregration for managinig shutdown maintenance etc
    regrds
    pushpa

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

  • How to find out System Status of WBS Elements?

    Hi PS Experts!
    Please help me on my query.
    I want to get a list of WBS elements whose status is Released and can be used.
    If I try to search the table PRPS, it can only help me in finding WBS elements without deletion flag, with RA Key and so on.
    But the System status (such as Blocked for use) etc. is not present in the table.
    The one way I know is to get Object Number of WBS element from PRPS Table and insert it in JEST Table to get system status.
    Or alternatively, I give the WBS element no. in CJ20N t-code, and then check for System Status.
    These 2 methods work, if I do it one WBS Element at a time. If I need to get thousands of WBS elements in such a fashion, it's tedious.
    So could anyone help me on this issue?
    Thanks in advance,
    Vinitha.

    Hi Bala
    Yes, you have put it rather correctly.
    We use WBS elements for booking and posting time (client requirement). So what I am looking for is WBS Elements with the system status TERL (Time and Expense Released).
    I talked of the deletion flag also, because a WBS element flagged for deletion can't be used. It's one of the criteria to screen the WBS elements.
    I hope it's clearer now.
    Vinitha.

  • Issue in BAPI_PS_PRECOMMIT in mass creation of WBS Elements

    Hi,
    I am facing a issue with BAPI_PS_PRECOMMIT.
    we have the following WBS Hierarchy:
    S - Proj, (level1)
    S-XXX WBS Element (level2)
    S-XXX-001 WBS Element (level3)
    I have created a program for mass creation of WBS elements creation
    which uses the following BAPI's
    BAPI_PS_INITIALIZATION
    BAPI_BUS2054_CREATE_MULTI
    BAPI_PS_PRECOMMIT
    BAPI_TRANSACTION_COMMIT
    The proj: 'S' and the level2 WBS element: 'S-XXX' already exist in the system.
    When I run the program for delta load, so as to create the following level3 WBS elements:
    S-XXX-001
    S-XXX-002
    S-XXX-003
    The system is throwing the following errors at the BAPI_PS_PRECOMMIT:
    1. Final Check of the project definition and WBS elements: Error
    2. Validation unsuccessful
    Pls help me on this.
    Thanks,
    Deepak

    Check the WBS elements doesn't exist already in your system.
    Here is what I coded some days back for deletion of Network Activities, most of the things are same.
    You are doing for WBS element.
    * Call to initialization BAPI Before Delete
          CALL FUNCTION 'BAPI_PS_INITIALIZATION'.
    * Call to Network Activity Deletion BAPI
          CALL FUNCTION 'BAPI_BUS2002_ACT_DELETE_MULTI'
            EXPORTING
              i_number           = t_bapi_activity-network
            TABLES
              it_delete_activity = l_t_del_vornr
              et_return = l_t_bapiret2.
          DELETE l_t_bapiret2 WHERE type <> 'E'.
          READ TABLE l_t_bapiret2 INDEX 1.
          IF sy-subrc EQ 0.                                      "If error in Deletion
            MOVE: f_idoc_contrl-docnum TO t_idoc_status-docnum,
                  l_t_bapiret2-type TO t_idoc_status-msgty,
                  'CNIF_PI' TO t_idoc_status-msgid,
                  l_t_bapiret2-number TO t_idoc_status-msgno,
                  l_t_bapiret2-message TO t_idoc_status-msgv1.
                  MOVE c_idoc_status_error TO t_idoc_status-status.
                  APPEND t_idoc_status.
                  ROLLBACK WORK.
                  EXIT.
          ELSE.                                                  "If Delete is successful COMMIT
    * Call to PreCOMMIT BAPI
            CALL FUNCTION 'BAPI_PS_PRECOMMIT'
             TABLES
               ET_RETURN       = l_t_bapiret3.
    * Call COMMIT BAPI
    *        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
          ENDIF.
    The other solution is use BAPI_PROJECT_MAINTAIN.

  • How to Control authorization for users with certain status for level 2 WBS Element

    Dear All,
    Is there any standard way or enhancement available to control authorization for users with certain status for WBS Element i.e. for example
    Pre-requisite:
    There is only 2 level of project i.e.
    Lev_ WBSE_______Description
    1___ 7-14.E_______summay outage controller
    2___ 7-14.E.2310__ Plant/unit # 2310
    2___ 7-14.E.2310__ Plant/unit # 2220
    Project Controller  (authorization role assigned "Z_PS_OP7_OTGCON_C") have all project level authorization
    Plant/Unit Controller (authorization role assigned "Z_PS_OP7_PLNTOTG_C_2310") have only level 2 authorization with enhancement that we did in system by Z table.
    User ID_ Plant #
    123345_ 2310
    122455_ 2220
    Issue:
    After System Status released and User Status approved the WBS basic date for Plant/Units should be restricted from updating/changing by Plant/Unit Controller level and only project controller should have this authority.
    Solution required: 
    Can any one tell how to control this scenario either by standard or enhancement available to control authorization
    BR
    Saqib Usman   

    Hi,
    Did you explore SAP Enhancement CNEX0002 Using Transaction CMOD?
    Thank you and regards,
    Varshal Kachole
    The SCN Rules of Engagement

  • WBS User Status issue

    Hi All,
    I have configured WBS User status with one user status as LFI - Locked for Financial posting.
    For this user status following buiness transactions are forbiddesn:
    Create billing document --> Forbidden
    Create sales document --> Forbidden
    I have tested one scenario as :
    I have created one sales order on WBS Element not having LFI User status and then I have activated LFI user status for that WBS Element. Now when I try to create billing document for sales order created earlier -- whther system shoul allow me or not?
    - Swapnil Kharul

    LFI User status has following Business Transaction control as forbidden:
    Acct. assignment order/project
    Actual activity allocation
    Assignment order/WBS
    Create billing document
    Create sales document
    FI: Postings
    Funds commitment
    Goods Movement
    Goods issue delivery
    Goods receipt for purch. order
    Incoming invoice
    Manual cost allocation
    Material purchase order
    Material purchase requisition
    Post goods issue
    Schedule order
    Hi Srini,
    Thanks a lot for your help in this matter.
    My test results are - system is allowing to create billing document but FI document not got posted.
    Also in my sales order used WBS Element is billing element. I know about substitution rule for determination of higer level billing element.
    Please suggest.

  • Unable to close the WBS element because of inventory issue

    Hello
    We are facing one issue where we are trying to close one WBS element but getting error that stock still exsists.
    When i checked in table MSPR i found that for one of the material in the WBS element the physical inventory process is still not complete
    Physical Inventory Blocking Indicator ,Indicator that specifies that the stock is blocked for a physical inventory has value A(Physical inventory not yet completed for amterial) in that table for one of the materials.
    KIndly advice how to complete the proces and close the WBS.

    Dear,
    Check the links:
    Physical inventory block in material master
    Re: Physical Inventory & Goods movement process
    Cycle count not counting correct number of items
    Regards,
    Syed Hussain.

  • Issue on distribution of quantity to WBS elements in invoice

    Hi SAP Gurus,
    I have an issue with the distribution of quantity to WBS elemements in SAP.
    There is a purchase order with 6 line items. For the first line item a quantity of 3 is ordered and the same quantity of 3 is assigned to 7 WBS elements in the account assignment tab. There were 3 invoices created for this line item. For a particular WBS element a quantity of 1.050 was assigned and when we drilled down through the 3 invoices we found only a quantity of 1.028 is assigned to this Particular WBS element. Can someone please tell me as to why this mismatch has happened.
    Thanks in advance

    Hi Raman,
    I am sorry but this is not the case . There are 7 WBS elements used for this PO. The quantity is distributed to 7 wbs elements as follows.
                                          Percentage                    Quantity
    1st WBS element-                 8.7                             0.261
    2nd WBS element                 17.4                            0.522
    3rd WBS element                  18.2                            0.546
    4th WBS element                  8.8                             0.264
    5th WBS element                   6.4                             0.192
    6th WBS element                   5.5                             0.165
    7th WBS element                   35                              1.050
    This is the assigned structure in the PO for all the 7 WBS elements. But when you look into the 3 invoices a quantity of 1.028 has been distributed to 7th WBS element and a quantity of 0.214 has been assigned to 5th WBS element which is causing the mismatch
    Also in the 2nd and 3rd invoices only 6 wbs elements are used. Can you please tell me as to why there is a WBS element missing in the 2nd and 3rd invoices if the splitting is happening automatically.
    Regards,
    Dwarik

  • Issue with order or sequence of wbs elements appearance in planning layout

    Hi Experts
    we have an issue with order or sequence of wbs elements appearance in BPS planning layout.
    In BW - 0wbs element -  hierarchy order is as below
    1
    2
    3
    4
    5
    6
    7
    8
    but when we check the same wbs element in BPS planning layout, it appears as below
    1
    2
    3
    4
    6
    7
    5
    8
    Request you to advice how to correct the order.
    Best Regards
    krishna

    Hi,
    I came across a similar situation once. I dont remember exactly.
    We have two different DataSources on wbs hierarchy. The hiearchy was loaded using the two datasources.
    By mistake we were trying to use the hierarchy created by Datasource2, instead of hier created by datasource1.
    Can you check that.

  • Cannot change Status of WBS Elements

    Hi Guys,
    I am trying to change the status of a WBS element. When i try to change the status of the WBS element, I get the message that " THere are still open down payments for the WBS ". What does this actually mean??
    I found the downpayment GL and looked for the open items. In the open items i was able to find a line item to which this WBS is attached. Then i tried to go to the document, in which this line item exists. Now in order to clear the open line item with the WBS, how should i clear that line item?? I want to know how to clear the down payment for this WBS or the found out line item.
    Thanks.
    Kris..

    Hi,
    Run the report S_ALR_87013536 - Plan/Actual/Down Payment as Expense for the particular WBSE that was showing in the error. Here you would see the value of down payment against the WBSE.
    Run FBL3N for the down payment G\L by selecting the WBSE from dynamic selection. Here you can get the open line items with WBSE and relavent PO.
    For clearing the down payment discuss with your concern MM  and FI dept.
    Hope this could help you.
    Regards,
    Nag.

Maybe you are looking for

  • Text Not seen in design view

    Dear Experts, I am helping my brother out with a site he uses for his company. It seems to be made with GoLive. Anyway, the site was a huge mess, so I tried to tidy it up with CSS etc. Now it is much more orderly, and everything was looking fine last

  • Returns of a substituted Material

    Hi SAP Gurus I have a bit of a problem. We have set up material substitution rules that says if customers order Part A substitute with Part B. Because with have g ATP this comes as a subitem. Now my problem is that when I try and create Returns order

  • Remove Acrobat 6.0 and 7.0

    Please help me find complete instructions to remove Acrobat 6.0 and 7.0. They do not appear in add remove programs. I now have Reader 8.0. Thanks Frank C Win XP SP 3 Dell Dimension 8400

  • Eligibility Profiles: Derived Factors

    Hello We are trying to setup a benefits eligibility profile that uses a Length of Service derived factor. So we went and defined the derived factor before using it in the eligibility profile. On the Derived Factors form, we are using "Date of Hire" a

  • 945P internal USB port problem

    Power exceeded on USB Port 945P motherboard - NO DEVICES CONNECTED Part Number: MSI 945P Platinum Socket 775 CPU: Intel Pentium 4 640, 3.2 GHz Memory: Corsair 512MBx2 PC4300 DDR2 533MHz Operating System: XP Pro On the motherboard, I have added more e