ABAP使用BDC导入项目预算

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP使用BDC导入项目预算相关的知识,希望对你有一定的参考价值。

用BDC导入数据时,以导入项目预算(事务代码 CJ30)为例,如果文件中的数据为:T-20099 T-20099 9000  T-20099.1 2200 T-20099.2.1 500 T-20099.2.2 1000那么程序可以逐行导入T-20099 项目下的T-2009到T-20099.2.2的WBS元素下的预算。但如果文件的格式为:项目                 WBS                 预算  T-20099      T-20099              9000   T-20099      T-20099.2           2000 T-20099      T-20099.2.1        500 T-20099      T-20099.2.2        1000 T-20099      T-20099.2.3        500那么程序就会重复导入第一个WBS元素的预算,这个问题该如何解决  

参考技术A 你可以用这个函数分配预算KBPP_EXTERN_UPDATE_CO,就不会出会这个问题.记得用这个函数时,要如果是A的WBS元素减预算增加到B的WBS元素时,要先运行减预算的,再运行增加的.

GT_BPAK-E_OBJNR = TAB_G_OUTPR-OBJNR.
GT_BPAK-E_WRTTP = '41'.
GT_BPAK-E_VORGA = 'KBUD'.
GT_BPAK-WERT = G_UPDATEBUDG_CHANGE.
GT_BPAK-TWAER = 'CNY'.
APPEND GT_BPAK.
REFRESH:GT_RETURN.
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 = GT_BPAK[]
IT_RETURN = GT_RETURN[]
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.
参考技术B 删除项目和WBS元素相同的行项目,或者你需要合并项目和WBS元素相同的预算值,再删除相同项!

以上是关于ABAP使用BDC导入项目预算的主要内容,如果未能解决你的问题,请参考以下文章

abap 批量导入程序能不能安排后台作业?导入模板为excel

BDC程序步骤

abap开发具体项目经验

ABAP系列SAP ABAP BDC_OKCODE 解释

SAP ABAP布置批处理会话-sm35

◆◆0BDC-Call transaction