事务码ABAVN-资产卡片报废-BAPI_ASSET_RETIREMENT_POST

注意点:
1.
ls_retirementdata-compl_ret = ‘X’."标志: 记帐全部报废
有完全报废标识的情况,
报废金额ls_retirementdata-amount = iv_anbtr
报废百分比ls_retirementdata-perc_rate = iv_prozs
报废数量ls_retirementdata-quantity = iv_menge
不可有值否则报错:“不允许使用此组合表目”
金额,百分比,数量必输切只能输一个

2.
有报废金额金额时报废金额币别必输
有报废数量时报废单位必输

代码如下
FUNCTION zfm_rfc_anln1_scrap.
*“----------------------------------------------------------------------
"“本地接口:
*” IMPORTING
*” VALUE(IV_BUKRS) TYPE BUKRS OPTIONAL
*" VALUE(IV_ANLN1) TYPE ANLN1 OPTIONAL
*" VALUE(IV_BLDAT) TYPE BLDAT DEFAULT SY-DATUM
*" VALUE(IV_BUDAT) TYPE BUDAT DEFAULT SY-DATUM
*" VALUE(IV_BZDAT) TYPE BZDAT OPTIONAL
*" VALUE(IV_ANBTR) TYPE ANBTR OPTIONAL
*" VALUE(IV_PROZS) TYPE PROZS OPTIONAL
*" VALUE(IV_MENGE) TYPE MENGE_D OPTIONAL
*" EXPORTING
*" VALUE(EV_STATUS) TYPE CHAR1
*" VALUE(EV_MESSAGE) TYPE CHAR100
*" VALUE(EV_XBLNR) TYPE XBLNR
*"----------------------------------------------------------------------
*(修改日志)--------------------------------------------------------
*

  • 日志号 修改人 修改时间 修改说明 传输号码

  • 001

DATA: ls_generalpostingdata TYPE bapifapo_gen_info,
ls_retirementdata TYPE bapifapo_ret,
ls_doc TYPE bapifapo_doc_ref,
ls_return TYPE bapiret2,
ls_furtherpostingdata TYPE bapifapo_add_info.

IF iv_bukrs IS INITIAL.
ev_status = ‘E’.
ev_message = ‘公司代码为空’.
ENDIF.

IF iv_anln1 IS INITIAL.
ev_status = ‘E’.
IF ev_message IS INITIAL.
ev_message = ‘资产编码为空’.
ELSE.
ev_message = ev_message && ‘/’ && ‘资产编码为空’.
ENDIF.
ENDIF.

IF iv_bzdat IS INITIAL.
ev_status = ‘E’.
IF ev_message IS INITIAL.
ev_message = ‘资产价值日期为空’.
ELSE.
ev_message = ev_message && ‘/’ && ‘资产价值日期为空’.
ENDIF.
ENDIF.

IF iv_anbtr IS NOT INITIAL .
DATA(lv_add) = 1.
ENDIF.

"记账金额,百分比,数量必输切只能输一个检查
IF iv_prozs IS NOT INITIAL .
lv_add = lv_add + 1.
ENDIF.

IF iv_menge IS NOT INITIAL .
lv_add = lv_add + 1.
ENDIF.

IF lv_add <> 1 .
ev_status = ‘E’.
IF ev_message IS INITIAL.
ev_message = ‘记账金额,百分比,数量必输切只能输一个’.
ELSE.
ev_message = ev_message && ‘/’ && ‘记账金额,百分比,数量必输切只能输一个’.
ENDIF.

ENDIF.

IF ev_status <> ‘E’.

ls_generalpostingdata-username    = sy-uname.
ls_generalpostingdata-doc_type    = 'AA'.
ls_generalpostingdata-doc_date    = iv_bldat."凭证中的凭证日期
ls_generalpostingdata-pstng_date  = iv_bldat."凭证中的过账日期
ls_generalpostingdata-fis_period  = iv_bldat+4(2)."会计期间
  • ls_generalpostingdata-trans_date = iv_bzdat. "换算日期
    ls_generalpostingdata-comp_code = iv_bukrs. "公司代码
    ls_generalpostingdata-assetmaino = iv_anln1. "主资产号
    ls_generalpostingdata-assetsubno = ‘0000’.
    ls_generalpostingdata-assettrtyp = ‘’.
SELECT SINGLE
  aktiv ,
  meins
  FROM anla
  INTO ( @DATA(lv_aktiv) ,@DATA(lv_meins) )
  WHERE anln1 = @iv_anln1
    AND anln2 = '0000'.
IF sy-subrc = 0.
  IF lv_aktiv+0(4) = sy-datum+0(4)."当年的用250
    ls_generalpostingdata-assettrtyp  = '250'.
  ELSE.
    ls_generalpostingdata-assettrtyp  = '200'."往年的用200
  ENDIF.
ENDIF.

IF iv_anbtr <> 0.
  ls_retirementdata-amount  = iv_anbtr. "记账金额
  ls_retirementdata-currency   = 'CNY'. "记账金额
ENDIF.

IF iv_prozs <> 0.
  ls_retirementdata-perc_rate  = iv_prozs. "百分比
ENDIF.

IF iv_menge <> 0.
  ls_retirementdata-quantity   = iv_menge. "数量
  ls_retirementdata-base_uom  = lv_meins."单位
ENDIF.

ls_retirementdata-valuedate  = iv_bzdat."参考日期
  • ls_retirementdata-compl_ret = ‘X’."标志: 记帐全部报废
ls_furtherpostingdata-header_txt = iv_anln1 && '资产报废'."将文本写入报废会计凭证的抬头文本
ls_furtherpostingdata-item_text = iv_anln1 && '资产报废'."将文本写入报废会计凭证的抬头文本

CALL FUNCTION 'BAPI_ASSET_RETIREMENT_POST'
  EXPORTING
    generalpostingdata = ls_generalpostingdata
    retirementdata     = ls_retirementdata
    furtherpostingdata = ls_furtherpostingdata
  IMPORTING
    documentreference  = ls_doc
    return             = ls_return.
IF ls_return-type = 'S'.
  CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
    EXPORTING
      wait = 'X'.
  IF ls_return-number = '374' AND
  ls_return-id     = 'AA'.

    ev_status = 'S'.
    ev_message = '报废成功'.
    ev_xblnr = ls_return-message_v2.
  ENDIF.
ELSE.
  CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
  ev_status = 'E'.
  ev_message = ls_return-message.
ENDIF.

ENDIF.
ENDFUNCTION.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

放弃幻想_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值