WBS Element Texts
Hi All,
I am facing the problem of texts for the info object 0wbs_elemt and 0project.
The number of wbs element is 06/9999/40/I000 and the texts are not visible while reporting on this info object. We have loaded the master data before loading of the transaction data and we have loaded both attribute data and texts data.
When I enter the WBS Element on the Selection Screen and check for consistency of the entered selection criteria the medium length of the texts is visible on the selection screen but not inside the report.
The property of the WBS element in the Query is Display as Key and Name.
Where could the problem be.
Points Assured.
Regards
Joga
Hi,
can you check if your master data texts are properly loaded? Run tcode RSDMD with 0WEBS_ELEMT and verify that your ID has texts.
Otherwise goto your R3 source system; table PRPS, field PST1 should have your text; if you don't get it in R/3 then it hasn't been maintained....
hope this helps...
Olivier.
Similar Messages
-
I need a report of PS Text assigned to Project Definition or WBS Elements.
Dear Friend's
I need a report of PS Text assigned to Project Definition or WBS Elements.
By putting Project Definition or WBS Elements i must get all PS Text & print option is also required.
How i can do this in PS module.
Regard's
Sandeephi pratap,
on ps texts account, can u pl let me know, how i can restrict using the ps texts assigned to one project, bcos the same ps text can be edited or modified any other user.
ps texts may be different eg, different excel sheets assigned at wbs elements.
1. abc project wbs assigned xyz ps text (excel sheet)
2. zyx project wbs assigned xyz1 ps text (excel sheet)
the above are used by two different users.
if abc project user goes thru cj02 for editing the ps text xyz, but at the same time, if this user goes thru pull down list, he can also pick up xyz1 ps text and can do edit/modify.
is there any way to restrict thru basis/ps control or authorisations
my requirement whatever assigned ps text is only has to be changed/modified as & when the user opens project thru cj02
pl help
regards
srihari -
Description text in WBS element
In esscatsap.com DC ..
We are looking to select Description text in WBS element or at least
show the description instead of WBS element.
How is that possible ? The best way i am guessing after looking at the
code is to add one more column (Description). But is this something
doable or advisible.
we looked at all the user exits, but nothing is helpfulPlease post this question in WD java forum. If you want to do it, you need to change the DC using NWDI track.
Regards
Vishal Kapoor -
Vendor Payments Report with WBS Elements
Dear Expert,
I am looking a report for Vendor outgoing payment against WBS Elements.
Is there any Vendor Payments report with WBS Elements in SAP? I have seen FBL1N but WBS Elements field is blank.
Thanks
Samiee.Hi,
You mentioned WBS Element is blank; so please check in any one sample payment documnet whetehr WBS is maintained and if yes find which field it is populated. For eg; sometimes people populate this information in the text or assignment field. If that is the case then change the layout accordingly in FBL1N.
Regards
Sreekanth -
WBS element group in Report Painter
Hi,
What is the procedure to insert WBS element group as parameter selection field in a report painter?
I'm working in PS Information System / Hierachy Reports and we want to extract economic information
Thanks!
SayatonHi
To create a Transaction Code for a Report Painter/report writer report
Tcode for Report Painter
To create a TCode, follow the steps below.
1) Go to Transaction code SE93, Enter TCode Name and Press Create.
2) Give short Description and select Parameter Transaction, Press Enter
3) Select Transation Radio Button and write START_REPORT in the next text
box Also Check the box Skip Initial Screen.
4) On the bottom of Screen (default Values), Enter Parameters
i) Name = D_SREPOVARI-REPORTTYPE. Value = RW
ii) Name = D_SREPOVARI-REPORT Value = Your Report Group Name (Say 1SIP)
5) Save and Execute.
<b>Reward points for useful Answers</b>
Regards
Anji -
Report Painter Request - Cost Center and WBS Element
Hi Everyone,
Currently, my company settles all project related expenses through to a cost center by way of an internal settlement cost element (category 21). The issue with this is that when the expense gets to the cost center, they lose all visability as to where the expense originated, such as salaries or travel expense (category 1 cost elements). We can't switch the settlements to the originating cost element from wbs to cost center just because of the additional data/volume that will cause. My thought was to create a report painter that can run by cost center but also show the wbs's that settle to that cost center and group the expenses by primary cost element (cat 1). I'm assuming that there is a way to marry a cost center and wbs element by way of the wbs settlement rule but how would that be done for reporting purposes? I've seen it done before by way of a nightly job that created sets based on the combination of cost center and wbs but I'm not sure how that was done. Any advise and examples?
Example:
Cost Center: IT
WBS: A.0017.01.01 (settles to cost center IT)
Postings made:
1. CC IT and CE 552000 "salaries"..............................$20,000
2. WBS A.0017.01.01 and CE 552000 "salaries"........... $5,000
3. Settlement of WBS to CC (expenses flow through to CC IT by way of CE 985000)
I want to run CC IT and see that the account 552000 really shows $25,000 and can be broken down by cost object (CC and WBS by the amounts above)
Thanks,
PeteHi Peter,
I had a similar requirement and used report painter report group 1SHK-002 (in library 1VK).
I took a copy of the standard and ameneded it slightly, I switched the explode so it occured on the cost center not cost element.
The report runs so that direct costs on the cost center are shown at primary cost level. And values settled to the cost center are shown on the partner object. In your case i guess WBS Elements (Partner ObjType WBS).
Now in my case I didnt need cost element breakdown on partner level, just on cost center so effectively I have(sorry for text alignment but I hope you get the idea):
GL1 ............. 100
GL2 ............. 250
+ Cost center1 total ....350
GL3 ............. 50
GL4 ............. 100
+ Cost center2 total.... 150
Primary Cost Total ..... 500
X-YZ-1.200 ............. 50
X-YZ-1.400 ............. 100
+ WBS total ............. 150
IO 1............. 100
IO 2 ............. 100
+IO total ............. 200
Partner Total............. 350
Overall total ............. 850.
Its not exactly like your requirement but it might be a good report for you to work with to get what you need.
Elaine -
Relationship between tables milestone and wbs element
Hi Guys,
1.I have taken two tables in my source code retieving milestone number(mlst_zaehl), usage(mlstn),and wbs element(pspsnr)
from TABLE MLST and the other table is PRPS(WBS ELEMENT TABLE, and the fields are psphi(project) , and pspnr(wbs elemrnt,
The problem is i am not getting the project (psphi) FROM PRPS TABLE and the link field is PRPS-PSPNR = MLST-PSPNR.
2.Other requiremnt is in the same program, iam getting reservation quantity and also DELIVERY QUANTITY
if delivery qty equal to reservation quantity then exit and if the reservation qty is NOT equal to delivery qty,
i need to UPDATE the corressponding USAGE , MILESTONE TEXT, AND QTY in milestone table MLST.
please let me know any function to update milestone or BAPI or i sahll use BDC.
Reagrds
subbaraHi
I think you want to link MLST and PRPS tables to get the milestone fields...
From Table MLST - Mile stone number - MLST_ZAEHL and WBS element - PSPNR, link the WBS elements with PRPS table - WBS element - PSPNR and for project - PSPHI (Current Project Number).
For project number you can take from PRPS - PSPHI or from PROJ table
- Pithan -
Error while uploading Journal with wbs element
Hi SAP Folks,
I am trying to upload journal through a customized transaction.
The journal line item has wbs elements in it.
While uploading journal it is showing the below error only when I am using a particular cost element from XXXX Cost element group.
For other cost element from ZZZZ cost element group, it is not showing any error.
ERROR: This G/L Code is only valid for Capital Projects (C-WBS elem.
Is there any transaction code which will link the cost elements to the project codes.
Please help.
Thanks in advance.Hi Paulo,
This G/L code is only valid for Capital Projects (C-WBS elem
Message no. ZCO002
Prerequisite
CO Area = 'XXXX'
AND G/L >= '10000' AND G/L <= '19999'
Check
( WBS Element >= 'x.1' AND
WBS Element <= 'x.9.99.999.9.9.9' )
OR
( Network >= 'x1' AND
Network <= 'xZZZZZZZZZZZ' )
OR
( Order >= '700000000000' AND
Order <= '799999999999' )
"| PM Orders can use Capital GL codes for Capital Works |"
Message
message type - E
message no. - 002
Message class - ZCO
message text - This G/L code is only valid for Capital Projects (C-WBS elem
Do i need to change anything.
Error message no. ZCO002 is matching with the message of Validation.
How do I proceed further??
Thanks in advance
Regards,
Sophia -
Updating WBS element in a sales order
There is application in Project System (PS) module where I am creating the Project using bapi BAPI_PROJECT_MANTAIN and then uploading the budget for the same using bapi KBPP_EXTERN_UPDATE_CO. After this when I am trying to update the sales order to update its WBS element using bapi BAPI_SALESORDER_CHANGE it’s going into short dump. Dump description as follows :
Category ABAP Programming Error
Runtime Errors MESSAGE_TYPE_X
ABAP Program SAPLBPFC
Application Component FI-FM
Date and Time 17.07.2014 15:11:07
Short text of error message:
System error in : LBPFCFE2 Table: Report: Routine: DETERMINE_OBJ_ENQ
_MODE
Long text of error message:
Diagnosis
An internal error has occurred.
System Response
Processing will be discontinued.
Procedure
Contact your system manager.
Technical information about the message:
Message class....... "BP"
Number.............. 005
Variable 1.......... "LBPFCFE2"
Variable 2.......... " "
Variable 3.......... " "
Variable 4.......... "DETERMINE_OBJ_ENQ_MODE"
Whereas when I am running the bapi BAPI_SALESORDER_CHANGE standalone using se37 with same test data its updating sales order properly.
After debugging the standard bapi I have found out that there is a subroutine determine_obj_enq_mode which is setting the variable u_enq_mode.In our case this variable is blank that’s y its going into dump.I tried hardcoding this variable to 2 then it updates the bapi properly.So will you suggest for the enhancement where we can hardcode this variable or is there any other solution you will suggest.
Thank youThere is application in Project System (PS) module where I am creating the Project using bapi BAPI_PROJECT_MANTAIN and then uploading the budget for the same using bapi KBPP_EXTERN_UPDATE_CO. After this when I am trying to update the sales order to update its WBS element using bapi BAPI_SALESORDER_CHANGE it’s going into short dump. Dump description as follows :
Category ABAP Programming Error
Runtime Errors MESSAGE_TYPE_X
ABAP Program SAPLBPFC
Application Component FI-FM
Date and Time 17.07.2014 15:11:07
Short text of error message:
System error in : LBPFCFE2 Table: Report: Routine: DETERMINE_OBJ_ENQ
_MODE
Long text of error message:
Diagnosis
An internal error has occurred.
System Response
Processing will be discontinued.
Procedure
Contact your system manager.
Technical information about the message:
Message class....... "BP"
Number.............. 005
Variable 1.......... "LBPFCFE2"
Variable 2.......... " "
Variable 3.......... " "
Variable 4.......... "DETERMINE_OBJ_ENQ_MODE"
Whereas when I am running the bapi BAPI_SALESORDER_CHANGE standalone using se37 with same test data its updating sales order properly.
After debugging the standard bapi I have found out that there is a subroutine determine_obj_enq_mode which is setting the variable u_enq_mode.In our case this variable is blank that’s y its going into dump.I tried hardcoding this variable to 2 then it updates the bapi properly.So will you suggest for the enhancement where we can hardcode this variable or is there any other solution you will suggest.
Thank you -
Upload of opening finance balances with wbs elements
Hi Gurus,
Appreciate if you can please share some knowledge on taking opening FI balances including open vendor and customer invoices with wbs elements..
We are going live in mid year and p&l items should reflect data of prior periods in the fiscal year...
Now question is how can we see project wise details in finance of already running projects?????
If we enter wbs in gl, customer and vendor lines then how will data come in cost and profit center, as project settlement is required to settle on cost center????
Whats is ideal way to handle such situation??
One more thing to add that we have activated document splitting on profit center.....
Please reply back
Thank youHi,
if those WBS are statiscall there will not any settlement even if you pass the WBS in docuemnt level if you don't maintain settlement rule it won't settle it. one more option pass the WBS in a/c doucment text filed or assignment then you can easily find it out .
Regards,
Raman -
Very urgent- find parent-child relationship for wbs element
Hi,
There is a certain parent child heirachy in WBS elements.My requiremnet is to delete WBS element depending on certain field , say depending on some ""status"".If the status is active in some or any of the child then I am not suppose to delete its respective parent too. This parent-child relation can have say 5 levels.
For this I require a logic /program which shall maintain the parent reference for that particular child whih I want/ dont want to delete.
I am maintaining bottom- to -top approach.
That is I shall be checking for the status of the lowest level of WBS and then going to the highest.
Please Help!
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.... -
Table name for WBS element deleted
If a WBS element is deleted , the corresponding object id which is internally created by the system is also deleted from the PRPS table,
Is there a way to find all the deleted WBS elements and what is the table name for the same.Hello
1. Goto table PRPS with PSPNR = WBS number. Get field OBJNR.
2. With PRPS-OBJNR goto table JEST. You will have all status for this WBS element.
3. Text for status - table TJ02T -
Hi,
User wants to change the WBS element Name, but the field is greyed out.
User has the access to CJ02 but only the long text is open to change but WBS Element Name / ID field is freezed and can not be changed.
The current status of WBS element is released.
In Quality system I am able to change the WBS element Name / ID.
Please let me know what can be the reason for WBS Element name field being greyed out.
Thanks
SatishHi,
I agree with Nitin.
You can not open any version witht he old name if they are already created and in at table level internal number is stored. When you change external number will get changed but not the internal number.
So for any report purpose or in any developments you are taking internal number and thru conversion exit converting it to external number then it will return old value not new value.
It will create lot of inconsistency in data once such volume of such instances grew.
If possible , set deletion indicator to that WBSE and create new one with desired name afresh.
Thanks
Saikishore.Ganga -
Table for description of WBS element status
hi guys ,
i use BAPI_BUS2054_GET_STATUS to get WBS element status and it return value of REL , in which table can i get the description of REL ?hi
hope u will get some idea from this code:-
Reward if help.
Adding WBS Element in Proper Hierarchy from a Text File.
*& Include ZBAPIWBS
*& Report Z_BAPI_CJ20N
REPORT Z_BAPI_CJ20N.
INCLUDE ZBAPICJ20NTOP.
INCLUDE ZBAPICJ20NFILEUP.
INCLUDE ZBAPICJ20NLOGIC.
*& Include ZBAPICJ20NTOP
DATA: BEGIN OF ITMAIN OCCURS 0,
PROJECT_DEFINITION TYPE PS_PSPID,
DESCRIPTION TYPE PS_POST1,
PROJECT_PROFILE TYPE PROFIDPROJ,
BUS_AREA TYPE GSBER,
WBS_ELEMENT TYPE PS_POSID,
WBS_DESCRIPTION TYPE PS_POST1,
END OF ITMAIN,WA_MAIN LIKE LINE OF ITMAIN,ITWBS LIKE STANDARD
TABLE OF ITMAIN WITH HEADER LINE, ITMAIN2 LIKE STANDARD TABLE OF
ITMAIN.
DATA: ITPRJDEF TYPE STANDARD TABLE OF BAPI_PROJECT_DEFINITION WITH
HEADER LINE,WA_PRJDEF LIKE LINE OF ITPRJDEF.
DATA: ITPRJDEFUP TYPE STANDARD TABLE OF BAPI_PROJECT_DEFINITION_UP WITH
HEADER LINE, WA_PRJDEFUP LIKE LINE OF ITPRJDEFUP.
DATA: ITMETPRJ TYPE STANDARD TABLE OF BAPI_METHOD_PROJECT,
WA_METPRJ LIKE LINE OF ITMETPRJ.
DATA: RETURN TYPE BAPIRETURN1,MSG TYPE STANDARD TABLE OF
BAPI_METH_MESSAGE WITH HEADER LINE.
DATA: LINES TYPE I,REFNO TYPE I VALUE 0.
DESCRIBE TABLE ITMAIN LINES LINES.
DATA: METTYPE TYPE STRING VALUE 'Create'.
DATA: WA_DUPLI LIKE LINE OF ITMAIN.
WA_DUPLI-PROJECT_DEFINITION = 'JB'.
DATA: SPLIT1(50) TYPE C.
DATA: PREVWBS TYPE PS_POSID VALUE ' ',
LEFTWBS TYPE PS_POSID VALUE ' '.
DATA: POS TYPE I VALUE 1.
DATA: OFF TYPE I VALUE 0,MODE TYPE I,INDEX1 TYPE I VALUE 0,
INDEX2 TYPE I VALUE 0,INDEX3 TYPE I VALUE 0,
INDEX4 TYPE I VALUE 0,INDEX5 TYPE I VALUE 0,
POS2 TYPE I VALUE 0,FLAG TYPE I VALUE 0.
DATA: ITBUS TYPE STANDARD TABLE OF BAPI_BUS2054_NEW,
WA_BUS LIKE LINE OF ITBUS, RET TYPE STANDARD TABLE OF BAPIRET2,
WA_RET LIKE LINE OF RET, ITBUS2 LIKE STANDARD TABLE OF BAPI_BUS2054_NEW,
WA_BUS2 LIKE LINE OF ITBUS, WA_BUS3 LIKE LINE OF ITBUS.
DATA: BAPIRET TYPE BAPIRETURN1,
PROJEX TYPE BAPI_PROJECT_DEFINITION_EX.
*& Include ZBAPICJ20NFILEUP
CALL FUNCTION 'UPLOAD'
EXPORTING
FILENAME = ' '
FILETYPE = 'DAT'
TABLES
DATA_TAB = ITMAIN .
*& Include ZBAPICJ20NLOGIC
SORT ITMAIN BY PROJECT_DEFINITION WBS_ELEMENT.
LOOP AT ITMAIN INTO WA_MAIN.
IF WA_DUPLI-PROJECT_DEFINITION <> WA_MAIN-PROJECT_DEFINITION.
WA_PRJDEF-PROJECT_DEFINITION = WA_MAIN-PROJECT_DEFINITION.
WA_PRJDEF-DESCRIPTION = WA_MAIN-DESCRIPTION.
WA_PRJDEF-PROJECT_PROFILE = WA_MAIN-PROJECT_PROFILE.
WA_PRJDEF-BUS_AREA = WA_MAIN-BUS_AREA.
WA_PRJDEFUP-PROJECT_DEFINITION = 'X'.
WA_PRJDEFUP-DESCRIPTION = 'X'.
WA_PRJDEFUP-PROJECT_PROFILE = 'X'.
WA_PRJDEFUP-BUS_AREA = 'X'.
WA_METPRJ-REFNUMBER = REFNO + 1 .
WA_METPRJ-OBJECTTYPE = 'ProjectDefinition'.
WA_METPRJ-METHOD = METTYPE.
WA_METPRJ-OBJECTKEY = WA_MAIN-PROJECT_DEFINITION.
APPEND WA_METPRJ TO ITMETPRJ.
WA_METPRJ-REFNUMBER = ''.
WA_METPRJ-OBJECTTYPE = ''.
WA_METPRJ-METHOD = 'Save'.
WA_METPRJ-OBJECTKEY = ''.
APPEND WA_METPRJ TO ITMETPRJ.
CALL FUNCTION 'BAPI_PROJECT_MAINTAIN'
EXPORTING
I_PROJECT_DEFINITION = WA_PRJDEF
I_PROJECT_DEFINITION_UPD = WA_PRJDEFUP
IMPORTING
RETURN = RETURN
TABLES
I_METHOD_PROJECT = ITMETPRJ
E_MESSAGE_TABLE = MSG.
IF SY-SUBRC = 0.
FLAG = 1.
ENDIF.
WA_DUPLI-PROJECT_DEFINITION = WA_MAIN-PROJECT_DEFINITION.
COMMIT WORK.
DELETE ITMETPRJ FROM 1 TO 2.
INCLUDE ZBAPIWBS_ALL.
ENDIF.
ENDLOOP.
*& Include ZBAPIWBS_ALL
LOOP AT ITMAIN INTO WA_MAIN WHERE PROJECT_DEFINITION = WA_DUPLI-PROJECT_DEFINITION.
APPEND WA_MAIN TO ITWBS.
ENDLOOP.
*Sort the table
LOOP AT ITWBS INTO WA_MAIN.
SPLIT1 = WA_MAIN-WBS_ELEMENT.
POS = 0.
LOOP AT ITWBS WHERE WBS_ELEMENT <> SPLIT1.
IF STRLEN( ITWBS-WBS_ELEMENT ) = STRLEN( SPLIT1 ).
IF POS = 0.
APPEND WA_MAIN TO ITMAIN2.
ENDIF.
APPEND ITWBS TO ITMAIN2.
DELETE ITWBS WHERE WBS_ELEMENT EQ ITWBS-WBS_ELEMENT.
POS = 1.
ELSE.
IF POS = 0.
APPEND WA_MAIN TO ITMAIN2.
DELETE ITWBS WHERE WBS_ELEMENT EQ WA_MAIN.
ENDIF.
POS = 1.
ENDIF.
ENDLOOP.
INDEX1 = INDEX1 + 1.
ENDLOOP.
*Define UP element
LOOP AT ITMAIN2 INTO WA_MAIN.
WA_BUS-WBS_ELEMENT = WA_MAIN-WBS_ELEMENT.
WA_BUS-DESCRIPTION = WA_MAIN-WBS_DESCRIPTION.
WA_BUS-WBS_UP = ''.
WA_BUS-WBS_LEFT = ''.
SPLIT1 = WA_MAIN-WBS_ELEMENT.
LOOP AT ITMAIN2 INTO WA_MAIN WHERE WBS_ELEMENT <> SPLIT1.
IF STRLEN( WA_MAIN-WBS_ELEMENT ) < STRLEN( SPLIT1 ) .
FIND WA_MAIN-WBS_ELEMENT IN SPLIT1.
IF SY-SUBRC = 0.
WA_BUS-WBS_UP = WA_MAIN-WBS_ELEMENT.
PREVWBS = WA_MAIN-WBS_ELEMENT.
ENDIF.
ENDIF.
ENDLOOP.
APPEND WA_BUS TO ITBUS.
INDEX2 = INDEX2 + 1.
ENDLOOP.
PREVWBS = ''.
LEFTWBS = ''.
Define LEFT ELEMENT.
LOOP AT ITMAIN2 INTO WA_MAIN.
POS = 0.
SPLIT1 = WA_MAIN-WBS_ELEMENT.
READ TABLE ITBUS INTO WA_BUS2 WITH KEY WBS_ELEMENT = WA_MAIN-WBS_ELEMENT.
WA_BUS-WBS_ELEMENT = SPLIT1.
WA_BUS-DESCRIPTION = WA_MAIN-WBS_DESCRIPTION.
WA_BUS-WBS_UP = WA_BUS2-WBS_UP.
OFF = SY-TABIX.
LOOP AT ITMAIN2 INTO WA_MAIN WHERE WBS_ELEMENT <> SPLIT1.
READ TABLE ITBUS INTO WA_BUS3 WITH KEY WBS_ELEMENT = WA_MAIN-WBS_ELEMENT.
IF STRLEN( WA_BUS2-WBS_ELEMENT ) = STRLEN( WA_BUS3-WBS_ELEMENT ) AND
WA_BUS2-WBS_UP = WA_BUS3-WBS_UP AND POS = 0.
IF STRLEN( LEFTWBS ) <> STRLEN( SPLIT1 ).
LEFTWBS = ''.
ENDIF.
IF STRLEN( LEFTWBS ) = STRLEN( SPLIT1 ).
FIND WA_BUS2-WBS_UP IN LEFTWBS.
IF SY-SUBRC <> 0.
LEFTWBS = ''.
ENDIF.
ENDIF.
WA_BUS-WBS_LEFT = LEFTWBS.
LEFTWBS = SPLIT1.
POS = 1.
MODIFY ITBUS INDEX OFF FROM WA_BUS.
ENDIF.
ENDLOOP.
ENDLOOP.
WA_BUS-WBS_ELEMENT = ''.
APPEND WA_BUS TO ITBUS.
Store WBS ELEMENTS.
LOOP AT ITBUS INTO WA_BUS.
SPLIT1 = WA_BUS-WBS_ELEMENT.
APPEND WA_BUS TO ITBUS2.
INDEX3 = 1.
POS = 0.
LOOP AT ITBUS INTO WA_BUS WHERE WBS_ELEMENT <> SPLIT1.
IF STRLEN( WA_BUS-WBS_ELEMENT ) <> STRLEN( SPLIT1 ) AND POS = 0.
POS = 1.
INDEX4 = INDEX3.
CALL FUNCTION 'BAPI_PS_INITIALIZATION' .
CALL FUNCTION 'BAPI_BUS2054_CREATE_MULTI'
EXPORTING
I_PROJECT_DEFINITION = WA_DUPLI-PROJECT_DEFINITION
TABLES
IT_WBS_ELEMENT = ITBUS2
ET_RETURN = RET .
CALL FUNCTION 'BAPI_PS_PRECOMMIT'
TABLES
ET_RETURN = RET.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'
IMPORTING
RETURN = WA_RET.
ENDIF.
APPEND WA_BUS TO ITBUS2.
INDEX3 = INDEX3 + 1.
ENDLOOP.
DELETE ITBUS2 FROM 1 TO INDEX3.
DELETE ITBUS FROM 1 TO INDEX4.
ENDLOOP.
DELETE ITWBS FROM 1 TO INDEX1.
CLEAR ITWBS.
DELETE ITMAIN2 FROM 1 TO INDEX2.
*At the end of all projects' processing
IF FLAG = 1.
CALL FUNCTION 'POPUP_FOR_INTERACTION'
EXPORTING
HEADLINE = 'PS Project & WBS Creation'
TEXT1 = 'All the Projects have been created.Please check......'
TICON = 'I'
BUTTON_1 = 'OK'.
ELSE.
CALL FUNCTION 'POPUP_FOR_INTERACTION'
EXPORTING
HEADLINE = 'Jeet Program'
TEXT1 = 'No Projects were created...'
TICON = 'I'
BUTTON_1 = 'CANCEL'
ENDIF. -
Template for O12* WBS long text
Is it possible to create a template for O12* WBS long text. I think SAPscripts can be used. If it can be used can anyone suggest me as how to go about doing it .
Thanks
Edited by: Alvaro Tejada Galindo on May 23, 2008 5:33 PMHello,
the way to find it out is that you set a breakpoint into the function module READ_TEXT ( via SE37) and then process a PSP-Element with a long text via CJ12 or CJ13.
The transaction will stop at the breakpoint, an you get the text-id/text-name/ text-object from the input parameters on the function module.
If i try, it says ID = 'LTXT', name = 'E'<PRPS-PSPNR>, object = 'PMS', but for a WBS text there may be other parameters.
If you need the logic in an own programm, you could use the function READ_TEXT instead of selecting texts via STXH/STXL.
Regards Wolfgang
Maybe you are looking for
-
PDF with comments crashing, using InDesign CS3
I'm using OS10.6 and switching back and forth between Acrobat Pro 9.3.4 and InDesign CS3 5.0.4. I have Firefox running too, as well as Bridge and Word. The PDF was originally made by me. I email it to my client and she adds comments using her Windo
-
Mav Contacts does not import csv file
Trying to import my Outlook exchange contacts to Mavericks Contacts. Exported from outlook to excel. Saved excel file to csv format. Tried to import csv file to Mavericks Contacts: Error message says the csv file is not compatible. Also imported
-
Hi How to find an image attached with the FI Invoice document. Any method/function module that specifies whether a document is attached with the FI document or not. If not the WF should not start or should prompt an error message. There is no event t
-
Eula has stopped working; put path but did not get and "accept" option now what?
I cannot get Adobe Reader 11.0.02 to work and get the message "Eula is not working" . I searched and performed the recommended path check ie. C:\ProgramFiles(x86)\Adobe\Reader11.0\Reader -- but got no option to "accept". Now what do I do?
-
CAC or smart card use with Oracle database and web server
I've been asked to smart card (CAC) enable our Oracle web server and database access. We currently use CAC to access many of our other applications. Where can I find the following information Oracle software required (and is it an additional cost) Ho