Header WBS Element

Hi, can anyone why the header WBS element is not propagated into the line item WBS element when creating the line items?
Thanks
PP

Hi, This is refering to SO creation.
Thanks
PP

Similar Messages

  • WBS Element ( Billing element ) assignment  at sales order header level

    HI,
    There is provision of assign WBS Element at sales order header as well as item level , If Project WBS Element is assigned for each line item delivery  and stock updating is happening from the project, But WBSE will assign at sales order Header  system will not allowing to create project delivery( moment type 601Q), and stock updation ftom project.
    Please let me know how this will happen ,
    Regards,
    Gangi
    Edited by: Gangi Reddy Botchu on Jul 7, 2008 4:50 PM

    SPRO - SD - Billing - Billing Plan - the first 5 config nodes (Define Billing Plan types / Define Date descriptions / Assign Date categories / Maintain Date Proposals / Assign Billing Plan types to Sales Doc types) are applicable to you.
    this is pretty tranparent for a reference.
    What else is required?

  • WBS Element In header DATA

    Dear Experts,
    Is it possible if i give WBS element in Header Account assignment which inturn copies to Account assigmnet in the line items.
    Kindly let me know if there is any standard process.
    Regards
    Abhi

    Dear Rahul,
    All the Line items in the sales order are Same ...
    i must have to maintain WBS manually in the item account assignmnet..... i dont want to that .. when i enter in the header data it must automatically copy to line items also with the WBS element entered in the header DATA.
    Now it is not happening .. if i enter in the header data it is not updating in item data.
    Regards
    Abhi

  • Header WBS for two WBS elements

    Dear All,
    Is it is possible to create a Header WBS for two WBS elements which were
    triggered by Two different line items in a sales document.Please detail the process
    if a possibilty for the same exists.
    Award points are assured for valuable replies.
    thanking you
    Best regards,
    R.Srinivasan

    Dear Sunil,
    I am using the Standard project with same structures only.I am not able to get the header WBS for Two WBS elements triggered from the same sales order.what are other possibilities for this problem.
    Can you please elobrate your reply
    Thankingyou,
    Best regards,
    R.Srinivasan

  • WBS element field mandatory for specific sales order

    Hi Friends,
    I want to make the WBS element field in sale order line item to be mandatory for a specific sales order type. I am not able to add this field in incompletion log also. So can anyone let me know the solution for this.
    Ratna

    Hi,
    As solution suggest above is correct use VBAP table and Field is PS_PSP_PNR into ur incompletion log and assign this procedure to ur Item category. And If u want to WBS element check at header level the use VBAK table and field PS_PSP_PNR and assign this incompletion log to ur sales document type.
    Once more setting is required to stop the order from saving if incompletion check is unsucessful, for that you need to check a checkbox named "Incomplete. Message" in VOV8 tcode, for ur perticular sales document types.
    Hope this will resolve ur problem.
    rgds
    Dhiraj

  • WBS element for collective order

    Hello All,
    I have a production order with 5 subordinate production orders .
    For the order header there is a WBS element assigned .
    But for the subordinate orders, WBS should be the same as that of order header WBS.
    My problem here is , PO is created using CO10 . WBS is  input at the time of creation and available in order header only.
    But WBS field is empty for subordinate orders when displayed using CO03.
    Regards,
    Jyothi

    Hello All,
    I got the solution.
    There is a link between BOM header and items and WBS elements through table AFPO.
    If we input the WBS element, then it displays all the orders (Both BOM hdr and items)
    If the table entry is not maintained correctly, then there will be no WBS for that BOM items.

  • WBS element , Production Order and Sales Order Link

    HI,
    I have to get the name of the customer mentioned in the sales order. In Sales order line item assignment WBS element has been assigned as this is a sales order for customer specific.
    Now I am doing MRP run against WBS element and getting the planned order.
    After that i am doing Conversion of planned order into production Order with transaction code MD04.
    In the production order, Assignment tab WBS element is showing.
    My query is that against the WBS element and that particular production order how can i trace sales order as well as the customer name.
    Note: The WBS element can be assigned to more than one sales Order line item.

    Asutosh Mahapatra,
    Since each production order is created for 1 unique Sale order number you should see the sale order number on the header screen in production order ( General data tab). Also customer number & name will appear there.
    Hope this helps. Else please come back.
    Thanks,
    Ram

  • Settlement of order -WBS Element

    Dear Experts,
    Can any one tell me what is meant by WBS element and in what scenario,PM orders settlement rule created with category as WBS.If possible tell me with any practical example.
    regards
    KRISHNAN

    Dear,
    Dear,
    Budget: Amount of resources allocated under a particular head in a financial year.
    Budget Control: Having/ creating a control on the resources allocated in a financial year.
    Original Budget: The initial budget that you have allocated to a WBS element.
    Supplement of Budget: One time/ discrete increment in the original budget.
    Return of Budget: Taking out the unutilized portion of the budget.
    Transfer of Budget: Transferring the budget among two or more expense heads.
    Project Definition: A framework for a business undertaking with a fixed goal to achieve with given resources.
    The project definition contains dates and organizational information that are binding for the entire project.
    WBS Element: Individual structural element in a work breakdown structure (WBS) representing the hierarchical organization of an R/3 project. Describes either a concrete task or a partial one that can be further subdivided.
    Proposed Business Process
    Assume there are seven expense heads in maintenance department. There may be addition of expense head in near future.
    Based on the maintenance heads, maintenance department will create a project in project system. This project will be used for ‘statistical purpose’ only & will not have any financial implication.
    Upon creation of a project, WBS elements will be created as per the expense heads. So for each expense head, there will be one top level WBS element. Again these WBS elements will be divided in twelve WBS elements. These twelve WBS elements represent twelve calendar months.
    Budget will be allocated to each WBS element & the WBS element will be released from the project.
    Maintenance department will create maintenance orders as per their work requirements. These orders will be settled to cost centre, which is maintained in the settlement rule. Also WBS element will have to be mentioned in each order so that the budget control can take place. So as to capture cost from each maintenance order, the WBS element field will be made ‘mandatory field’ in maintenance order.
    So when a maintenance order is released, system will do a budget check against the WBS element mentioned. If the budget check status is OK, order is released or else it will stopped from release. If the order is stopped from release, maintenance department will have to supplement the budget. Upon supplementing, the order is released again & the maintenance cost such as, labour, material costs can be booked on the order. Again the order cost is settled to cost centre & at the same time, budget is consumed from the respective WBS element.
    Every year, maintenance department will copy the previous year’s project so as to save time & efforts to create project & WBS elements. And the maintenance department will assign the budget allocated to each WBS element in a financial year.
    It is also possible to return the unutilised budget or, transfer of budget from one WBS element to another.
    Create a project CJ20N
    Create WBS element CJ20N
    Assign Budget to WBS elementsKO22
    Display assigned Budget KO23
    Supplement Budget KO24
    Display Supplement budget KO25
    Return Budget KO26
    Display Return budget KO27
    Transfer of budget CJ34
    Hope u wull get ur answer
    Regards
    Rakesh

  • GR/IR difference with foreign currency - WBS element

    I am working in the MM area and hadling Service entry sheets, GR and Invoice, Finance is complaining and having problem at project(WBS Element) closing time. we are using Project system to control budget. Now finance is not able to close budget code because they are having commitment and giving error. the situation is like below: There is a difference of .01 AED in the Foreign currency amount, finance also claim that system was behaving OK with 4.6C, Now after upgrade to ECC5(4.7) it has started this problem
    Goods Receipt:
    3,702.73     USD          13,600.00     AED
    Invoice Receipt:
    3,702.73     USD          13,600.00     AED
    Service Entry Sheet:
    3,702.73     USD          13,600.01     AED
    Please help me to sort out this problem
    Mazhar
    Message was edited by:
            Mazhar Hussain

    Hi
    Header exchange rate picked up at time of PO creation with reference to document date in header.
    If you fix exchange rate then it will be same for all items in purchase order.
    In your case if exchange rate is different then check whether you have done goods receipt in two lots (say 8 items first and then 2 items) with different posting dates. Check accounting documents generated and in that document check translation dates for checking exchange rate in OB08 transaction.
    And in invoice what is the currency you are using - if you do not use any special currency (foreign) then PO currency will be picked up. If exchange rate fixed indicator is not there in PO - depending upon system baseline date (posting date) exchange rate will be coming.
    Thanks

  • WBS element conversion routines

    Hey guys,
    I recently added PS_PSP_PNR to 2LIS_11_VAHDR in order to extract the WBS element from the sales document header. So far so good and everything works fine. In the extractor checker I get the data as expected e.g. 'S-00017.02.09'.
    The problem occurs as soon as the data is transferred to BW. In the transfer structure I see that PS_PSP_PNR har conversion routine ABPSP that converts the WBS from external format CHAR(24) to internal NUMC(8). And this is what is causing me the trouble! In the PSA the WBS from above is converted to '00029788'.
    I tried several different approaches. If the field is mapped directly to 0WBS_ELEMT the value '00029788' is obviously also written to the DSO and further up the data flow.
    I tried coding an ABAP routine in the transfer rules which does not seem to work:
    call function 'CONVERSION_EXIT_ABPSP_OUTPUT'
    exporting
    input = TRAN_STRUCTURE-ps_psp_pnr
    importing
    output = RESULT.
    RETURNCODE = 0.
    ABORT = 0.
    Since the routine above did not help me at all I tested the FM in SE37 and it does not return any values for '00029788'.
    Any clues on this? How to proceed?
    BR
    Stefan.

    Well... Didn't want to wait any further for an answer, so I appended PS_POSID to the extract structure and filled this field in ZXRSAU01. In the exit I used 'CONVERSION_EXIT_ABPSP_OUTPUT' to convert to the correct format.
    BR
    Stefan

  • BAPI's for creating of Project and WBS elements in SAP system.

    Hi Guys,
                 I was able to use a Wrapper FM for creating the
    We have a FM which combines 5 different BAPIs
    FM/Wrapper: "Z_LEED_PROJ_WBSELEMT_CREATE"
    1)      BAPI_PS_INITIALIZATION
    2)      BAPI_BUS2001_CREATE
    3)      BAPI_BUS2054_CREATE_MULTI
    4)      BAPI_PS_PRECOMMIT
    5)      BAPI_TRANSACTION_COMMIT
    Requirement: To automate the process of creation of Project and WBSE(Tasks) and create an entries in the PS tables based on the user inputs from the user interface in Visual Composer.
    Basically user should be able to create the Projects and WBSE.
    Issue: We were able to create the Project with the FM (BAPI_BUS2001_CREATE) but having the issue with the creation of WBSE(Tasks), the user will be entering the inputs for Project Definition, Project Profile and WBSE which are to be created in the UI.
    The problem is we are not able to create the WBS elements using  BAPI     BAPI_BUS2054_CREATE_MULTI .i will send u the code below .Can anybody correct
       CLEAR it_return.
      CALL FUNCTION 'BAPI_BUS2054_CREATE_MULTI'
        EXPORTING
          I_PROJECT_DEFINITION = i_project_definition-project_definition
        TABLES
          IT_WBS_ELEMENT = it_wbs_element
          ET_RETURN = it_return.
      APPEND LINES OF it_return[] TO et_return[].
    Thanks,
    Gopi.

    Hi Ramiro,
                   This is the entire FM code which is below.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(I_PROJECT_DEFINITION) LIKE  BAPI_BUS2001_NEW STRUCTURE
    *"        BAPI_BUS2001_NEW
    *"  TABLES
    *"      IT_WBS_ELEMENT STRUCTURE  BAPI_BUS2054_NEW
    *"      ET_RETURN STRUCTURE  BAPIRET2 OPTIONAL
    *"      EXTENSIONIN STRUCTURE  BAPIPAREX OPTIONAL
    *"      EXTENSIONOUT STRUCTURE  BAPIPAREX OPTIONAL
      DATA: it_return LIKE STANDARD TABLE OF BAPIRET2 WITH HEADER LINE,
            v_error TYPE boolean VALUE IS INITIAL.
      CLEAR: et_return, it_return.
      CALL FUNCTION 'BAPI_PS_INITIALIZATION'.
    Do checks for creating project definition
      CALL FUNCTION 'BAPI_BUS2001_CREATE'
        EXPORTING
          I_PROJECT_DEFINITION = i_project_definition
        TABLES
          ET_RETURN = it_return.
      APPEND LINES OF it_return[] TO et_return[].
      LOOP AT it_return.
        IF it_return-type CA 'EAX'.
          CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
          v_error = 'X'.
          EXIT.
        ENDIF.
      ENDLOOP.
      IF v_error = 'X'.
        EXIT.
      ENDIF.
    Do checks for creating WBS elements
      CLEAR it_return.
      CALL FUNCTION 'BAPI_BUS2054_CREATE_MULTI'
        EXPORTING
          I_PROJECT_DEFINITION = i_project_definition-project_definition
        TABLES
          IT_WBS_ELEMENT = it_wbs_element
          ET_RETURN = it_return.
       APPEND LINES OF it_return[] TO et_return[].
      LOOP AT it_return.
        IF it_return-type CA 'EAX'.
          CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
          v_error = 'X'.
          EXIT.
        ENDIF.
      ENDLOOP.
      IF v_error = 'X'.
        EXIT.
      ENDIF.
      CALL FUNCTION 'BAPI_PS_PRECOMMIT'
        TABLES
          ET_RETURN = it_return.
       APPEND LINES OF it_return[] TO et_return[].
      LOOP AT it_return.
        IF it_return-type CA 'EAX'.
          CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
          v_error = 'X'.
          EXIT.
        ENDIF.
      ENDLOOP.
      IF v_error = 'X'.
        EXIT.
      ENDIF.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          WAIT = 'X'.
    ENDFUNCTION.
      can u please look at the code and let me know the changes?
    Thanks,
    Gopi.

  • Vendor wise/Invoice wise consumption for each WBS element

    Any standard report from SAP, which provide details of Vendor Purchase order / Contract, details of SES with WBS no. and details of Vendor invoice in columnar form.
    SAP system can not generate standard reports giving vendor wise/Invoice wise consumption for each WBS element of particular asset.
    Please help me to get this report.
    Thanks in Advance.

    Hi
    Your starting point should be CJI3 report or any PS report... Here you get the FI Doc no
    If this FI Doc No is generated from MM, check the Header segment of the document.. It would have MM Doc NO + Fisc Yr populated in the ref key... This gives you the link between FI & MM
    From here on, you can take it forward... You can look up this doc no in MSEG Table and find the PO no... Then go to EKBE table for other PO details....
    br, Ajay M

  • Distribution of Depreciation of an asset to multiple wbs elements??

    Dear Members,
    our requirement is as follows.
    our cost centers are for 1) departments at head office level 2) Regional offices
    whenever depreciation is calculated it's posted to Head office cost center and the same asset will be used for multple projects.
    so here our requirement is the depreciation posted for a  particular asset is to be distributed to multple WBS elements or Regional offices (cost centers) ..
    please guide us to meet this requirement.
    regards,
    sashi kanth

    Hi Sashi Kanth,
    In Asset Accounting Module, you can only assign one cost center to a master data, so all the depreciation posted will be accumulated only on one asset master / cost center. Though, you can settle the multiple WBSelements to a single asset you cannot apportion the depreciation cost per WBS element.
    To meet your requirement, you have to create separate Asset Master Records (AMR's) with the required Regional Office cost center, so you will get the depreciation cost regional office WBS element or cost center wise.
    Regards
    Nitin

  • Open a Sales Order on statistical WBS element. How?

    Hi,
    I tried to open a sales order on a statistical WBS element but the system shows me an error saying I can't open it because the WBS is statistical.
    Could it be a problem of Controlling Area or Operating Cornern?
    Is there a setting that allow me to open a sales order on statistical WBS element?
    Thanks,
    Diego

    To best of my knowledge, WBS is only a search criteria if u wish u take a doc as ref. in sales order. this ref. will happen only if the previous doc is prepared with ref to WBS. may be at header or item level. but i wonder how will it track the doc if there are multiple WBS in previous doc. u can assign WBS in account assignment tab page.
    I wonder if i have helped u with my answer.

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

Maybe you are looking for

  • Imposition without converting to PDF?

    I handle the playbills for a local theater in InDesign CS5. The majority of the program is a shell with advertising pages and other non-changing theater info, and is managed by the folks who do the actual printing. For each production, I just send th

  • New in sql developer

    Hi, I am evaluating sql developer. i tried to download the installer from http://www.oracle.com/technology/software/products/sql/index.html ( Oracle SQL Developer for Windows - 55.8MB). I followed the installation guide and explored it. I am also abl

  • SCOM 2K12 Mgmt Server - Local App Health Rollup under Security

    Recently, I noticed that both my 2K12 SCOM management servers were in a critical state; Security and the underlying "Windows Local Application Health Rollup" were red, although everything else underneath looked fine.  I tried overriding/disabling the

  • Impossible d'installer Indesign de la CS5 sur pc neuf Win 7 64bits

    Impossible d'installer InDesign de la CS5 Toute la suite s'est installée correctement mais pas InDesign. Erreur: Exit Code: 6 -------------------------------------- Summary -------------------------------------- - 1 fatal error(s), 4 error(s), 4 warn

  • Layouts issue

    Dears, I am facing an issue while trying to print preview any form on the system in arabic it appears in symbols on osx but when i try to do it on windows it appears normally, do i have to configure something on osx to solve this issue ?