BAPI:KBPP_EXTERN_UPDATE_CO, TCODE:CJ30/CJ40
要实现CJ30更新或者追加项目(WBS)的预算,可以使用如下函数: KBPP_EXTERN_UPDATE_CO
我现在要实现的是修改年度预算和增加总体的预算,如下步骤可以实现需要的功能:
1、 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.
2、 LOOP AT gt_itab.
CLEAR l_wtjhr.
DATA: l_pspnr LIKE prps-pspnr.
CALL FUNCTION 'CONVERSION_EXIT_ABPSP_INPUT'
EXPORTING
input = gt_itab-posid
IMPORTING
output = l_pspnr
EXCEPTIONS
not_found = 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.
SELECT SINGLE objnr INTO lt_bpak-e_objnr FROM prps WHERE pspnr = l_pspnr.
IF sy-subrc EQ 0.
lt_bpak-e_vorga = 'KBUD'.
lt_bpak-twaer = 'CNY'.
lt_bpak-wert = gt_itab-wtjhr.
lt_bpak-e_vorga = 'KBUD'.
SELECT wtjhr INTO l_wtjhr FROM bpja
WHERE objnr = lt_bpak-e_objnr
AND wrttp = '41'
AND vorga = 'KBUD'
AND twaer = 'CNY'
AND gjahr NE p_gjahr.
lt_bpak-wert = lt_bpak-wert + l_wtjhr.
CLEAR l_wtjhr.
ENDSELECT.
APPEND lt_bpak.
MOVE-CORRESPONDING lt_bpak TO lt_bpak_n.
lt_bpak_n-e_gjahr = p_gjahr.
lt_bpak_n-wert = gt_itab-wtjhr.
APPEND lt_bpak_n.
ENDIF.
CLEAR: lt_bpak,lt_bpak_n.
ENDLOOP.
**修改总体预算(一定要先修改总体的,不然增强年度预算的时候会检查总体预算不够,就会报错
CALL FUNCTION 'KBPP_EXTERN_UPDATE_CO'
EXPORTING
i_budget_activity = 'KBUD'
* i_budget_activ_sup_ret = 'X'
* I_COMMIT_DATA = 'X'
i_delta_amounts = ''
i_rollup_data = ''
* 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.
**修改年度预算
REFRESH lt_retturn.
CALL FUNCTION 'KBPP_EXTERN_UPDATE_CO'
EXPORTING
i_budget_activity = 'KBUD'
* i_budget_activ_sup_ret = 'X'
* I_COMMIT_DATA = 'X'
i_delta_amounts = ''
i_rollup_data = ''
* I_CHECK_PLAN_DATA = 'X'
i_application = 'P'
i_commit_all = 'X'
* IMPORTING
* E_ERRORS_FOUND =
TABLES
it_bpak = lt_bpak_n[]
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.
注意点:
1、一定要先修改顶层WBS,再一层一层往下修改,不然的话,检查上层预算不够,就会报错
2、i_delta_amounts这个参数等于'X'的话,就是追加,等于'',就是修改
3、i_rollup_data这个参数等于'X'的话,就会自动往上层的WBS上加预算,等于'',就不会自动加
4、另外个人觉得这个函数写的有一点点问题,函数里面有个 SORT it_bpak BY e_ges DESCENDING .
但是,当我们是修改总体预算的时候,E_GES都是'X',那么排序的时候就会乱掉,有可能会把底层的WBS放到上面,上层的WBS放到下面,这个时候再修改预算的时候,尤其是一个新的wbs,就会报错说,下层WBS预算大于上层WBS预算,我找了很久参数,也没实现这个问题,于是自己把标准程序改了一下,变成了 SORT it_bpak BY e_ges DESCENDING E_OBJNR ASCENDING.
BAPI:KBPP_EXTERN_UPDATE_CO, TCODE:CJ30/CJ40相关推荐
- BAPI:KBPP_EXTERN_UPDATE_CO, TCODE:CJ30/CJ40 第二部分
示例,转载至以下地址: http://blog.csdn.net/yf_sap/archive/2009/07/29/4390435.aspx 要实现CJ30更新或者追加项目(WBS)的预算,可以使用 ...
- SAP ABAP 业务对象 BUS6041 AssetSubCostRev 后续资产成本和收入 BAPI 清单和相关 TCODE
SAP ABAP 业务对象 BUS6041 AssetSubCostRev 后续资产成本和收入 BAPI 清单和相关 TCODE 简介: SAP ABAP 业务对象 BUS6041 AssetSubC ...
- SAP ABAP 业务对象 BUS6038 AssetDownPayment 资产:预付款 BAPI 清单和相关 TCODE
SAP ABAP 业务对象 BUS6038 AssetDownPayment 资产:预付款 BAPI 清单和相关 TCODE 简介: SAP ABAP 业务对象 BUS6038 AssetDownPa ...
- SAP ABAP 业务对象 BUS2044 CostEstimate 成本估价 BAPI 清单和相关 TCODE
SAP ABAP 业务对象 BUS2044 CostEstimate 成本估价 BAPI 清单和相关 TCODE 简介: SAP ABAP 业务对象 BUS2044 CostEstimate 成本估价 ...
- SAP ABAP 业务对象 BUS1112 CostCenterGroup 成本中心组 BAPI 清单和相关 TCODE
SAP ABAP 业务对象 BUS1112 CostCenterGroup 成本中心组 BAPI 清单和相关 TCODE 简介: SAP ABAP 业务对象 BUS1112 CostCenterGro ...
- SAP ABAP 业务对象 BUS6021 AcctngSalesOrder 会计销售订单 BAPI 清单和相关 TCODE
SAP ABAP 业务对象 BUS6021 AcctngSalesOrder 会计销售订单 BAPI 清单和相关 TCODE 简介: SAP ABAP 业务对象 BUS6021 AcctngSales ...
- SAP ABAP 业务对象 BUS6022 AcctngSalesQuotation 会计销售配额 BAPI 清单和相关 TCODE
SAP ABAP 业务对象 BUS6022 AcctngSalesQuotation 会计销售配额 BAPI 清单和相关 TCODE 简介: SAP ABAP 业务对象 BUS6022 AcctngS ...
- SAP ABAP 业务对象 BUS6043 AssetValueAdjust 资产折旧 BAPI 清单和相关 TCODE
SAP ABAP 业务对象 BUS6043 AssetValueAdjust 资产折旧 BAPI 清单和相关 TCODE 简介: SAP ABAP 业务对象 BUS6043 AssetValueAdj ...
- SAP ABAP 业务对象 BUS2080A ServiceNotifBAPIs BAPIs 服务通知 BAPI 清单和相关 TCODE
SAP ABAP 业务对象 BUS2080A ServiceNotifBAPIs BAPIs 服务通知 BAPI 清单和相关 TCODE 简介: SAP ABAP 业务对象 BUS2080A Serv ...
最新文章
- 【Android】Source Insight 基本用法 ( 导入 Android 源码 | 设置字体 | 显示行号 | 搜索功能 | 快捷键设置 )
- HTTP协议常用标准状态码含义
- Python调用MongoDB使用心得
- Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) E. DNA Evolution 树状数组
- HDU-6290 奢侈的旅行 2018女赛 Dijkstra堆优化
- boost::fusion::make_fused_procedure用法的测试程序
- python写接口函数_python接口自动化测试二十:函数写接口测试
- MySQL read-c_技术分享 | MySQL C API 参数 MYSQL_OPT_READ_TIMEOUT 的一些行为分析
- SugarNMS分布式网络运维部署攻略
- JS实现表单多文件上传样式美化支持选中文件后删除相关项
- ft2232驱动安装方法_教你win10系统显卡驱动安装失败的解决方法「系统天地」
- [转载] java向匿名内部类传递参数
- pytorch---模型加载与保存(6)通过设备保存/加载模型
- php连接mysql代码+类_php连接mysql操作类
- regester正则用法_Regester下载|Regester(正则表达式测试器) 官方版v2.0.1 下载_当游网...
- 在iOS中高效的加载图片
- 下载官方 Win11、Win10 镜像 ISO 的方法
- 小鸟云服务器登录密码忘记了怎么办?
- Balsamiq-Mockups-Introduction.html
- 人力资源管理指南——七个方式来改善团队留存率