固定资产遗留项导入

1377阅读 0评论2011-04-25 jiarui1230
分类:

*&---------------------------------------------------------------------*
*&      Form  FRM_CALL_BAPI_POST
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM frm_call_bapi_post .
  DATA: lv_flg TYPE c.
  CHECK gv_flg IS INITIAL.
  LOOP AT gt_upload INTO gwa_upload.
    CLEAR gwa_alv_out.
    PERFORM frm_convertion CHANGING gwa_upload-asset.
    gwa_alv_out-asset_1 = gwa_upload-asset.
* 公司代码
    gs_bapi1022_key-companycode = gwa_upload-companycode.
* 补零
    PERFORM frm_convertion CHANGING gwa_upload-assetclass.
* 资产分类
    IF rd_crt IS NOT INITIAL.
      gs_generaldata-assetclass = gwa_upload-assetclass. "'00010000'.
      gs_generaldatax-assetclass = 'X'.
    ENDIF.
* 资产描述
    gs_generaldata-descript  = gwa_upload-descript. "'资产描述'.
    gs_generaldatax-descript = 'X'.
* 附加资产描述
*    gs_generaldata-descript2 = gwa_upload-descript2. "'英文描述'.
*    gs_generaldatax-descript2 = 'X'.
* 数量
    gs_generaldata-quantity  = gwa_upload-quantity.         "'11'.
    gs_generaldatax-quantity = 'X'.
* 基本计量单位
    gs_generaldata-base_uom  = gwa_upload-base_uom. " 'KG'.
    gs_generaldatax-base_uom = 'X'.
* 资产资本化日期
    IF rd_crt IS NOT INITIAL.
      gs_postinginformation-cap_date  = gwa_upload-cap_date. "'20070101'.
      gs_postinginformationx-cap_date = 'X'.
    ENDIF.
* 记账凭证码
    gs_leasing-text  = gwa_upload-text.
    gs_leasingx-text = 'X'.
* 成本中心
    gs_timedependentdata-costcenter = gwa_upload-costcenter. "'100000'.
    gs_timedependentdatax-costcenter = 'X'.
* 成本中心对资产负责
    gs_timedependentdata-resp_cctr = gwa_upload-resp_cctr.  "'100001'.
    gs_timedependentdatax-resp_cctr = 'X'.
* 不活动日期
    gs_postinginformation-deact_date  = gwa_upload-deact_date.
    gs_postinginformationx-deact_date = 'X'.
*供应商科目编号(其他关键字)
    gs_origin-vendor_no = gwa_upload-vendor_no.
    gs_originx-vendor_no = 'X'.
* 资产制造商
    gs_origin-manufacturer = gwa_upload-manufacturer.
    gs_originx-manufacturer = 'X'.
* 使用状态
    gs_allocations-evalgroup1 = gwa_upload-evalgroup1.
    gs_allocationsx-evalgroup1 = 'X'.
* 运行状态
    gs_allocations-evalgroup2 = gwa_upload-evalgroup2.
    gs_allocationsx-evalgroup2 = 'X'.
* 核电设施类别
    gs_allocations-evalgroup3 = gwa_upload-evalgroup3.
    gs_allocationsx-evalgroup3 = 'X'.
* 增减方式
    gs_allocations-assetsupno  = gwa_upload-assetsupno.
    gs_allocationsx-assetsupno ='X'.
* 核电设施类别
    gs_allocations-evalgroup4 = gwa_upload-evalgroup4.
    gs_allocationsx-evalgroup4 = 'X'.
* 投资原因
    gs_allocations-inv_reason = gwa_upload-inv_reason.
    gs_allocationsx-inv_reason = 'X'.
* 房间
*    gs_timedependentdata-room = gwa_upload-zroom.
*    gs_timedependentdatax-room = 'X'.
* 资产用途
    gs_allocations-evalgroup5 = gwa_upload-evalgroup5.
    gs_allocationsx-evalgroup5 = 'X'.
* 序列号
    gs_generaldata-serial_no = gwa_upload-serial_no.        "'11'.
    gs_generaldatax-quantity = 'X'.
    CLEAR gt_bapi1022_cumval.
* 累计购置价值
    gwa_bapi1022_cumval-fisc_year = '2011'.
    gwa_bapi1022_cumval-area      = '01'.
    gwa_bapi1022_cumval-acq_value = gwa_upload-acq_value.
* 累计普通折旧
    gwa_bapi1022_cumval-ord_dep = 0 - gwa_upload-ord_dep.

    APPEND gwa_bapi1022_cumval TO gt_bapi1022_cumval.
* 增强屏幕的字段
    CLEAR: gwa_ext, gt_ext.
    gwa_ext-structure          = 'BAPI_TE_ANLU'.
    gs_bapi_te_anlu-comp_code  = gwa_upload-companycode.
    gs_bapi_te_anlu-zclass     = gwa_upload-zclass.
    gs_bapi_te_anlu-zperno     = gwa_upload-zperno.
    gs_bapi_te_anlu-zdescript  = gwa_upload-zdescript.
    gs_bapi_te_anlu-zfpdate = gwa_upload-zfpdate.
    gs_bapi_te_anlu-zsbbh      = gwa_upload-zsbbh.
    gs_bapi_te_anlu-zccdate    = gwa_upload-zccdate.
    gs_bapi_te_anlu-zccno        = gwa_upload-zccno.
    gs_bapi_te_anlu-zno        = gwa_upload-zno.
    gs_bapi_te_anlu-zroom      = gwa_upload-zroom.


    MOVE gs_bapi_te_anlu+0(240) TO gwa_ext-valuepart1.
    MOVE gs_bapi_te_anlu+240(225) TO gwa_ext-valuepart2.
    APPEND gwa_ext TO gt_ext.

    CLEAR:gt_return, gv_companycode,gv_asset, gv_subnumber,gv_assetcreated,
          gwa_return.

    IF rd_crt IS NOT INITIAL.
      PERFORM frm_bapi_create_asset CHANGING lv_flg.
    ELSEIF rd_cha IS NOT INITIAL.
      PERFORM frm_bapi_change_asset CHANGING lv_flg.
    ENDIF.
    IF lv_flg IS NOT INITIAL.
      EXIT.
    ENDIF.
  ENDLOOP.
  IF ( ( rd_crt IS NOT INITIAL AND p_test IS INITIAL ) OR ( rd_cha IS NOT INITIAL ) )
       AND lv_flg IS INITIAL.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
*    EXPORTING
*      WAIT          =
*    IMPORTING
*      RETURN        =
              .
  ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
      .
  ENDIF.
ENDFORM.                    " FRM_CALL_BAPI_POST

FORM frm_bapi_create_asset CHANGING lv_flg TYPE c.
  CALL FUNCTION 'BAPI_FIXEDASSET_OVRTAKE_CREATE'
    EXPORTING
      key                        = gs_bapi1022_key
*   REFERENCE                  =
*   CREATESUBNUMBER            =
*   CREATEGROUPASSET           =
      testrun                    = p_test
      generaldata                = gs_generaldata
      generaldatax               = gs_generaldatax
      inventory                  = gs_inventory
      inventoryx                 = gs_inventoryx
      postinginformation         = gs_postinginformation
      postinginformationx        = gs_postinginformationx
      timedependentdata          = gs_timedependentdata
      timedependentdatax         = gs_timedependentdatax
      allocations                = gs_allocations
      allocationsx               = gs_allocationsx
      origin                     = gs_origin
      originx                    = gs_originx
*   INVESTACCTASSIGNMNT        =
*   INVESTACCTASSIGNMNTX       =
*   NETWORTHVALUATION          =
*   NETWORTHVALUATIONX         =
*   REALESTATE                 =
*   REALESTATEX                =
*   INSURANCE                  =
*   INSURANCEX                 =
      leasing                    = gs_leasing
      leasingx                   = gs_leasingx
    IMPORTING
      companycode                = gv_companycode
      asset                      = gv_asset
      subnumber                  = gv_subnumber
      assetcreated               = gv_assetcreated
    TABLES
