【样例代码】
*&---------------------------------------------------------------------*
*& Report ZCREATE_ASSET
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZCREATE_ASSET.
CONSTANTS : C_UPDATED TYPE C VALUE 'X'.
TYPES : BEGIN OF T_ASSET,
BUKRS TYPE ANLA-BUKRS,
ANLKL TYPE ANLA-ANLKL,"资产分类
TXT50 TYPE ANLA-TXT50,"资产描述
TXA50 TYPE ANLA-TXA50,"附加资产说明
KOSTL TYPE ANLZ-KOSTL,"成本中心
WERKS TYPE ANLZ-WERKS,"工厂
STORT TYPE ANLZ-STORT,"资产地点
ORD41 TYPE ANLA-ORD41,"评估组1
AKTIV TYPE ANLA-AKTIV,"资本化日期
SERNR TYPE ANLA-SERNR,"序列号
INVNR TYPE ANLA-INVNR,"存货号
GSBER TYPE ANLZ-GSBER,"业务范围
RAUMN TYPE ANLZ-RAUMN,"房间
MENGE TYPE ANLA-MENGE,"数量
MEINS TYPE ANLA-MEINS,"单位
END OF T_ASSET.
START-OF-SELECTION.
DATA : LW_ASSET TYPE T_ASSET.
DATA : LS_ASSET_CREATED TYPE BAPI1022_REFERENCE.
DATA : WS_ERROR TYPE STRING.
CLEAR LW_ASSET.
LW_ASSET-BUKRS = 'CN40'.
LW_ASSET-ANLKL = '00002205'.
LW_ASSET-TXT50 = '梅赛德斯奔驰S600 12缸'.
LW_ASSET-TXA50 = '梅赛德斯奔驰S600 12缸 2020 Version'.
LW_ASSET-KOSTL = '0000111102'.
LW_ASSET-WERKS = 'CN41'.
LW_ASSET-STORT = '0001'.
LW_ASSET-ORD41 = 'CN40'.
LW_ASSET-AKTIV = SY-DATUM.
LW_ASSET-SERNR = 'S600'.
LW_ASSET-INVNR = 'S600 12G'.
LW_ASSET-GSBER = 'CN41'.
LW_ASSET-RAUMN = 'ROOM'.
LW_ASSET-MENGE = 1.
LW_ASSET-MEINS = 'EA'.
IF LW_ASSET IS NOT INITIAL.
PERFORM ZF_BAPI_CALL USING LW_ASSET CHANGING LS_ASSET_CREATED WS_ERROR.
ENDIF.
*&---------------------------------------------------------------------*
*& Form zf_bapi_call
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->PS_LS_ASSET text
* <--PS_LS_ASSET_CREATED text
* <--PS_WS_ERROR text
*----------------------------------------------------------------------*
FORM ZF_BAPI_CALL USING PS_LS_ASSET TYPE T_ASSET
CHANGING PS_LS_ASSET_CREATED TYPE BAPI1022_REFERENCE
PS_WS_ERROR TYPE STRING.
DATA:
LS_KEY TYPE BAPI1022_KEY,
LS_GENERAL_DATA TYPE BAPI1022_FEGLG001,
LS_GENERAL_DATA_X TYPE BAPI1022_FEGLG001X,
LS_INVENTORY TYPE BAPI1022_FEGLG011,
LS_INVENTORY_X TYPE BAPI1022_FEGLG011X,
LS_POSTING_INFORMATION TYPE BAPI1022_FEGLG002,
LS_POSTING_INFORMATION_X TYPE BAPI1022_FEGLG002X,
LS_TIME_DEPENDENT_DATA TYPE BAPI1022_FEGLG003,
LS_TIME_DEPENDENT_DATA_X TYPE BAPI1022_FEGLG003X,
LS_ALLOCATIONS TYPE BAPI1022_FEGLG004,
LS_ALLOCATIONS_X TYPE BAPI1022_FEGLG004X,
LS_ORIGIN TYPE BAPI1022_FEGLG009,
LS_ORIGIN_X TYPE BAPI1022_FEGLG009X,
LS_INVEST_ACCT_ASSIGNMNT TYPE BAPI1022_FEGLG010,
LS_INVEST_ACCT_ASSIGNMNT_X TYPE BAPI1022_FEGLG010X,
LS_REAL_ESTATE TYPE BAPI1022_FEGLG007,
LS_REAL_ESTATE_X TYPE BAPI1022_FEGLG007X,
LS_RETURN TYPE BAPIRET2.
***** Required fields - Create internal asset number *****
* COMPANY CODE
LS_KEY-COMPANYCODE = PS_LS_ASSET-BUKRS.
* Asset class
LS_GENERAL_DATA-ASSETCLASS = PS_LS_ASSET-ANLKL.
LS_GENERAL_DATA_X-ASSETCLASS = C_UPDATED.
***** Required fields - General Mills *****
* ASSET DESCRIPTION
LS_GENERAL_DATA-DESCRIPT = PS_LS_ASSET-TXT50.
LS_GENERAL_DATA_X-DESCRIPT = C_UPDATED.
LS_GENERAL_DATA-QUANTITY = PS_LS_ASSET-MENGE.
LS_GENERAL_DATA_X-QUANTITY = C_UPDATED.
LS_GENERAL_DATA-BASE_UOM = PS_LS_ASSET-MEINS.
LS_GENERAL_DATA_X-BASE_UOM = C_UPDATED.
* Cost center
LS_TIME_DEPENDENT_DATA-COSTCENTER = PS_LS_ASSET-KOSTL.
LS_TIME_DEPENDENT_DATA_X-COSTCENTER = C_UPDATED.
* Plant
LS_TIME_DEPENDENT_DATA-PLANT = PS_LS_ASSET-WERKS.
LS_TIME_DEPENDENT_DATA_X-PLANT = C_UPDATED.
* Asset location
LS_TIME_DEPENDENT_DATA-LOCATION = PS_LS_ASSET-STORT.
LS_TIME_DEPENDENT_DATA_X-LOCATION = C_UPDATED.
* Asset capitalization date
* LS_POSTING_INFORMATION-CAP_DATE = PS_LS_ASSET-AKTIV.
* LS_POSTING_INFORMATION_X-CAP_DATE = C_UPDATED.
***** Optional fields *****
* ASSET DESCRIPTION 2 附加资产描述
LS_GENERAL_DATA-DESCRIPT2 = PS_LS_ASSET-TXA50.
LS_GENERAL_DATA_X-DESCRIPT2 = C_UPDATED.
* Serial number
LS_GENERAL_DATA-SERIAL_NO = PS_LS_ASSET-SERNR.
LS_GENERAL_DATA_X-SERIAL_NO = C_UPDATED.
* Asset is managed historically 历史性管理
LS_GENERAL_DATA-HISTORY = C_UPDATED.
LS_GENERAL_DATA_X-HISTORY = C_UPDATED.
* Inventory number
LS_GENERAL_DATA-INVENT_NO = PS_LS_ASSET-INVNR.
LS_GENERAL_DATA_X-INVENT_NO = C_UPDATED.
* Last inventory date
* LS_INVENTORY-DATE = PS_LS_ASSET-IVDAT.
* LS_INVENTORY_X-DATE = C_UPDATED.
* Supplementary inventory specifications
* LS_INVENTORY-NOTE = PS_LS_ASSET-INVZU.
* LS_INVENTORY_X-NOTE = C_UPDATED.
* Inventory indicator
* LS_INVENTORY-INCLUDE_IN_LIST = C_UPDATED.
* LS_INVENTORY_X-INCLUDE_IN_LIST = C_UPDATED.
* Business Area
LS_TIME_DEPENDENT_DATA-BUS_AREA = PS_LS_ASSET-GSBER.
LS_TIME_DEPENDENT_DATA_X-BUS_AREA = C_UPDATED.
* Cost center responsible for asset
* LS_TIME_DEPENDENT_DATA-RESP_CCTR = PS_LS_ASSET-KOSTLV.
* LS_TIME_DEPENDENT_DATA_X-RESP_CCTR = C_UPDATED.
* Room
LS_TIME_DEPENDENT_DATA-ROOM = PS_LS_ASSET-RAUMN.
LS_TIME_DEPENDENT_DATA_X-ROOM = C_UPDATED.
* License plate no. of vehichle
* LS_TIME_DEPENDENT_DATA-PLATE_NO = PS_LS_ASSET-KFZKZ.
* LS_TIME_DEPENDENT_DATA_X-LICENSE_PLATE_NO = C_UPDATED.
* Platform
LS_ALLOCATIONS-EVALGROUP1 = PS_LS_ASSET-ORD41.
LS_ALLOCATIONS_X-EVALGROUP1 = C_UPDATED.
* LS_ALLOCATIONS-EVALGROUP1 = PS_LS_ASSET-ORD41.
* LS_ALLOCATIONS_X-EVALGROUP1 = C_UPDATED.
* GMI Class Code
* LS_ALLOCATIONS-EVALGROUP3 = PS_LS_ASSET-ORD43.
* LS_ALLOCATIONS_X-EVALGROUP3 = C_UPDATED.
* Location Type
* LS_ALLOCATIONS-EVALGROUP4 = PS_LS_ASSET-ORD44.
* LS_ALLOCATIONS_X-EVALGROUP4 = C_UPDATED.
* Reason for investment
* LS_ALLOCATIONS-INV_REASON = PS_LS_ASSET-IZWEK.
* LS_ALLOCATIONS_X-INV_REASON = C_UPDATED.
* Manufacturer of asset
* LS_ORIGIN-MANUFACTURER = PS_LS_ASSET-HERST.
* LS_ORIGIN_X-MANUFACTURER = C_UPDATED.
* Name of asset supplier
* LS_ORIGIN-VENDOR = PS_LS_ASSET-LIEFE.
* LS_ORIGIN_X-VENDOR = C_UPDATED.
* Asset type name
* LS_ORIGIN-TYPE_NAME = PS_LS_ASSET-TYPBZ.
* LS_ORIGIN_X-TYPE_NAME = C_UPDATED.
* WBS element investment project - external key
* LS_INVEST_ACCT_ASSIGNMNT-WBS_ELEMENT = PS_LS_ASSET-POSID.
* LS_INVEST_ACCT_ASSIGNMNT_X-WBS_ELEMENT = C_UPDATED.
* Local tax office
* LS_REAL_ESTATE-TAX_OFFICE = PS_LS_ASSET-FIAMT.
* LS_REAL_ESTATE_X-TAX_OFFICE = C_UPDATED.
CALL FUNCTION 'BAPI_FIXEDASSET_CREATE1'
EXPORTING
KEY = LS_KEY
* TESTRUN = 'X'
GENERALDATA = LS_GENERAL_DATA
GENERALDATAX = LS_GENERAL_DATA_X
INVENTORY = LS_INVENTORY
INVENTORYX = LS_INVENTORY_X
POSTINGINFORMATION = LS_POSTING_INFORMATION
POSTINGINFORMATIONX = LS_POSTING_INFORMATION_X
TIMEDEPENDENTDATA = LS_TIME_DEPENDENT_DATA
TIMEDEPENDENTDATAX = LS_TIME_DEPENDENT_DATA_X
ALLOCATIONS = LS_ALLOCATIONS
ALLOCATIONSX = LS_ALLOCATIONS_X
ORIGIN = LS_ORIGIN
ORIGINX = LS_ORIGIN_X
INVESTACCTASSIGNMNT = LS_INVEST_ACCT_ASSIGNMNT
INVESTACCTASSIGNMNTX = LS_INVEST_ACCT_ASSIGNMNT_X
REALESTATE = LS_REAL_ESTATE
REALESTATEX = LS_REAL_ESTATE_X
IMPORTING
ASSETCREATED = PS_LS_ASSET_CREATED
RETURN = LS_RETURN.
IF LS_RETURN-TYPE = 'S'.
COMMIT WORK.
WRITE : '资产创建成功:',PS_LS_ASSET_CREATED-COMPANYCODE,
PS_LS_ASSET_CREATED-ASSET,
PS_LS_ASSET_CREATED-SUBNUMBER.
ELSE.
CLEAR: PS_LS_ASSET_CREATED.
PS_WS_ERROR = LS_RETURN-MESSAGE.
WRITE : PS_WS_ERROR.
ENDIF.
ENDFORM. " zf_bapi_call
【效果展示】
本文地址:https://blog.csdn.net/zhongguomao/article/details/112686322