BAPI_FIXEDASSET_CREATE1 创建资产卡片

导语:最近在做OA到SAP固定资产创建的接口,使用到BAPI:【BAPI_FIXEDASSET_CREATE1 】,记录一下。

BAPI名称:BAPI_FIXEDASSET_CREATE1
BAPI描述:固定资产创建

👉【BAPI记录清单…】

  DATA: lw_return TYPE bapiret2.

  DATA: BEGIN OF lw_result.
  DATA: posnr TYPE posnr_d.
        INCLUDE STRUCTURE zsfi002.
  DATA: END OF lw_result.

  DATA: l_asset               TYPE bapi1022_1-assetmaino,
        l_subnumber           TYPE bapi1022_1-assetsubno,
        lw_key                TYPE bapi1022_key,
        lw_generaldata        TYPE bapi1022_feglg001,
        lw_inventory          TYPE bapi1022_feglg011,
        lw_inventoryx         TYPE bapi1022_feglg011x,
        lw_generaldatax       TYPE bapi1022_feglg001x,
        lw_timedependentdata  TYPE bapi1022_feglg003,
        lw_timedependentdatax TYPE bapi1022_feglg003x,
        lw_allocations        TYPE bapi1022_feglg004,
        lw_allocationsx       TYPE bapi1022_feglg004x,
        lw_original_copy      TYPE bapi1022_feglg009,
        lw_original_copyx     TYPE bapi1022_feglg009x,
        lw_depreciationareas  TYPE bapi1022_dep_areas, "折旧范围数据
        lw_depreciationareasx TYPE bapi1022_dep_areasx,
        lt_depreciationareas  TYPE STANDARD TABLE OF bapi1022_dep_areas,
        lt_depreciationareasx TYPE STANDARD TABLE OF bapi1022_dep_areasx.
  DATA: m_lifnr TYPE lifnr,
        m_name1 TYPE name1_gp.

  DATA: lt_extensionin TYPE STANDARD TABLE OF bapiparex,
        ls_extensionin TYPE bapiparex.

  DATA: ls_te_anlu TYPE bapi_te_anlu.
*  FIELD-SYMBOLS: <FS_RESULT> TYPE ZFIXED_ASSETS.
  LOOP AT lt_result INTO lw_result.
    CHECK lw_result-anln1 IS INITIAL.
    CLEAR: l_asset,
           l_subnumber,
           lw_key,
           lw_generaldata,
           lw_generaldatax,
           lw_inventory,
           lw_inventoryx,
           lw_timedependentdata,
           lw_timedependentdatax,
           lw_allocations,
           lw_allocationsx,
           lw_depreciationareas,
           lw_depreciationareasx,
           lt_depreciationareas,
           lt_depreciationareasx,lt_extensionin.
*基本视图
    lw_key-companycode = lw_result-bukrs.            "公司代码
    lw_generaldata-assetclass    = lw_result-anlkl.  "资产分类
    lw_generaldata-descript      = lw_result-txt50.  "资产描述
    lw_generaldata-descript2     = lw_result-txa50.  "附加资产描述
    lw_generaldata-serial_no     = lw_result-sernr.  "序列号
    lw_generaldata-quantity      = lw_result-menge.  "数量
    lw_generaldata-base_uom      = lw_result-meins.  "单位
    lw_generaldata-invent_no     = lw_result-invnr.  "存货号
    lw_generaldata-main_descript = lw_result-anlhtxt."资产主号文本

    lw_generaldatax-assetclass = 'X'.
    lw_generaldatax-descript   = 'X'.
    lw_generaldatax-descript2  = 'X'.
    lw_generaldatax-serial_no  = 'X'.
    lw_generaldatax-quantity   = 'X'.
    lw_generaldatax-base_uom   = 'X'.
    lw_generaldatax-invent_no  = 'X'.
*时间相关
    lw_timedependentdata-costcenter  = lw_result-kostl. "成本中心
    lw_timedependentdata-resp_cctr   = lw_result-kostlv."责任成本中心
    lw_timedependentdata-maint_ord   = lw_result-iaufn.  "维护订单
    lw_timedependentdata-room        = lw_result-raumn. "房间
    lw_timedependentdatax-costcenter = 'X'.
    lw_timedependentdatax-resp_cctr  = 'X' .
    lw_timedependentdatax-maint_ord  = 'X'.
    lw_timedependentdatax-room       = 'X' .
