2010 Jul 22 2:47 PM
I am on a development project, and I am looking for a function module or BAPI or a class that returns the current budget for a given project. In other words, I'd like to find something that more-or-less replicates the functionality of CJ30 in code -- pass in a WBS, return a current budget amount. Even as I type this, I realize how crazy this sounds.
Does such a thing exist or am I going to have to write my own function module from scratch? I've searched our system with all the search strings I can think of but cannot find any BAPIs, function modules, or classes that do what I need.
ECC6
Netweaver 7.0
2014 Mar 20 3:38 PM
This was how I solved it. I made my own BAPI.
FUNCTION z_get_budget.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(Z_WBS) TYPE PRPS-POSID
*" EXPORTING
*" VALUE(Z_BUDGET) TYPE BPGE-WTGES
*" VALUE(Z_ERROR) TYPE I
*"----------------------------------------------------------------------
DATA: it_rpsco TYPE TABLE OF rpsco,
wa_rpsco TYPE rpsco,
my_pspnr TYPE fmdt_any,
my_objnr TYPE prps-objnr,
sum_budget type rpsco-wlp00.
DATA: my_wbs TYPE fmdt_any.
MOVE z_wbs TO my_wbs.
* Convert the WBS element name to an object number
CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'
EXPORTING
input = my_wbs
IMPORTING
output = my_objnr
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MOVE sy-subrc TO z_error.
ELSE.
* MOVE my_pspnr TO my_objnr.
CONCATENATE 'PR' my_objnr INTO my_objnr.
SELECT * FROM rpsco INTO TABLE it_rpsco WHERE objnr = my_objnr
AND wrttp = '41'.
clear sum_budget.
LOOP AT it_rpsco INTO wa_rpsco.
sum_budget = wa_rpsco-wlp00 + sum_budget.
* EXIT.
ENDLOOP.
MOVE sum_budget TO z_budget.
move 0 to z_error.
ENDIF.
ENDFUNCTION.
This was how I solved it. I made my own BAPI.
FUNCTION z_get_budget.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(Z_WBS) TYPE PRPS-POSID
*" EXPORTING
*" VALUE(Z_BUDGET) TYPE BPGE-WTGES
*" VALUE(Z_ERROR) TYPE I
*"----------------------------------------------------------------------
DATA: it_rpsco TYPE TABLE OF rpsco,
wa_rpsco TYPE rpsco,
my_pspnr TYPE fmdt_any,
my_objnr TYPE prps-objnr,
sum_budget type rpsco-wlp00.
DATA: my_wbs TYPE fmdt_any.
MOVE z_wbs TO my_wbs.
* Convert the WBS element name to an object number
CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'
EXPORTING
input = my_wbs
IMPORTING
output = my_objnr
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MOVE sy-subrc TO z_error.
ELSE.
* MOVE my_pspnr TO my_objnr.
CONCATENATE 'PR' my_objnr INTO my_objnr.
SELECT * FROM rpsco INTO TABLE it_rpsco WHERE objnr = my_objnr
AND wrttp = '41'.
clear sum_budget.
LOOP AT it_rpsco INTO wa_rpsco.
sum_budget = wa_rpsco-wlp00 + sum_budget.
* EXIT.
ENDLOOP.
MOVE sum_budget TO z_budget.
move 0 to z_error.
ENDIF.
ENDFUNCTION.
2014 Mar 20 3:38 PM
This was how I solved it. I made my own BAPI.
FUNCTION z_get_budget.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(Z_WBS) TYPE PRPS-POSID
*" EXPORTING
*" VALUE(Z_BUDGET) TYPE BPGE-WTGES
*" VALUE(Z_ERROR) TYPE I
*"----------------------------------------------------------------------
DATA: it_rpsco TYPE TABLE OF rpsco,
wa_rpsco TYPE rpsco,
my_pspnr TYPE fmdt_any,
my_objnr TYPE prps-objnr,
sum_budget type rpsco-wlp00.
DATA: my_wbs TYPE fmdt_any.
MOVE z_wbs TO my_wbs.
* Convert the WBS element name to an object number
CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'
EXPORTING
input = my_wbs
IMPORTING
output = my_objnr
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MOVE sy-subrc TO z_error.
ELSE.
* MOVE my_pspnr TO my_objnr.
CONCATENATE 'PR' my_objnr INTO my_objnr.
SELECT * FROM rpsco INTO TABLE it_rpsco WHERE objnr = my_objnr
AND wrttp = '41'.
clear sum_budget.
LOOP AT it_rpsco INTO wa_rpsco.
sum_budget = wa_rpsco-wlp00 + sum_budget.
* EXIT.
ENDLOOP.
MOVE sum_budget TO z_budget.
move 0 to z_error.
ENDIF.
ENDFUNCTION.
| User | Count |
|---|---|
| 3 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |