首页 > 其他分享 >ABAP:AS01固定资产主数据创建BAPI

ABAP:AS01固定资产主数据创建BAPI

时间:2024-02-18 17:47:06浏览次数:24  
标签:ztps005 BAPI depreciationareasx generaldata lt ABAP generaldatax ls AS01

BAPI_FIXEDASSET_CREATE1

*&---------------------------------------------------------------------*
*& Form frm_zzsdr_data
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& -->  p1        text
*& <--  p2        text
*&---------------------------------------------------------------------*
FORM frm_zzsdr_data.
  DATA:lv_asset                TYPE bapi1022_1-assetmaino, "主资产号
       lv_subnumber            TYPE bapi1022_1-assetsubno, "资产次级编号
       ls_key                  TYPE bapi1022_key,
       ls_generaldata          TYPE bapi1022_feglg001,
       ls_generaldatax         TYPE bapi1022_feglg001x,
       ls_inventory            TYPE bapi1022_feglg011,
       ls_inventoryx           TYPE bapi1022_feglg011x,
       ls_timedependentdata    TYPE bapi1022_feglg003,
       ls_timedependentdatax   TYPE bapi1022_feglg003x,
       ls_allocations          TYPE bapi1022_feglg004,
       ls_allocationsx         TYPE bapi1022_feglg004x,
       ls_origin               TYPE bapi1022_feglg009,
       ls_originx              TYPE bapi1022_feglg009x,
       ls_depreciationareas    TYPE bapi1022_dep_areas, "折旧范围数据
       ls_depreciationareasx   TYPE bapi1022_dep_areasx,
       lt_depreciationareas    TYPE STANDARD TABLE OF bapi1022_dep_areas,
       lt_depreciationareasx   TYPE STANDARD TABLE OF bapi1022_dep_areasx,
       ls_return               TYPE bapiret2,
       ls_investacctassignmnt  TYPE bapi1022_feglg010,
       ls_investacctassignmntx TYPE bapi1022_feglg010x,
       ls_ztps005              LIKE ztps005,
       lt_extensionin          TYPE STANDARD TABLE OF bapiparex,
       ls_extensionin          TYPE bapiparex,
       ls_te_anlu              TYPE bapi_te_anlu.

  CHECK gt_outtab IS NOT INITIAL.
  DATA(lt_upload) = gt_outtab.
  DELETE lt_upload WHERE icon = icon_led_green.
  IF lt_upload IS NOT INITIAL.
    MESSAGE '数据检查未通过,请检查数据后导入' TYPE 'E'.
  ENDIF.

  LOOP AT gt_outtab ASSIGNING FIELD-SYMBOL(<fs_outtab>).
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = <fs_outtab>-anlkl
      IMPORTING
        output = ls_generaldata-assetclass. "资产分类

    "基本视图
    ls_key-companycode = <fs_outtab>-bukrs.         "公司代码
*    ls_generaldata-assetclass    = <fs_outtab>-anlkl.  "资产分类
    ls_generaldata-descript      = <fs_outtab>-txt50.  "资产描述
    ls_generaldata-descript2     = <fs_outtab>-txa50.  "附加资产描述
    ls_generaldata-quantity      = <fs_outtab>-menge.  "数量
    ls_generaldata-base_uom      = <fs_outtab>-meins.  "单位

    ls_generaldatax-assetclass = 'X'.
    ls_generaldatax-descript   = 'X'.
    ls_generaldatax-descript2  = 'X'.
    ls_generaldatax-quantity   = 'X'.
    ls_generaldatax-base_uom   = 'X'.

*时间相关
    ls_timedependentdata-costcenter  = <fs_outtab>-kostl. "成本中心
    ls_timedependentdata-resp_cctr   = <fs_outtab>-kostlv."责任成本中心
*    ls_timedependentdata-wbs_element_cost = <fs_outtab>-ps_psp_pnr2.

    CALL FUNCTION 'CONVERSION_EXIT_ABPSP_OUTPUT'
      EXPORTING
        input  = <fs_outtab>-ps_psp_pnr2
      IMPORTING
        output = ls_timedependentdata-wbs_element_cost.
    ls_timedependentdatax-costcenter = 'X'.
    ls_timedependentdatax-resp_cctr  = 'X' .
    ls_timedependentdatax-wbs_element_cost = 'X'.

    "源
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
      EXPORTING
        input  = <fs_outtab>-lifnr
      IMPORTING
        output = <fs_outtab>-lifnr.
    SELECT SINGLE name1 INTO <fs_outtab>-liefe FROM lfa1 WHERE lifnr = <fs_outtab>-lifnr.
    ls_origin-vendor_no = <fs_outtab>-lifnr.
    ls_origin-vendor = <fs_outtab>-liefe.
    ls_origin-manufacturer = <fs_outtab>-herst."制造商
    ls_originx-vendor_no = 'X'.
    ls_originx-vendor = 'X'.
    ls_originx-manufacturer = 'X'.

    "投资科目分配
    ls_investacctassignmnt-wbs_elem = <fs_outtab>-posnr.
    ls_investacctassignmntx-wbs_elem = 'X'.

    "分配
    ls_allocations-evalgroup1       = <fs_outtab>-ord41. "自用或投放
    ls_allocations-evalgroup2       = <fs_outtab>-ord42. "购入方式
    ls_allocations-evalgroup4       = <fs_outtab>-ord44.
    ls_allocationsx-evalgroup1      = 'X'.             "自用或投放
    ls_allocationsx-evalgroup2      = 'X'.             "购入方式
    ls_allocationsx-evalgroup4      = 'X'.

    "折旧范围
    ls_depreciationareas-area = '01'.
    ls_depreciationareas-ulife_yrs  = <fs_outtab>-ndjar ."计划使用年
    ls_depreciationareas-ulife_prds = <fs_outtab>-ndper ."计划使用月
    ls_depreciationareasx-area = '01'.
    ls_depreciationareasx-ulife_yrs  = 'X' .
    ls_depreciationareasx-ulife_prds = 'X' .
    APPEND  ls_depreciationareas TO  lt_depreciationareas.
    APPEND  ls_depreciationareasx TO  lt_depreciationareasx.

    CALL FUNCTION 'BAPI_FIXEDASSET_CREATE1'
      EXPORTING
        key                  = ls_key
        generaldata          = ls_generaldata
        generaldatax         = ls_generaldatax
        inventory            = ls_inventory
        inventoryx           = ls_inventoryx
        timedependentdata    = ls_timedependentdata
        timedependentdatax   = ls_timedependentdatax
        allocations          = ls_allocations
        allocationsx         = ls_allocationsx
        origin               = ls_origin
        originx              = ls_originx
        investacctassignmnt  = ls_investacctassignmnt
        investacctassignmntx = ls_investacctassignmntx
      IMPORTING
        asset                = lv_asset
        return               = ls_return
      TABLES
        depreciationareas    = lt_depreciationareas
        depreciationareasx   = lt_depreciationareasx
        extensionin          = lt_extensionin.
    IF ls_return-type CA 'AEX'.
      CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      <fs_outtab>-icon = icon_led_red.
      <fs_outtab>-msg = ls_return-message && <fs_outtab>-msg.
    ELSE.
      <fs_outtab>-icon = icon_led_green.
      <fs_outtab>-anln1 = lv_asset.
      CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
        EXPORTING
          wait = 'X'.
    ENDIF.

    IF <fs_outtab>-schrw IS NOT INITIAL.
      UPDATE anlb SET schrw = <fs_outtab>-schrw WHERE bukrs = <fs_outtab>-bukrs
                                                  AND anln1 = lv_asset
                                                  AND afabe = '01'.
      COMMIT WORK AND WAIT.
    ENDIF.

    MOVE-CORRESPONDING <fs_outtab> TO ls_ztps005.
    ls_ztps005-anln2 = '0000'.
    ls_ztps005-erdat = sy-datum.
    ls_ztps005-ernam = sy-uname.
    ls_ztps005-ertim = sy-uzeit.
    MODIFY ztps005 FROM ls_ztps005.
    COMMIT WORK AND WAIT.
    CLEAR:ls_return,ls_ztps005,ls_key,ls_generaldata,ls_generaldatax,ls_inventory,ls_inventoryx,ls_timedependentdata,
    ls_timedependentdatax,ls_allocations,ls_allocationsx,ls_origin,ls_originx,ls_investacctassignmnt,ls_investacctassignmntx,
    lv_asset,lt_depreciationareas,lt_depreciationareasx,ls_extensionin,lt_extensionin,ls_te_anlu.
  ENDLOOP.

ENDFORM.

 

标签:ztps005,BAPI,depreciationareasx,generaldata,lt,ABAP,generaldatax,ls,AS01
From: https://www.cnblogs.com/ap-ad-java-abap/p/18019676

相关文章

  • ABAP:ABAW资产减值重固BAPI
    BAPI_ASSET_REVALUATION_POST*&---------------------------------------------------------------------**&Formfrm_import_data*&---------------------------------------------------------------------**&text*&--------------------------......
  • ABAP:PP->MD61创建独立需求计划BAPI
    BAPI_REQUIREMENTS_CREATE*&---------------------------------------------------------------------**&Formfrm_create_pbdnr_matnr*&---------------------------------------------------------------------**&text*&----------------------......
  • ABAP:ME21N状态栏添加自定义按钮
    SE38:LMEGUICJL---->代码增强点ENHANCEMENT1Z_SEND_PO_TO_OA."activeversionIFim_fcode='OA'.DATA:ls_returnTYPEzscomm03,lv_bsartTYPEekko-bsart.DATA:lv_statusTYPEzshr0004,ls_ekkoTYPEekko.CLEARim......
  • ABAP:MM01/MM02/MM03物料主数据增强
    1.屏幕增强-在主表中附加结构(判断数据的主表,如MARA,MARC)增强字段数据元素勾选更改文档以后,会记录字段变更历史 -SPRO-->物流-常规-->物料主数据-->配置物料主记录-->创建定制子屏幕的程序 会生成对应的函数组--里面会包含两个屏幕(0001,0002)这里的0001屏幕作为......
  • 10.使用RestSharps请求WebAPI
    1.请求类publicclassBaseRequest{///<summary>///请求法式///</summary>publicRestSharp.MethodMethod{get;set;}///<summary>///路由///</summary>publicstr......
  • Asp-Net-Core学习笔记:WebApi开发实践
    前言用AspNetCore做Api开发也有一段时间了,正好年底在做总结,做一个WebApi开发实践笔记。暂时想到的一些技术关键词,同时也作为本文的大纲,现在对这套技术体系的了解还不够深入,以后会持续更新这个Api开发实践~身份认证:JwtBearer分页:X.PagedList缓存ResponseCacheRedis:St......
  • Asp .Net Core 系列:Asp .Net Core 集成 Panda.DynamicWebApi
    目录简介Asp.NetCore集成Panda.DynamicWebApi配置原理什么是POCOController?POCO控制器原理ControllerFeatureProvider实现自定义判断规则IApplicationModelConventionPanda.DynamicWebApi中的实现ConfigureApiExplorer()ConfigureSelector()ConfigureParameters()简介Panda......
  • net8 webapi
    直接用net8webapi模板,创建时不要选控制器,直接添加类文件,并调整基类等即可usingMicrosoft.AspNetCore.Mvc;usingNewtonsoft.Json.Converters;usingNewtonsoft.Json.Linq;usingSystem.Text.Unicode;namespaceWebApplication1.Controllers{[ApiController][......
  • net8 对接webapi接口通过 GetFromJsonAsAsyncEnumerable方法直接得到对象,无需进行反序
    调用API直接获取到对象现在有一个接口返回如下图中的数据:如果是在8以前的版本中获取该接口的数据,需要先获取到接口内容,然后进行反序列化,代码如下conststringRequestUri="http://localhost:5145/user";usingvarclient=newHttpClient();varstream=awaitclient......
  • 使用 Asp.net core webapi 集成配置系统,提高程序的灵活和可维护性
    前言:什么是集成配置系统?集成配置系统的主要目的是将应用程序的配置信息与代码分离,使得配置信息可以在不需要修改代码的情况下进行更改。这样可以提高应用程序的灵活性和可维护性。ASP.NETCore提供了一种灵活的配置系统,可以轻松地将配置信息从不同的来源加载到应用程序中,并且......