SAP FICO资产批量导入功能
一、功能逻辑







二、功能界面




三、功能代码
*&---------------------------------------------------------------------*
*& 程序名: ZRPFI_IMPORT_ASSET
*& 创建者(公司)/日期:
*& 程序描述:
*& 1. 历史资产期初导入功能.
*& 2. 区分当年和往年数据
*&---------------------------------------------------------------------*
*& 版本/修改者(公司)/日期//修改描述
*&
*&
*&---------------------------------------------------------------------*
REPORT zrpfi_import_asset MESSAGE-ID 00.
************************************************************************
* INCLUDES
************************************************************************
INCLUDE zrpfi_009_top. "Defination
INCLUDE zrpfi_009_scr. "Selection Screen
INCLUDE zrpfi_009_f01. "Subroutine for processing
INCLUDE zrpfi_009_f02. "Subroutine for processing
************************************************************************
* INITIALIZATION
************************************************************************
INITIALIZATION.
PERFORM frm_init_screen.
************************************************************************
* AT SELECTION-SCREEN OUTPUT
************************************************************************
************************************************************************
* AT SELECTION-SCREEN on value-request
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fpath.
PERFORM frm_get_filepath CHANGING p_fpath.
************************************************************************
* AT SELECTION-SCREEN
************************************************************************
AT SELECTION-SCREEN.
CASE sscrfields-ucomm.
WHEN 'FC01'.
PERFORM frm_download_temp USING 'ZFICO_009_DN' TEXT-004.
WHEN 'FC02'.
PERFORM frm_download_temp USING 'ZFICO_009_WN' TEXT-005.
ENDCASE.
AT SELECTION-SCREEN OUTPUT .
LOOP AT SCREEN.
IF screen-group1 EQ 'G1'.
IF r_wn = 'X'.
screen-active = 1.
ELSE.
screen-active = 0.
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP .
************************************************************************
* START-OF-SELECTION
************************************************************************
START-OF-SELECTION.
*--- Main process
PERFORM frm_upload_file.
PERFORM frm_check_data.
PERFORM frm_create_asset.
PERFORM frm_output_log.
*
************************************************************************
* END-OF-SELECTION
************************************************************************
*&---------------------------------------------------------------------*
*& 包含 ZRPFI_009_TOP
*&---------------------------------------------------------------------*
************************************************************************
* TYPE POOLS
************************************************************************
TYPE-POOLS ICON.
************************************************************************
* TABLES
************************************************************************
TABLES SSCRFIELDS.
************************************************************************
* TYPES
************************************************************************
*--- 当年模板
TYPES: BEGIN OF TY_XLSX_DN,
*General data
ASSETCLASS TYPE BAPI1022_FEGLG001-ASSETCLASS, "资产分类
COMPANYCODE TYPE BAPI1022_KEY-COMPANYCODE, "公司代码
DESCRIPT TYPE BAPI1022_FEGLG001-DESCRIPT, "资产描述
DESCRIPT2 TYPE BAPI1022_FEGLG001-DESCRIPT2, "附加资产描述
MAIN_DESCRIPT TYPE BAPI1022_FEGLG001-MAIN_DESCRIPT, "资产主号文本
SERIAL_NO TYPE BAPI1022_FEGLG001-SERIAL_NO, "序列号
INVENT_NO TYPE BAPI1022_FEGLG001-INVENT_NO, "存货号
* quantity TYPE bapi1022_feglg001-quantity, "数量
BASE_UOM TYPE BAPI1022_FEGLG001-BASE_UOM, "基本计量单位
*记帐信息
CAP_DATE TYPE BAPI1022_FEGLG002-CAP_DATE, "资本化日期
*时间相关的数据
COSTCENTER TYPE BAPI1022_FEGLG003-COSTCENTER, "成本中心
*-------------------------------------增加字段-ZHANGZG-2022.07.21
PLANT TYPE BAPI1022_FEGLG003-PLANT, "工厂
*-------------------------------------增加字段-ZHANGZG-2022.07.21
LOCATION TYPE BAPI1022_FEGLG003-LOCATION, "位置
ROOM TYPE BAPI1022_FEGLG003-ROOM, "房间
*-------------------------------------增加字段-ZHANGZG-2022.07.21
*库存
NOTE TYPE BAPI1022_FEGLG011-NOTE, "库存注释
*分配
EVALGROUP1 TYPE BAPI1022_FEGLG004-EVALGROUP1, "在建工程分类
*-------------------------------------增加字段-ZHANGZG-2022.07.21
*Origin-源数据
VENDOR TYPE BAPI1022_FEGLG009-VENDOR, "供应商
MANUFACTURER TYPE BAPI1022_FEGLG009-MANUFACTURER, "制造商
*折旧数据
AREA TYPE BAPI1022_DEP_AREAS-AREA, "实际折旧范围
DEP_KEY TYPE BAPI1022_DEP_AREAS-DEP_KEY, "折旧码
ULIFE_YRS TYPE BAPI1022_DEP_AREAS-ULIFE_YRS, "使用年
ULIFE_PRDS TYPE BAPI1022_DEP_AREAS-ULIFE_PRDS, "使用月
EXP_ULIFE_YRS TYPE BAPI1022_DEP_AREAS-EXP_ULIFE_YRS, "已过期年
EXP_ULIFE_PRDS TYPE BAPI1022_DEP_AREAS-EXP_ULIFE_PRDS, "折旧码
*Transactions for Transfer during Fiscal Year
AMOUNT TYPE BAPI1022_TRTYPE-AMOUNT, "累积购置和生产成本
*Posted values
ORD_DEP TYPE BAPI1022_POSTVAL-ORD_DEP, "本年度折旧
"---------------------------20231128 添加新字段----------------------------
RESP_CCTR TYPE BAPI1022_FEGLG003-RESP_CCTR, "责任成本中心
PLATE_NO TYPE BAPI1022_FEGLG003-PLATE_NO, "保管人
EVALGROUP2 TYPE BAPI1022_FEGLG004-EVALGROUP2, "海外资产分类
EVALGROUP3 TYPE BAPI1022_FEGLG004-EVALGROUP3, "资产状态
"--------------------------end-------------------------------------
"20231130 ADD---------------------------------
" AMOUNT_JT TYPE BAPI1022_TRTYPE-AMOUNT, "累积购置和生产成本
*Posted values
ORD_DEP_JT TYPE BAPI1022_POSTVAL-ORD_DEP, "本年度折旧
"END
END OF TY_XLSX_DN.
*--- 往年模板
TYPES: BEGIN OF TY_XLSX_WN,
*General data
ASSETCLASS TYPE BAPI1022_FEGLG001-ASSETCLASS, "资产分类
COMPANYCODE TYPE BAPI1022_KEY-COMPANYCODE, "公司代码
DESCRIPT TYPE BAPI1022_FEGLG001-DESCRIPT, "资产描述
DESCRIPT2 TYPE BAPI1022_FEGLG001-DESCRIPT2, "附加资产描述
MAIN_DESCRIPT TYPE BAPI1022_FEGLG001-MAIN_DESCRIPT, "资产主号文本
SERIAL_NO TYPE BAPI1022_FEGLG001-SERIAL_NO, "序列号
INVENT_NO TYPE BAPI1022_FEGLG001-INVENT_NO, "存货号
* quantity TYPE bapi1022_feglg001-quantity, "数量
BASE_UOM TYPE BAPI1022_FEGLG001-BASE_UOM, "基本计量单位
*记帐信息
CAP_DATE TYPE BAPI1022_FEGLG002-CAP_DATE, "资本化日期
*时间相关的数据
COSTCENTER TYPE BAPI1022_FEGLG003-COSTCENTER, "成本中心
*-------------------------------------增加字段-ZHANGZG-2022.07.21
PLANT TYPE BAPI1022_FEGLG003-PLANT, "工厂
*-------------------------------------增加字段-ZHANGZG-2022.07.21
LOCATION TYPE BAPI1022_FEGLG003-LOCATION, "位置
ROOM TYPE BAPI1022_FEGLG003-ROOM, "房间
*-------------------------------------增加字段-ZHANGZG-2022.07.21
*库存
NOTE TYPE BAPI1022_FEGLG011-NOTE, "库存注释
*分配
EVALGROUP1 TYPE BAPI1022_FEGLG004-EVALGROUP1, "在建工程分类
*-------------------------------------增加字段-ZHANGZG-2022.07.21
*Origin-源数据
VENDOR TYPE BAPI1022_FEGLG009-VENDOR, "供应商
MANUFACTURER TYPE BAPI1022_FEGLG009-MANUFACTURER, "制造商
*折旧数据
AREA TYPE BAPI1022_DEP_AREAS-AREA, "实际折旧范围
DEP_KEY TYPE BAPI1022_DEP_AREAS-DEP_KEY, "折旧码
ULIFE_YRS TYPE BAPI1022_DEP_AREAS-ULIFE_YRS, "使用年
ULIFE_PRDS TYPE BAPI1022_DEP_AREAS-ULIFE_PRDS, "使用月
EXP_ULIFE_YRS TYPE BAPI1022_DEP_AREAS-EXP_ULIFE_YRS, "已过期年
EXP_ULIFE_PRDS TYPE BAPI1022_DEP_AREAS-EXP_ULIFE_PRDS, "折旧码
*Cumulative Values
ACQ_VALUE TYPE BAPI1022_CUMVAL-ACQ_VALUE, "累积购置价值
REV_REPL TYPE BAPI1022_CUMVAL-REV_REPL, "减值准备
ORD_DEP2 TYPE BAPI1022_CUMVAL-ORD_DEP, "累积普通折旧
*Posted values
ORD_DEP TYPE BAPI1022_POSTVAL-ORD_DEP, "本年度折旧
"---------------------------20231128 添加新字段----------------------------
RESP_CCTR TYPE BAPI1022_FEGLG003-RESP_CCTR, "责任成本中心
PLATE_NO TYPE BAPI1022_FEGLG003-PLATE_NO, "保管人
EVALGROUP2 TYPE BAPI1022_FEGLG004-EVALGROUP2, "海外资产分类
EVALGROUP3 TYPE BAPI1022_FEGLG004-EVALGROUP3, "资产状态
"--------------------------end-------------------------------------
"begin 20231130 add
ACQ_VALUE_JT TYPE BAPI1022_CUMVAL-ACQ_VALUE, "累积购置价值
REV_REPL_JT TYPE BAPI1022_CUMVAL-REV_REPL, "减值准备
ORD_DEP2_JT TYPE BAPI1022_CUMVAL-ORD_DEP, "累积普通折旧
ORD_DEP_JT TYPE BAPI1022_POSTVAL-ORD_DEP, "本年度折旧
"end
END OF TY_XLSX_WN.
************************************************************************
* DATA DEFINITION
************************************************************************
DATA: FUNCTXT TYPE SMP_DYNTXT.
DATA: GT_XLSX_DN TYPE TABLE OF TY_XLSX_DN, "当年数据-excel file
GS_XLSX_DN TYPE TY_XLSX_DN.
DATA: GT_XLSX_WN TYPE TABLE OF TY_XLSX_WN, "往年数据-excel file
GS_XLSX_WN TYPE TY_XLSX_WN.
*--- 当年数据 - outlog
DATA: BEGIN OF GS_OUTLOG.
DATA: CHBOX TYPE C,
ZICON TYPE ICON_D,
ZXLH TYPE I,
ZMESG TYPE BAPI_MSG,
ANLN1 TYPE ANLA-ANLN1,
ANLN2 TYPE ANLA-ANLN2.
INCLUDE STRUCTURE GS_XLSX_DN.
DATA END OF GS_OUTLOG.
DATA: GT_OUTLOG LIKE TABLE OF GS_OUTLOG.
*---往年数据 - Outlog
DATA: BEGIN OF GS_OUTLOG_WN.
DATA: CHBOX TYPE C,
ZICON TYPE ICON_D,
ZXLH TYPE I,
ZMESG TYPE BAPI_MSG,
ANLN1 TYPE ANLA-ANLN1,
ANLN2 TYPE ANLA-ANLN2.
INCLUDE STRUCTURE GS_XLSX_WN.
DATA: END OF GS_OUTLOG_WN.
DATA: GT_OUTLOG_WN LIKE TABLE OF GS_OUTLOG_WN.
DATA: GV_E_FLAG TYPE C , "是否错误的flag
GV_TEST TYPE C. "测试运行变量
************************************************************************
* OO ALV Definition
************************************************************************
DATA: G_COL_POS TYPE I, "ALV列位置
G_INDEX TYPE I. "序号
DATA: GS_LAYOUT TYPE LVC_S_LAYO. "ALV layout
DATA: GT_FIELDCAT TYPE LVC_T_FCAT. "ALV fieldcat
*&---------------------------------------------------------------------*
*& 包含 ZRPFI_009_SCR
*&---------------------------------------------------------------------*
*--- Function selection
SELECTION-SCREEN BEGIN OF BLOCK b_01 WITH FRAME TITLE TEXT-001.
PARAMETERS: r_dn TYPE c RADIOBUTTON GROUP rg1
DEFAULT 'X'
USER-COMMAND cmd1.
PARAMETERS: r_wn TYPE c RADIOBUTTON GROUP rg1.
SELECTION-SCREEN ULINE.
PARAMETERS: r_qz MODIF ID g1 RADIOBUTTON GROUP gp1.
PARAMETERS: r_qm MODIF ID g1 RADIOBUTTON GROUP gp1.
SELECTION-SCREEN END OF BLOCK b_01.
SELECTION-SCREEN BEGIN OF BLOCK b_02 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_fpath TYPE rlgrap-filename MEMORY ID m1. "string
PARAMETERS: c_test TYPE c AS CHECKBOX&nb