*   DEPRECIATIONAREAS          =
*   DEPRECIATIONAREASX         =
*   INVESTMENT_SUPPORT         =
      extensionin                = gt_ext
      cumulatedvalues            = gt_bapi1022_cumval
*   POSTEDVALUES               =
*   TRANSACTIONS               =
*   PROPORTIONALVALUES         =
      return                     = gt_return
            .
  IF gt_return IS NOT INITIAL.
*    READ TABLE gt_return INTO gwa_return WITH KEY type = 'E'.
    LOOP AT gt_return INTO gwa_return WHERE type = 'E' OR type = 'A'.
      EXIT.
    ENDLOOP.
    IF sy-subrc = 0.
      lv_flg = 'X'.
      MOVE-CORRESPONDING gwa_return TO gwa_alv_out.
    ELSE.
      gwa_alv_out-type = 'S'.
      IF p_test IS INITIAL.
        gwa_alv_out-message = '创建历史资产被成功创建'.
      ELSE.
        gwa_alv_out-message = '创建历史资产被成功测试'.
      ENDIF.
    ENDIF.
  ENDIF.
  gwa_alv_out-companycode = gv_companycode.
  gwa_alv_out-asset       = gv_asset.
  APPEND gwa_alv_out TO gt_alv_out.
ENDFORM.                    " FRM_BAPI_CREATE_ASSET

FORM frm_bapi_change_asset CHANGING lv_flg TYPE c.
  DATA: lv_return TYPE bapiret2,
        lv_sub    TYPE bapi1022_1-assetsubno VALUE '0',
        lv_asset  TYPE bapi1022_1-assetmaino.

  CALL FUNCTION 'BAPI_FIXEDASSET_CHANGE'
    EXPORTING
      companycode                = gs_bapi1022_key-companycode
      asset                      = gwa_upload-asset
      subnumber                  = ''
*     GROUPASSET                 =
      generaldata                = gs_generaldata
      generaldatax               = gs_generaldatax
      inventory                  = gs_inventory
      inventoryx                 = gs_inventoryx
      postinginformation         = gs_postinginformation
      postinginformationx        = gs_postinginformationx
      timedependentdata          = gs_timedependentdata
      timedependentdatax         = gs_timedependentdatax
      allocations                = gs_allocations
      allocationsx               = gs_allocationsx
      origin                     = gs_origin
      originx                    = gs_originx
*     INVESTACCTASSIGNMNT        =
*     INVESTACCTASSIGNMNTX       =
*     NETWORTHVALUATION          =
*     NETWORTHVALUATIONX         =
*     REALESTATE                 =
*     REALESTATEX                =
*     INSURANCE                  =
*     INSURANCEX                 =
      leasing                    = gs_leasing
      leasingx                   = gs_leasingx
    IMPORTING
      return                     = lv_return
    TABLES
*     DEPRECIATIONAREAS          =
*     DEPRECIATIONAREASX         =
*     INVESTMENT_SUPPORT         =
      extensionin                = gt_ext
            .
  IF lv_return-type = 'S'.
    gwa_alv_out-type = 'S'.
    gwa_alv_out-message = '历史资产被成功修改'.
  ELSE.
    gwa_alv_out-type = 'E'.
    MOVE-CORRESPONDING lv_return TO gwa_alv_out.
  ENDIF.
  gwa_alv_out-companycode = gwa_upload-companycode.
  gwa_alv_out-asset       = gwa_upload-asset.
  APPEND gwa_alv_out TO gt_alv_out.
ENDFORM.                    " FRM_BAPI_CHANGE_ASSET

上一篇:BAPI_LOAN_CONTRACT_CREATE 贷款合同导入
下一篇:添加自定义对象到GLOBAL Object Services(GOS)(转)