CO-BAPI-KSH1/KSH2-创建/修改成本中心组-K_GROUP_REMOTE_GENERATE

注意点:
ECC版本没有单独修改成本中心组的BAPI,当前使用的BAPI都是创建,只是该BAPI可以重复创建,覆盖之前的成本中心组
所以修改就是把原有的所有数据全部取出来,重新创建就会覆盖实现修改的目的

DATA:ls_return TYPE bapiret2, "
lv_language TYPE sy-langu, "
lt_sethier TYPE STANDARD TABLE OF sethier_co, "
ls_sethier TYPE sethier_co, "
lt_setval TYPE STANDARD TABLE OF setval_co, "
ls_setval TYPE setval_co, "
lv_top_node_only TYPE sy-datar, " SPACE
lv_tolerate_ambiguity TYPE sy-datar. " SPACE

CLEAR ls_setval.
REFRESH lt_setval.
ls_setval-valfrom = ps_data-kostl.
ls_setval-valto = ps_data-kostl.
APPEND ls_setval TO lt_setval.

SELECT
*
INTO TABLE @DATA(lt_setleaf)
FROM setleaf
WHERE setname = @ps_data-telfx.
IF sy-subrc = 0.
LOOP AT lt_setleaf INTO DATA(ls_setleaf).
CLEAR ls_setval.
ls_setval-valfrom = ls_setleaf-valfrom.
ls_setval-valto = ls_setleaf-valto.
APPEND ls_setval TO lt_setval.
ENDLOOP.
ENDIF.

SORT lt_setval .
DELETE ADJACENT DUPLICATES FROM lt_setval COMPARING ALL FIELDS.

lv_language = ps_setheadert-langu.

CLEAR ls_sethier.
REFRESH lt_sethier.
ls_sethier-setclass = ps_setheadert-setclass."组类型
ls_sethier-co_area = ps_data-kokrs."控制范围
ls_sethier-chrt_accts = ‘YD00’."帐目表
ls_sethier-groupname = ps_data-telfx."组名称
ls_sethier-hierlevel = ‘0’."项目的层次
ls_sethier-valcount = lines( lt_setval )."计数器:价值表
ls_sethier-descript = ps_setheadert-descript."组的简要说明
APPEND ls_sethier TO lt_sethier.

CALL FUNCTION ‘K_GROUP_REMOTE_GENERATE’ "Create or change CO hierarchy
EXPORTING
language = lv_language
top_node_only = lv_top_node_only
tolerate_ambiguity = lv_tolerate_ambiguity
IMPORTING
return = ls_return
TABLES
it_sethier = lt_sethier
it_setval = lt_setval
. " K_GROUP_REMOTE_GENERATE
IF sy-subrc = 0.
COMMIT WORK AND WAIT.

ELSE.
ps_return-message = sy-msgv1 && sy-msgv2 && sy-msgv3 && sy-msgv4.
ps_return-status = ‘E’.
ROLLBACK WORK.

ENDIF.

SELECT SINGLE
*
INTO @DATA(lss_setleaf)
FROM setleaf
WHERE setclass = @ps_setheadert-setclass
AND subclass = ‘YD00’
AND setname = @ps_data-telfx
AND valfrom = @ps_data-kostl.
IF sy-subrc <> 0.
ps_return-message = ‘成本中心组更新失败’.
ps_return-status = ‘E’.
ENDIF.

  • 17
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

放弃幻想_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值