天天看点

偷懒的后果,记录一下吧

以下是纯顾问群~

QQ群 :SAP干货铺,  群号:775662808

申请时请提供 城市-模块-昵称,如:北京-ABAP-森林木。

所有群管理严格,严格禁止一切外来链接、招聘、广告等垃圾信息!

如果您觉得这篇干货文章有用,请帮忙转载、分享给更多人,谢谢~

最近两天写资产东西。写到资产报废接口。

然后搜了下BAPI : BAPI_ASSET_RETIREMENT_POST

然后呢,又网上搜了个demo看了下,很简单嘛,也没多想,就直接复制粘贴过来改吧改吧。

就像下面的:

SELECT SINGLE bukrs anln1 zugdt
     INTO ( lv_bukrs,lv_anln1,lv_zugdt )  FROM anla
     WHERE sernr = is_data-sernr AND deakt EQ '00000000'.

  ls_generalpostingdata-username    = sy-uname.
  ls_generalpostingdata-doc_date    = is_data-budat."凭证中的凭证日期
  ls_generalpostingdata-pstng_date  = is_data-budat."凭证中的过账日期
  ls_generalpostingdata-fis_period  = is_data-budat+4(2)."会计期间
  ls_generalpostingdata-trans_date  = is_data-budat. "换算日期
  ls_generalpostingdata-comp_code   = lv_bukrs. "公司代码
  ls_generalpostingdata-assetmaino  = lv_anln1. "主资产号
  ls_generalpostingdata-assetsubno  = '0000'.

  IF lv_zugdt(4) = sy-datum+0(4)."当年的用250
    ls_generalpostingdata-assettrtyp  = '250'.
  ELSE.
    ls_generalpostingdata-assettrtyp  = '200'."往年的用200
  ENDIF.
  
  ls_retirementdata-valuedate = is_data-budat."参考日期
  ls_retirementdata-perc_rate = is_data-perc_rate." 
"  IF is_data-perc_rate = '100'. .
"    ls_retirementdata-compl_ret = 'X'."标志: 记帐全部报废
" ENDIF.
 
  ls_furtherpostingdata-alloc_nmbr  = is_data-zuonr.
  ls_furtherpostingdata-header_txt = is_data-sgtxt.
  ls_furtherpostingdata-item_text = is_data-sgtxt.

  CALL FUNCTION 'BAPI_ASSET_RETIREMENT_POST'
    EXPORTING
      generalpostingdata = ls_generalpostingdata
      retirementdata     = ls_retirementdata
      furtherpostingdata = ls_furtherpostingdata
    IMPORTING
      documentreference  = ls_doc
      return             = ls_return.
      

简单的demo代码,然后测试报错。其实是警告,不是错误,然后看也没返回凭证号。

拿数据前台操作,就是个警告而已。

偷懒的后果,记录一下吧

然后我就上网搜了下

​​https://launchpad.support.sap.com/#/notes/2477910​​

偷懒的后果,记录一下吧
偷懒的后果,记录一下吧

然后我spro进去把这个勾取消了。

虽然不报错,但是感觉不对啊,首先是返回的凭证不对。号码段肯定不对。

另外,正常来说,警告而已,应该不影响生成凭证。

然后debug的时候 输入sy

看看系统返回变量都有啥。

偷懒的后果,记录一下吧

这个才对嘛,而ls_doc 里面凭证显然是不对的

偷懒的后果,记录一下吧

之后我又把配置改回去了。

但是用的sy-msgv2作为返回的凭证号?肯定不行啊。

然后我debug的时候保存参数,直接执行了BAPI。

擦~ 原来人家有return 表。

偷懒的后果,记录一下吧
偷懒的后果,记录一下吧