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 PMSPRO - 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? -
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
AbhiDear 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.SrinivasanDear 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.
RatnaHi,
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,
JyothiHello 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
KRISHNANDear,
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 years 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 HussainHi
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 kanthHi 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,
DiegoTo 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!
Kshitijahi 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
-
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
-
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 ?