BAPI:BAPI_FIXEDASSET_CREATE1
DATA:ls_key LIKE bapi1022_key,
ls_gendata LIKE bapi1022_feglg001,
ls_gendatax LIKE bapi1022_feglg001x,
ls_post TYPE bapi1022_feglg002,
ls_postx TYPE bapi1022_feglg002x,
ls_time TYPE bapi1022_feglg003,
ls_timex TYPE bapi1022_feglg003x,
lt_depre TYPE TABLE OF bapi1022_dep_areas,
ls_depre TYPE bapi1022_dep_areas,
lt_deprex TYPE TABLE OF bapi1022_dep_areasx,
ls_deprex TYPE bapi1022_dep_areasx,
l_companycode LIKE bapi1022_1-comp_code,
l_anln1 LIKE bapi1022_1-assetmaino,
l_anln2 LIKE bapi1022_1-assetsubno,
ls_assetcreated LIKE bapi1022_reference,
ls_return LIKE bapiret2.
CLEAR lt_zcsz.
LOOP AT gt_tab ASSIGNING FIELD-SYMBOL(<fs_tab>).
CLEAR :ls_key,ls_gendata,ls_gendatax,l_anln1,l_anln2,ls_return,
ls_assetcreated,l_companycode,ls_time,ls_timex,ls_post,ls_postx,
lt_deprex , lt_depre.
*Key Data
ls_key-companycode = <fs_tab>-bukrs.
ls_gendata-assetclass = <fs_tab>-anlkl.
ls_gendata-descript = <fs_tab>-txt50.
ls_gendata-main_descript = <fs_tab>-anlhtxt.
ls_gendata-base_uom = <fs_tab>-meins.
ls_gendatax-assetclass = 'X'.
ls_gendatax-descript = 'X'.
ls_gendatax-main_descript = 'X'.
ls_gendatax-base_uom = 'X'.
*资产资本化日期
ls_post-cap_date = <fs_tab>-aktiv.
ls_postx-cap_date = 'X'.
*成本中心
ls_time-costcenter = <fs_tab>-kostl.
ls_timex-costcenter = 'X'.
*折旧范围
CLEAR:ls_depre,ls_deprex,lt_depre,lt_deprex.
ls_depre-area = '01'.
ls_depre-dep_key = 'Z001'."折旧码
ls_depre-ulife_yrs = <fs_tab>-ndjar1. "使用年限(总可用年限,剩余年限会自动减购置日期计算,普通折旧开始日期会根据期间和折旧码计算)
ls_depre-ulife_prds = <fs_tab>-ndper1.
APPEND ls_depre TO lt_depre.
ls_depre-area = '20'.
ls_depre-dep_key = 'Z001'."折旧码
ls_depre-ulife_yrs = <fs_tab>-ndjar2. "使用年限(总可用年限,剩余年限会自动减购置日期计算,普通折旧开始日期会根据期间和折旧码计算)
ls_depre-ulife_prds = <fs_tab>-ndper2.
APPEND ls_depre TO lt_depre.
ls_depre-area = '30'.
ls_depre-dep_key = 'Z001'."折旧码
ls_depre-ulife_yrs = <fs_tab>-ndjar3. "使用年限(总可用年限,剩余年限会自动减购置日期计算,普通折旧开始日期会根据期间和折旧码计算)
ls_depre-ulife_prds = <fs_tab>-ndper3.
APPEND ls_depre TO lt_depre.
ls_deprex-area = '01'.
ls_deprex-dep_key = 'X'."折旧码
ls_deprex-ulife_yrs = 'X'. "使用年限(总可用年限,剩余年限会自动减购置日期计算,普通折旧开始日期会根据期间和折旧码计算)
ls_deprex-ulife_prds = 'X'.
APPEND ls_deprex TO lt_deprex.
ls_deprex-area = '20'.
ls_deprex-dep_key = 'X'."折旧码
ls_deprex-ulife_yrs = 'X'. "使用年限(总可用年限,剩余年限会自动减购置日期计算,普通折旧开始日期会根据期间和折旧码计算)
ls_deprex-ulife_prds = 'X'.
APPEND ls_deprex TO lt_deprex.
ls_deprex-area = '30'.
ls_deprex-dep_key = 'X'."折旧码
ls_deprex-ulife_yrs = 'X'. "使用年限(总可用年限,剩余年限会自动减购置日期计算,普通折旧开始日期会根据期间和折旧码计算)
ls_deprex-ulife_prds = 'X'.
APPEND ls_deprex TO lt_deprex.
CALL FUNCTION 'BAPI_FIXEDASSET_CREATE1'
EXPORTING
key = ls_key
generaldata = ls_gendata
generaldatax = ls_gendatax
timedependentdata = ls_time
timedependentdatax = ls_timex
postinginformation = ls_post
postinginformationx = ls_postx
IMPORTING
companycode = l_companycode
asset = l_anln1
subnumber = l_anln2
assetcreated = ls_assetcreated
return = ls_return
TABLES
depreciationareas = lt_depre
depreciationareasx = lt_deprex.
IF ls_return-type CA 'EA' .
<fs_tab>-status = '@0A@'.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ELSE.
<fs_tab>-status = '@08@'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
<fs_tab>-anln1 = l_anln1.
MOVE-CORRESPONDING <fs_tab> TO ls_zcsz.
APPEND ls_zcsz TO lt_zcsz.
CLEAR ls_zcsz.
ENDIF.
ENDLOOP.