偷懒的后果,记录一下吧
原创
©著作权归作者所有:来自51CTO博客作者sapLiuMeng的原创作品,请联系作者获取转载授权,否则将追究法律责任
以下是纯顾问群~
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 表。
好吧,怪谁呢,怪我懒咯~