*分配ALLOCATIONS
    m_lifnr = lw_result-liefe.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = m_lifnr
      IMPORTING
        output = m_lifnr.
    SELECT SINGLE name1 INTO m_name1 FROM lfa1 WHERE lifnr = m_lifnr.
    lw_original_copy-vendor_no = m_lifnr.
    lw_original_copy-vendor = m_name1.
    lw_original_copyx-vendor_no = 'X'.
    lw_original_copyx-vendor = 'X'.
    lw_allocations-evalgroup1       = lw_result-ord41. "自用或投放
    lw_allocations-evalgroup2       = lw_result-ord42. "购入方式
    lw_allocationsx-evalgroup1      = 'X'.             "自用或投放
    lw_allocationsx-evalgroup2      = 'X'.             "购入方式
    lw_depreciationareas-area       = '01'.
    lw_depreciationareas-ulife_yrs  = lw_result-ndjar ."计划使用年
    lw_depreciationareas-ulife_prds = lw_result-ndper ."计划使用月

    IF lw_result-dep_key <> '' .
      lw_depreciationareas-dep_key = lw_result-dep_key ."折旧码
    ENDIF.

    lw_depreciationareasx-area = '01' .
    IF lw_result-ndjar <> 0 OR lw_result-ndper <> 0 .
      lw_depreciationareasx-ulife_yrs  = 'X' .
      lw_depreciationareasx-ulife_prds = 'X' .
    ENDIF.

    IF lw_result-dep_key <> '' .
      lw_depreciationareasx-dep_key = 'X' .
    ENDIF.

    APPEND  lw_depreciationareas TO  lt_depreciationareas.
    APPEND  lw_depreciationareasx TO  lt_depreciationareasx.


    ls_te_anlu-comp_code  = lw_result-bukrs.
    ls_te_anlu-assetmaino = lw_result-anln1.
    ls_te_anlu-assetsubno = '0000'.
    ls_te_anlu-zccwz      = lw_result-zccwz.  "增强字段

    ls_extensionin-structure = 'BAPI_TE_ANLU'.
    ls_extensionin-valuepart1 = ls_te_anlu.
    APPEND  ls_extensionin TO lt_extensionin.

    CALL FUNCTION 'BAPI_FIXEDASSET_CREATE1'
      EXPORTING
        key                = lw_key
        generaldata        = lw_generaldata
        generaldatax       = lw_generaldatax
        inventory          = lw_inventory
        inventoryx         = lw_inventoryx
        timedependentdata  = lw_timedependentdata
        timedependentdatax = lw_timedependentdatax
        allocations        = lw_allocations
        allocationsx       = lw_allocationsx
        origin             = lw_original_copy
        originx            = lw_original_copyx
      IMPORTING
        asset              = l_asset
        return             = lw_return
      TABLES
        depreciationareas  = lt_depreciationareas
        depreciationareasx = lt_depreciationareasx
        extensionin        = lt_extensionin.

    lw_result-type = lw_return-type.
    IF lw_return-type NE 'E'.
      lw_result-anln1 = l_asset.
      lw_result-anln2 = l_subnumber.
      IF lw_return-type = 'W'.
        lw_result-icon = icon_led_yellow.
      ELSE.
        lw_result-icon = icon_led_green.
      ENDIF.
      lw_result-message = '资产创建成功'.

*      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'.
    ELSE.
      lw_result-icon = icon_led_red .
      lw_result-message = lw_result-message && lw_return-message.
      gv_error = 'X'.
*      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    ENDIF.

    MODIFY lt_result FROM lw_result.
    CLEAR: lw_result,lw_return.
  ENDLOOP.

  IF gv_error = ''.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'.
    es_return-type = 'S'.
    es_return-message = '创建成功!'.
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
    es_return-type = 'E'.
    es_return-message = '存在失败数据!'.
  ENDIF.

补充:如果需要创建子资产需要再KEY里边填写好父资产,然后在【CREATESUBNUMBER】打上’X’
作者:小飞猪猪猪猪猪猪猪–CSDN

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小飞猪猪猪猪猪猪猪

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

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

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

打赏作者

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

抵扣说明:

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

余额充值