REPORT ZMAT_TEST_ALV.
tables: prps.
DATA: lt_bpak TYPE STANDARD TABLE OF bpak WITH HEADER LINE.
DATA:lt_bpak_n TYPE STANDARD TABLE OF bpak WITH HEADER LINE.
DATA: lt_retturn TYPE STANDARD TABLE OF bapiret2 WITH HEADER LINE.
DATA: l_wtjhr like bpak-wert.
*select-options l_pspnr for prps-pspnr.
PARAMETER: l_pspnr like prps-pspnr.
PARAMETER: l_bpwert like bpak-wert.
PARAMETER: P_vorga LIKE BPIN-VORGA.
start-of-selection.
clear: l_wtjhr.
SELECT SINGLE objnr INTO lt_bpak-e_objnr FROM prps WHERE pspnr = l_pspnr.
IF sy-subrc EQ 0.
lt_bpak-e_vorga = 'KBFR'.
lt_bpak-twaer = 'RMB'.
lt_bpak-wert = l_bpwert.
lt_bpak-S_GJAHR = '2010'. " add year to change data belong this year
lt_bpak-E_GJAHR = '2010'. "if not add ; change total budget
APPEND lt_bpak.
MOVE-CORRESPONDING lt_bpak TO lt_bpak_n.
lt_bpak_n-wert = l_bpwert.
APPEND lt_bpak_n.
ENDIF.
CLEAR: lt_bpak,lt_bpak_n.
*i_delta_amounts这个参数等于'X'的话,就是追加,等于'',就是修改
*i_rollup_data这个参数等于'X'的话,就会自动往上层的WBS上加预算,等于'',就不会自动加
*一定要先修改顶层WBS,再一层一层往下修改,不然的话,检查上层预算不够,就会报错
CALL FUNCTION 'KBPP_EXTERN_UPDATE_CO'
EXPORTING
* i_budget_activity = 'KBUD'
i_budget_activity = P_vorga "cj30 using KBUD; cj32 using KBFR
* i_budget_activ_sup_ret = 'X'
I_COMMIT_DATA = 'X'
i_delta_amounts = 'X'
i_rollup_data = 'X'
* I_CHECK_PLAN_DATA = 'X'
i_application = 'P'
* i_commit_all = 'X'
* IMPORTING
* E_ERRORS_FOUND =
TABLES
it_bpak = lt_bpak[]
it_return = lt_retturn[]
EXCEPTIONS
no_update = 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.