ABAP 创建预算FMBB BAPI:BAPI_0050_CREATE使用

1.预算处理类型ENTR类型的调用方式

DATA: lv_language       TYPE bapi_0050_fields-language,
      lw_header_data    TYPE bapi_0050_header,
      lv_bued_docln     TYPE numc06,
      lt_item_data      TYPE TABLE OF bapi_0050_item,
      lw_item_data      TYPE bapi_0050_item,
      lt_item_data1     TYPE TABLE OF bapi_0050_item,
      lw_item_data1     TYPE bapi_0050_item,
      lt_period_data    TYPE TABLE OF bapi_0050_period,
      lw_period_data    TYPE bapi_0050_period,
      lt_period_data1   TYPE TABLE OF bapi_0050_period,
      lw_period_data1   TYPE bapi_0050_period,
      lt_return         TYPE TABLE OF bapiret2,
      lv_documentnumber TYPE bapi_0050_fields-document,
      lv_message        TYPE bapi_msg,
      lv_str            TYPE string.

DATA: gt_mt001 TYPE TABLE OF zfmt001,
      gw_mt001 TYPE zfmt001.

lw_header_data-fm_area   = '1000' .   "财务管理范围
lw_header_data-version   = '000' .    "版本
lw_header_data-docdate   = sy-datum . "凭证日期
lw_header_data-doctype   = 'Z001' .   "凭证类型
lw_header_data-docstate  = '1' .
lw_header_data-process   = 'ENTR' .   "预算过程

ADD 1 TO lv_bued_docln .
lw_item_data-item_num    = lv_bued_docln .     "凭证行
lw_item_data-fisc_year   = '2022' .     "会计年度
lw_item_data-budcat      = '9F' .       "预算类别
lw_item_data-budtype     = 'BDR1' .     "预算类型
lw_item_data-funds_ctr   = 'F010201' .  "资金中心
lw_item_data-cmmt_item   = 'F0010002'.  "承诺项目
lw_item_data-trans_curr  = 'CNY' .      "交易货币
lw_item_data-valtype     = 'B1' .       "BCS值类型
APPEND lw_item_data TO lt_item_data .

lw_period_data-item_num         = lv_bued_docln .
lw_period_data-budgeting_period = '006'.
lw_period_data-period_amount    = '1' .
APPEND lw_period_data TO lt_period_data .

lv_language = sy-langu .
CALL FUNCTION 'BAPI_0050_CREATE'
  EXPORTING
    language           = lv_language
    header_data        = lw_header_data
    testrun            = ''
  IMPORTING
    documentnumber     = lv_documentnumber
  TABLES
    item_data          = lt_item_data    "接收方行项目
    sender_item_data   = lt_item_data1   "发送方行项目
    period_data        = lt_period_data  "接收方行项目期间
    sender_period_data = lt_period_data1 "发送方行项目期间
    return             = lt_return.

LOOP AT lt_return INTO DATA(lw_return) WHERE type = 'E' OR type = 'A' .
  lv_message = lv_message && lw_return-message .
ENDLOOP .

IF sy-subrc NE 0.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
  lv_str = lv_documentnumber && '预算创建成功' .
ELSE .
  lv_str = '预算创建失败:' && lv_message .
ENDIF.

创建结果
在这里插入图片描述
2.预算处理类型TRAN类型的调用方式

DATA: lv_language       TYPE bapi_0050_fields-language,
      lw_header_data    TYPE bapi_0050_header,
      lv_bued_docln     TYPE numc06,
      lt_item_data      TYPE TABLE OF bapi_0050_item,
      lw_item_data      TYPE bapi_0050_item,
      lt_item_data1     TYPE TABLE OF bapi_0050_item,
      lw_item_data1     TYPE bapi_0050_item,
      lt_period_data    TYPE TABLE OF bapi_0050_period,
      lw_period_data    TYPE bapi_0050_period,
      lt_period_data1   TYPE TABLE OF bapi_0050_period,
      lw_period_data1   TYPE bapi_0050_period,
      lt_return         TYPE TABLE OF bapiret2,
      lv_documentnumber TYPE bapi_0050_fields-document,
      lv_message        TYPE bapi_msg,
      lv_str            TYPE string.

DATA: gt_mt001 TYPE TABLE OF zfmt001,
      gw_mt001 TYPE zfmt001.


lw_header_data-fm_area   = '1000' .   "财务管理范围
lw_header_data-version   = '000' .    "版本
lw_header_data-docdate   = sy-datum . "凭证日期
lw_header_data-doctype   = 'Z001' .   "凭证类型
lw_header_data-docstate  = '1' .
lw_header_data-process   = 'TRAN' .   "预算过程


"发送方(-)
ADD 1 TO lv_bued_docln .
lw_item_data1-item_num    = lv_bued_docln .     "凭证行
lw_item_data1-fisc_year   = '2022' .     "会计年度
lw_item_data1-budcat      = '9F' .       "预算类别
lw_item_data1-budtype     = 'BDR1' .     "预算类型
lw_item_data1-funds_ctr   = 'F010101' .  "资金中心
lw_item_data1-cmmt_item   = 'F0010001'.  "承诺项目
lw_item_data1-trans_curr  = 'CNY' .      "交易货币
lw_item_data1-valtype     = 'B1' .       "BCS值类型
lw_item_data1-item_text   = '发送方(-)' .       "项目文本
APPEND lw_item_data1 TO lt_item_data1 .
lw_period_data1-item_num         = lv_bued_docln .
lw_period_data1-budgeting_period = '006'.
lw_period_data1-period_amount    = '1' .
APPEND lw_period_data1 TO lt_period_data1.

"接受方(+)
ADD 1 TO lv_bued_docln .
lw_item_data-item_num    = lv_bued_docln .     "凭证行
lw_item_data-fisc_year   = '2022' .     "会计年度
lw_item_data-budcat      = '9F' .       "预算类别
lw_item_data-budtype     = 'BDR1' .     "预算类型
lw_item_data-funds_ctr   = 'F010201' .  "资金中心
lw_item_data-cmmt_item   = 'F0010002'.  "承诺项目
lw_item_data-trans_curr  = 'CNY' .      "交易货币
lw_item_data-valtype     = 'B1' .       "BCS值类型
lw_item_data-item_text   = '接受方(+)' .       "项目文本
APPEND lw_item_data TO lt_item_data .
lw_period_data-item_num         = lv_bued_docln .
lw_period_data-budgeting_period = '006'.
lw_period_data-period_amount    = '1' .
APPEND lw_period_data TO lt_period_data .


lv_language = sy-langu .
CALL FUNCTION 'BAPI_0050_CREATE'
  EXPORTING
    language           = lv_language
    header_data        = lw_header_data
    testrun            = ''
  IMPORTING
    documentnumber     = lv_documentnumber
  TABLES
    item_data          = lt_item_data    "接收方行项目
    sender_item_data   = lt_item_data1   "发送方行项目
    period_data        = lt_period_data  "接收方行项目期间
    sender_period_data = lt_period_data1 "发送方行项目期间
    return             = lt_return.

LOOP AT lt_return INTO DATA(lw_return) WHERE type = 'E' OR type = 'A' .
  lv_message = lv_message && lw_return-message .
ENDLOOP .

IF sy-subrc NE 0.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
  lv_str = lv_documentnumber && '预算创建成功' .
ELSE .
  lv_str = '预算创建失败:' && lv_message .
ENDIF.

创建结果
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值