创建成本中心和修改成本中心

T-CODE:KS01

输入控制范围

输入有效期起始日期

填入必填项

点击保存。

修改成本中心, T-CODE:KS02

 

BAPI_COSTCENTER_CREATEMULTIPLE:创建成本中心

BAPI_COSTCENTER_CHANGEMULTIPLE:修改成本中心

 

DATALT_COSTCENTERLIST TYPE TABLE OF  BAPI0012_CCINPUTLIST,
        LS_COSTCENTERLIST TYPE BAPI0012_CCINPUTLIST.
  DATALS_LANGUAGE TYPE BAPI0015_10.
  DATALS_OUT LIKE LINE OF ET_OUT.
  DATALV_FLAG TYPE C.
****判断成本中心是否存在
  SELECT COUNT(*FROM CSKS WHERE KOKRS '1000' AND KOSTL I_KOSTL AND DATAB I_DATAB.
  IF SY-SUBRC <> 0.
**---------当成本中心不存在时,创建成本中心
    LS_LANGUAGE-LANGU SY-LANGU.               "语言代码
    LS_COSTCENTERLIST-COSTCENTER I_KOSTL.     "成本中心
    LS_COSTCENTERLIST-VALID_FROM I_DATAB.  "有效期起始日期
    LS_COSTCENTERLIST-VALID_TO '99991231'.    "有效期截至日期
    LS_COSTCENTERLIST-PERSON_IN_CHARGE 'YLB'"负责人
    LS_COSTCENTERLIST-COSTCENTER_TYPE 'L'.    "成本中心类型
    LS_COSTCENTERLIST-COSTCTR_HIER_GRP '1000'."层次结构范围
    LS_COSTCENTERLIST-COMP_CODE '1000'.       "公司代码
    LS_COSTCENTERLIST-CURRENCY 'CNY'.         "货币
    LS_COSTCENTERLIST-NAME I_KTEXT.           "描述
    APPEND LS_COSTCENTERLIST TO LT_COSTCENTERLIST.

    CALL FUNCTION 'BAPI_COSTCENTER_CREATEMULTIPLE'
      EXPORTING
        CONTROLLINGAREA '1000'                "控制范围
*       TESTRUN         = ' '
*       MASTER_DATA_INACTIVE       = ' '
        LANGUAGE        LS_LANGUAGE
      
TABLES
        COSTCENTERLIST  LT_COSTCENTERLIST
        
RETURN          ET_OUT
*       EXTENSIONIN     =
*       EXTENSIONOUT    =
      .
    CLEAR LV_FLAG.
    LOOP AT ET_OUT INTO LS_OUT .
      IF LS_OUT-TYPE 'E' OR LS_OUT-TYPE 'A'.
        LV_FLAG 'X'.
      ENDIF.
      E_MESS LS_OUT-MESSAGE && ';' && E_MESS .
      CLEAR LS_OUT.
    ENDLOOP.

  ELSE.
**---------当成本中心存在时,修改成本中心
    LS_LANGUAGE-LANGU SY-LANGU.                                   "语言代码
    LS_COSTCENTERLIST-COSTCENTER I_KOSTL.                         "成本中心
    LS_COSTCENTERLIST-VALID_FROM I_DATAB.                         "有效期起始日期
    LS_COSTCENTERLIST-VALID_TO '99991231'.                        "有效期截至日期
    LS_COSTCENTERLIST-PERSON_IN_CHARGE 'YLB'.                     "负责人
    LS_COSTCENTERLIST-COSTCENTER_TYPE 'L'.                        "成本中心类型
    LS_COSTCENTERLIST-COSTCTR_HIER_GRP '1000'.                    "层次结构范围
    LS_COSTCENTERLIST-COMP_CODE '1000'.                           "公司代码
    LS_COSTCENTERLIST-CURRENCY 'CNY'.                             "货币
    LS_COSTCENTERLIST-NAME I_KTEXT.                               "描述
    LS_COSTCENTERLIST-LOCK_IND_ACTUAL_PRIMARY_COSTS I_BKZKP.      "实际初级成本的冻结标志
    APPEND LS_COSTCENTERLIST TO LT_COSTCENTERLIST.

    CALL FUNCTION 'BAPI_COSTCENTER_CHANGEMULTIPLE'
      EXPORTING
        CONTROLLINGAREA '1000'                "控制范围
*       TESTRUN         = ' '
*       MASTER_DATA_INACTIVE       = ' '
        LANGUAGE        LS_LANGUAGE
*       RESET_FILLED_FIELDS        = ' '
      TABLES
        COSTCENTERLIST  LT_COSTCENTERLIST
        
RETURN          ET_OUT
*       EXTENSIONIN     =
*       EXTENSIONOUT    =
      .
    "BAPI_COSTCENTER_CHANGEMULTIPLE:当执行成功时不会返回消息
    CLEAR LV_FLAG.
    LOOP AT ET_OUT INTO LS_OUT WHERE TYPE 'E' OR TYPE 'A'.
      LV_FLAG 'X'.
      E_MESS LS_OUT-MESSAGE && ' ' && E_MESS .
      CLEAR LS_OUT.

    ENDLOOP.
    IF LV_FLAG <> 'X'.
      LS_OUT-TYPE 'S'.
      LS_OUT-MESSAGE '修改成功'.
      APPEND LS_OUT TO ET_OUT.

      E_MESS '修改成功'.
    ENDIF.
  ENDIF.
  IF LV_FLAG 'X'.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    E_STATUS 'N'.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
      EXPORTING
        WAIT 'X'.

    E_STATUS 'Y'.
  ENDIF.

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值