BAPI_FIXEDASSET_OVRTAKE_CREATE 固定资产批导(历史遗留、折旧)
导语:最近在做固定资产批导,使用到BAPI:【BAPI_FIXEDASSET_OVRTAKE_CREATE】,做个记录,批导模板的字段是wa_excel这个结构的全部字段。
选择屏幕
代码
*&---------------------------------------------------------------------*
*& Report ZFIR003A
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zfir003a MESSAGE-ID zsfi.TYPE-POOLS:slis."加载需要表
TABLES: anlb."Excel上传标准内表
DATA: BEGIN OF iexcel OCCURS 0.INCLUDE STRUCTURE alsmex_tabline.
DATA: END OF iexcel.TABLES sscrfields. "定义按钮
DATA: ls_textfield LIKE smp_dyntxt.
"导入Excel转换后内表格式
DATA: BEGIN OF wa_excel,assetclass LIKE bapi1022_feglg001-assetclass, "资产分类companycode LIKE bapi1022_key-companycode, "公司代码descript LIKE bapi1022_feglg001-descript, "资产描述descript2 LIKE bapi1022_feglg001-descript2, "附加资产描述main_descript LIKE bapi1022_feglg001-main_descript, "资产主号说明serial_no LIKE bapi1022_feglg001-serial_no, "序列号invent_no LIKE bapi1022_feglg001-invent_no, "存货号quantity LIKE bapi1022_feglg001-quantity, "数量base_uom LIKE bapi1022_feglg001-base_uom, "基本计量单位cap_date LIKE bapi1022_feglg002-cap_date, "资产资本化日期costcenter LIKE bapi1022_feglg003-costcenter, "成本中心resp_cctr LIKE bapi1022_feglg003-resp_cctr, "归口成本中心plant LIKE bapi1022_feglg003-plant, "工厂
* room LIKE bapi1022_feglg003-room, "房间vendor LIKE bapi1022_feglg009-vendor, "供应商描述
* area LIKE bapi1022_dep_areas-area, "折旧范围dep_key LIKE bapi1022_dep_areas-dep_key, "折旧码ulife_yrs LIKE bapi1022_dep_areas-ulife_yrs, "使用年限ulife_prds LIKE bapi1022_dep_areas-ulife_prds, "期间exp_ulife_yrs LIKE bapi1022_dep_areas-exp_ulife_yrs, "在财会年度开始时到期的有用年限exp_ulife_prds LIKE bapi1022_dep_areas-exp_ulife_prds, "会计年起始时到期使用期限acq_value LIKE bapi1022_cumval-acq_value, "原值l_ord_dep LIKE bapi1022_cumval-ord_dep, "累计折旧m_ord_dep LIKE bapi1022_postval-ord_dep, "本年折旧scrapvalue LIKE bapi1022_dep_areas-scrapvalue, "资产残值
* area1 LIKE bapi1022_dep_areas-area, "折旧范围dep_key1 LIKE bapi1022_dep_areas-dep_key, "折旧码ulife_yrs1 LIKE bapi1022_dep_areas-ulife_yrs, "使用年限ulife_prds1 LIKE bapi1022_dep_areas-ulife_prds, "期间exp_ulife_yrs1 LIKE bapi1022_dep_areas-exp_ulife_yrs, "在财会年度开始时到期的有用年限exp_ulife_prds1 LIKE bapi1022_dep_areas-exp_ulife_prds, "会计年起始时到期使用期限acq_value1 LIKE bapi1022_cumval-acq_value, "原值l_ord_dep1 LIKE bapi1022_cumval-ord_dep, "累计折旧m_ord_dep1 LIKE bapi1022_postval-ord_dep, "本年折旧scrapvalue1 LIKE bapi1022_dep_areas-scrapvalue, "资产残ord41 LIKE anla-ord41, "评审小组1ord42 LIKE anla-ord42, "评审小组2intern_ord LIKE bapi1022_feglg003-intern_ord, "内部订单wbs_element_cost LIKE bapi1022_feglg003-wbs_element_cost, "内部订单zccwz LIKE anlu-zccwz, "位置END OF wa_excel,it_excel LIKE STANDARD TABLE OF wa_excel."以下定义BAPI导入结构
DATA: key LIKE bapi1022_key, "要创建的关键字字段(公司代码、主资产号)generaldata LIKE bapi1022_feglg001, "资产通用数据generaldatax LIKE bapi1022_feglg001x, "资产通用数据确定postinginformation LIKE bapi1022_feglg002, "过帐数据postinginformationx LIKE bapi1022_feglg002x, "过帐数据确定timedependentdata LIKE bapi1022_feglg003, "资产时间相关数据timedependentdatax LIKE bapi1022_feglg003x, "资产时间相关数据确定origin LIKE bapi1022_feglg009, "来源数据originx LIKE bapi1022_feglg009x, "来源数据确定allocations LIKE bapi1022_feglg004,allocationsx LIKE bapi1022_feglg004x.
"以下定义BAPI导入内表
DATA: depreciationareas LIKE STANDARD TABLE OF bapi1022_dep_areas, "资产折旧信息wa_depreciationareas LIKE bapi1022_dep_areas, "资产折旧信息depreciationareasx LIKE STANDARD TABLE OF bapi1022_dep_areasx, "资产折旧住处确定wa_depreciationareasx LIKE bapi1022_dep_areasx, "资产折旧住处确定cumulatedvalues LIKE STANDARD TABLE OF bapi1022_cumval, "往年折旧计算值wa_cumulatedvalues LIKE bapi1022_cumval, "往年折旧计算值postedvalues LIKE STANDARD TABLE OF bapi1022_postval, "当年折旧计算值wa_postedvalues LIKE bapi1022_postval, "当年折旧计算值transactions LIKE STANDARD TABLE OF bapi1022_trtype, "当年折旧金额wa_transactions LIKE bapi1022_trtype, "当年折旧金额wa_extensionin TYPE bapiparex , "增强字段extensionin LIKE STANDARD TABLE OF bapiparex . "增强字段
DATA: ls_te_anlu TYPE bapi_te_anlu.
"以下定义BAPI导入时的输出结果
DATA: return LIKE STANDARD TABLE OF bapiret2,wa_return LIKE bapiret2,companycode LIKE bapi1022_1-comp_code,asset LIKE bapi1022_1-assetmaino,subnumber LIKE bapi1022_1-assetsubno."定义消息输出内表
DATA: BEGIN OF wa_tab,assetclass LIKE bapi1022_feglg001-assetclass, "资产分类companycode LIKE bapi1022_key-companycode, "公司代码asset LIKE bapi1022_1-assetmaino,subnumber LIKE bapi1022_1-assetsubno,invent_no LIKE bapi1022_feglg001-invent_no,descript LIKE bapi1022_feglg001-descript, "资产描述type LIKE bapiret2-type,id LIKE bapiret2-id,number LIKE bapiret2-number,message LIKE bapiret2-message,END OF wa_tab,it_tab LIKE STANDARD TABLE OF wa_tab."定义ALV输出所需变量
DATA: fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE, " 定义 ALV的有关数据layout TYPE slis_layout_alv, " 定义 ALV的有关数据ivariant LIKE disvariant, " 定义 ALV的有关数据i_repid LIKE sy-repid. " 定义 ALV的有关数据DATA:g_file TYPE sapb-sappfad.* 处理Tab分割符
CLASS cl_abap_char_utilities DEFINITION LOAD.
CONSTANTS: c_tab TYPE c VALUE cl_abap_char_utilities=>horizontal_tab."定义临时变量
DATA msg TYPE string."导入文件选择
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE TEXT-001.
*PARAMETERS: P_FNAME LIKE RLGRAP-FILENAME MEMORY ID M01 OBLIGATORY. " 获取文件路径PARAMETERS: p_file TYPE localfile .
SELECTION-SCREEN END OF BLOCK 1."附加条件选择
SELECTION-SCREEN BEGIN OF BLOCK 2 WITH FRAME TITLE TEXT-002.PARAMETERS: p_ly TYPE gjahr OBLIGATORY,p_my TYPE gjahr OBLIGATORY,p_vd TYPE bf_bzdat.SELECT-OPTIONS: dep_area FOR anlb-afabe NO INTERVALS.
SELECTION-SCREEN END OF BLOCK 2."其它附加条件选择
SELECTION-SCREEN BEGIN OF BLOCK 3 WITH FRAME TITLE TEXT-003.PARAMETERS: r_l TYPE c RADIOBUTTON GROUP r1,r_m TYPE c RADIOBUTTON GROUP r1.PARAMETERS: tr AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK 3.
SELECTION-SCREEN FUNCTION KEY 1.
*
*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_FILE.
*PERFORM get_p_fname. " 把需要导入的文件的路径 存放在P_name 中AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
* Get file full name using dialogCALL FUNCTION 'KD_GET_FILENAME_ON_F4'EXPORTINGmask = p_filestatic = ' 'CHANGINGfile_name = p_file.INITIALIZATION.ls_textfield-icon_id = '@EZ@'.ls_textfield-icon_text = TEXT-004. "下载导数模板sscrfields-functxt_01 = ls_textfield."自动计算本年与往年*AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
* Get file full name using dialog
* CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
* EXPORTING
* mask = p_file
* static = ' '
* CHANGING
* file_name = p_file.
AT SELECTION-SCREEN.PERFORM frm_download_mod.START-OF-SELECTION.MOVE sy-datum+0(4) TO p_my.
* p_ly = p_my - 1.PERFORM frm_check.* PERFORM FORM_UPLOAD. "通过路径 把EXCEL中的数据导入到 内表iexcel中PERFORM upload_file USING p_file CHANGING it_excel[].PERFORM frm_bapi_ext. "执行BAPI,并输出结果信息PERFORM frm_alv. "结果输出显示*FORM get_p_fname. " 获取文件路径
* CALL FUNCTION 'WS_FILENAME_GET'
* EXPORTING
* mask = ',Excel Files,*.xls,All Files,*.csv,*.*.'
* title = '请选择要导入的文件'
* IMPORTING
* filename = p_fILE
* EXCEPTIONS
* inv_winsys = 1
* no_batch = 2
* selection_cancel = 3
* selection_error = 4
* OTHERS = 5.
* IF sy-subrc <> 0 AND sy-subrc <> 3.
* MESSAGE e100(zdev) WITH 'error'(007).
* ENDIF.
*ENDFORM.
*---------------------------------------------------------------------*
FORM upload_file USING in_file TYPE localfileCHANGING data_tab TYPE STANDARD TABLE.DATA: lt_excel TYPE TABLE OF alsmex_tabline WITH HEADER LINE.FIELD-SYMBOLS: <fs_val>.CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'EXPORTINGfilename = p_filei_begin_col = '2' "从第一列开始i_begin_row = '3' "从第二行开始i_end_col = '50'i_end_row = '50000'TABLESintern = lt_excelEXCEPTIONSinconsistent_parameters = 1upload_ole = 2OTHERS = 3.LOOP AT lt_excel.CONDENSE lt_excel-value.ASSIGN COMPONENT lt_excel-col OF STRUCTURE wa_excel TO <fs_val>.<fs_val> = lt_excel-value.AT END OF row.APPEND wa_excel TO data_tab.CLEAR wa_excel.ENDAT.ENDLOOP.* DATA: l_filetype TYPE char10.
* DATA: l_file TYPE string.
* DATA: l_itab TYPE STANDARD TABLE OF itab.
*
** cl_gui_frontend_services=>gui_upload will call GUI_UPLOAD function
** in which the filename parameter is of type String
** so we need to convert
* l_file = in_file.
*
* CALL METHOD cl_gui_frontend_services=>gui_upload
* EXPORTING
* filename = l_file " upload file
* filetype = 'ASC'
* has_field_separator = c_tab " Has separator
* CHANGING
* data_tab = data_tab " import to this intenal table
* EXCEPTIONS
* file_open_error = 1
* file_read_error = 2
* invalid_type = 3
* no_batch = 4
* unknown_error = 5
* OTHERS = 6.
*
* IF sy-subrc <> 0.
* MESSAGE e001 WITH '文件上传出错.'.
*
* ENDIF.ENDFORM.FORM frm_alv.PERFORM fieldcat_init.layout-colwidth_optimize = 'X'. "设置自动调整列宽layout-zebra = 'X'. " 设置相邻行颜色不同 这样便于观看i_repid = sy-repid.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGi_callback_program = i_repidit_fieldcat = fieldcat[]is_variant = ivariantis_layout = layoutTABLESt_outtab = it_tabEXCEPTIONSprogram_error = 1OTHERS = 2.
ENDFORM.FORM fieldcat_init.PERFORM frm_catlg_set USING:'ASSETCLASS' '资产分类', " '' 里面的字母需要大写'COMPANYCODE' '公司代码','ASSET' '资产编码','SUBNUMBER' '资产子编码','INVENT_NO' '存货号','DESCRIPT' '资产描述','TYPE' '消息类型','ID' '消息ID','NUMBER' '消息编码','MESSAGE' '消息文本'.ENDFORM.FORM frm_catlg_set USING p_field p_text.DATA: temp_fieldcat TYPE slis_fieldcat_alv.temp_fieldcat-fieldname = p_field.temp_fieldcat-seltext_l = p_text.APPEND temp_fieldcat TO fieldcat.CLEAR temp_fieldcat.
ENDFORM.*&---------------------------------------------------------------------*
*& Form FRM_BAPI_EXT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_bapi_ext ."循环内表数据,准备导入LOOP AT it_excel INTO wa_excel."输出处理信息msg = sy-tabix.CONCATENATE TEXT-s03 msg TEXT-s04 INTO msg."处理数据提示CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'EXPORTINGtext = msg."处理关键值数据key-companycode = wa_excel-companycode."对资产类增加前导0CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'EXPORTINGinput = wa_excel-assetclassIMPORTINGoutput = generaldata-assetclass."处理一般数据
* GENERALDATA-ASSETCLASS = WA_EXCEL-ASSETCLASS.generaldata-descript = wa_excel-descript.generaldata-descript2 = wa_excel-descript2.generaldata-main_descript = wa_excel-main_descript.generaldata-serial_no = wa_excel-serial_no.generaldata-invent_no = wa_excel-invent_no.generaldata-quantity = wa_excel-quantity.generaldata-base_uom = wa_excel-base_uom.generaldatax-assetclass = 'X'.generaldatax-descript = 'X'.generaldatax-descript2 = 'X'.generaldatax-main_descript = 'X'.generaldatax-serial_no = 'X'.generaldatax-invent_no = 'X'.generaldatax-quantity = 'X'.generaldatax-base_uom = 'X'."处理过帐数据postinginformation-cap_date = wa_excel-cap_date.postinginformationx-cap_date = 'X'."成本中心数据timedependentdata-costcenter = wa_excel-costcenter.timedependentdata-resp_cctr = wa_excel-resp_cctr.timedependentdata-plant = wa_excel-plant.timedependentdata-intern_ord = wa_excel-intern_ord.timedependentdata-wbs_element_cost = wa_excel-wbs_element_cost.
* timedependentdata-room = wa_excel-room.timedependentdatax-costcenter = 'X'.timedependentdatax-resp_cctr = 'X'.timedependentdatax-plant = 'X'.timedependentdatax-intern_ord = 'X'.timedependentdatax-wbs_element_cost = 'X'.
* timedependentdatax-room = 'X'."处理供应商数据origin-vendor = wa_excel-vendor.originx-vendor = 'X'."循环处理折旧范围数据
* LOOP AT dep_area."增加折旧范围数据wa_depreciationareas-area = '01'.wa_depreciationareas-dep_key = wa_excel-dep_key.wa_depreciationareas-ulife_yrs = wa_excel-ulife_yrs.wa_depreciationareas-ulife_prds = wa_excel-ulife_prds.wa_depreciationareas-exp_ulife_yrs = wa_excel-exp_ulife_yrs.wa_depreciationareas-exp_ulife_prds = wa_excel-exp_ulife_prds.wa_depreciationareas-scrapvalue = wa_excel-scrapvalue.wa_depreciationareasx-area = '01'.wa_depreciationareasx-dep_key = 'X'.wa_depreciationareasx-ulife_yrs = 'X'.wa_depreciationareasx-ulife_prds = 'X'.wa_depreciationareasx-exp_ulife_yrs = 'X'.wa_depreciationareasx-exp_ulife_prds = 'X'.wa_depreciationareasx-scrapvalue = 'X'.APPEND wa_depreciationareas TO depreciationareas.APPEND wa_depreciationareasx TO depreciationareasx."处理资产价值接管数据IF r_l = 'X'. "处理往年数据"增加累计折旧wa_cumulatedvalues-fisc_year = p_ly.wa_cumulatedvalues-area = '01'.wa_cumulatedvalues-acq_value = wa_excel-acq_value.wa_cumulatedvalues-ord_dep = wa_excel-l_ord_dep.APPEND wa_cumulatedvalues TO cumulatedvalues."增加正常折旧wa_postedvalues-fisc_year = p_my.wa_postedvalues-area = '01'.wa_postedvalues-ord_dep = wa_excel-m_ord_dep.APPEND wa_postedvalues TO postedvalues.ELSE. "处理当年数据"增加正常折旧wa_postedvalues-fisc_year = p_my.wa_postedvalues-area = '01'.wa_postedvalues-ord_dep = wa_excel-m_ord_dep.APPEND wa_postedvalues TO postedvalues."增加购置价值wa_transactions-fisc_year = p_my.wa_transactions-area = '01'.wa_transactions-current_no = sy-tabix.wa_transactions-valuedate = p_vd.wa_transactions-assettrtyp = '100'.wa_transactions-amount = wa_excel-acq_value.APPEND wa_transactions TO transactions.ENDIF."清空结构体中的数据CLEAR: wa_depreciationareas,wa_depreciationareasx,wa_cumulatedvalues,wa_postedvalues,wa_transactions.
* ENDLOOP.wa_depreciationareas-area = '80'.wa_depreciationareas-dep_key = wa_excel-dep_key1.wa_depreciationareas-ulife_yrs = wa_excel-ulife_yrs1.wa_depreciationareas-ulife_prds = wa_excel-ulife_prds1.wa_depreciationareas-exp_ulife_yrs = wa_excel-exp_ulife_yrs1.wa_depreciationareas-exp_ulife_prds = wa_excel-exp_ulife_prds1.wa_depreciationareas-scrapvalue = wa_excel-scrapvalue1.wa_depreciationareasx-area = '80'.wa_depreciationareasx-dep_key = 'X'.wa_depreciationareasx-ulife_yrs = 'X'.wa_depreciationareasx-ulife_prds = 'X'.wa_depreciationareasx-exp_ulife_yrs = 'X'.wa_depreciationareasx-exp_ulife_prds = 'X'.wa_depreciationareasx-scrapvalue = 'X'.APPEND wa_depreciationareas TO depreciationareas.APPEND wa_depreciationareasx TO depreciationareasx.CLEAR :allocationsx,allocations.allocations-evalgroup1 = wa_excel-ord41.allocations-evalgroup2 = wa_excel-ord42.allocationsx-evalgroup1 = 'X'.allocationsx-evalgroup2 = 'X'."处理资产价值接管数据IF r_l = 'X'. "处理往年数据"增加累计折旧wa_cumulatedvalues-fisc_year = p_ly.wa_cumulatedvalues-area = '80'.wa_cumulatedvalues-acq_value = wa_excel-acq_value1.wa_cumulatedvalues-ord_dep = wa_excel-l_ord_dep1.APPEND wa_cumulatedvalues TO cumulatedvalues."增加正常折旧wa_postedvalues-fisc_year = p_my.wa_postedvalues-area = '80'.wa_postedvalues-ord_dep = wa_excel-m_ord_dep1.APPEND wa_postedvalues TO postedvalues.ELSE. "处理当年数据"增加正常折旧wa_postedvalues-fisc_year = p_my.wa_postedvalues-area = '80'.wa_postedvalues-ord_dep = wa_excel-m_ord_dep1.APPEND wa_postedvalues TO postedvalues."增加购置价值wa_transactions-fisc_year = p_my.wa_transactions-area = '80'.wa_transactions-current_no = sy-tabix.wa_transactions-valuedate = p_vd.wa_transactions-assettrtyp = '100'.wa_transactions-amount = wa_excel-acq_value1.APPEND wa_transactions TO transactions.ENDIF.ls_te_anlu-comp_code = wa_excel-companycode.
* ls_te_anlu-assetmaino = wa_excel-anln1.ls_te_anlu-assetsubno = '0000'.ls_te_anlu-zccwz = wa_excel-zccwz.wa_extensionin-structure = 'BAPI_TE_ANLU'.wa_extensionin-valuepart1 = ls_te_anlu.APPEND wa_extensionin TO extensionin."清空结构体中的数据CLEAR: wa_depreciationareas,wa_depreciationareasx,wa_cumulatedvalues,wa_postedvalues,wa_transactions."调用系统标准BAPICALL FUNCTION 'BAPI_FIXEDASSET_OVRTAKE_CREATE'EXPORTINGkey = key
* REFERENCE =
* CREATESUBNUMBER =
* CREATEGROUPASSET =testrun = trgeneraldata = generaldatageneraldatax = generaldatax
* INVENTORY =
* INVENTORYX =postinginformation = postinginformationpostinginformationx = postinginformationxtimedependentdata = timedependentdatatimedependentdatax = timedependentdataxallocations = allocationsallocationsx = allocationsxorigin = originoriginx = originx
* INVESTACCTASSIGNMNT =
* INVESTACCTASSIGNMNTX =
* NETWORTHVALUATION =
* NETWORTHVALUATIONX =
* REALESTATE =
* REALESTATEX =
* INSURANCE =
* INSURANCEX =
* LEASING =
* LEASINGX =IMPORTINGcompanycode = companycodeasset = assetsubnumber = subnumber
* ASSETCREATED =TABLESdepreciationareas = depreciationareasdepreciationareasx = depreciationareasx
* INVESTMENT_SUPPORT =extensionin = extensionincumulatedvalues = cumulatedvaluespostedvalues = postedvaluestransactions = transactions
* PROPORTIONALVALUES =return = return."提交作业COMMIT WORK."处理输出消息wa_tab-assetclass = wa_excel-assetclass.wa_tab-companycode = wa_excel-companycode.wa_tab-asset = asset.wa_tab-subnumber = subnumber.wa_tab-invent_no = wa_excel-invent_no.wa_tab-descript = wa_excel-descript.READ TABLE return INTO wa_return INDEX 1.IF sy-subrc = 0.wa_tab-type = wa_return-type.wa_tab-id = wa_return-id.wa_tab-number = wa_return-number.wa_tab-message = wa_return-message.ENDIF.APPEND wa_tab TO it_tab."清空所有临时数据CLEAR: wa_excel,generaldata,generaldatax,postinginformation,postinginformationx,timedependentdata,timedependentdatax,origin,originx,depreciationareas,depreciationareasx,cumulatedvalues,postedvalues,transactions,return,wa_return,wa_tab.ENDLOOP.
ENDFORM.*&---------------------------------------------------------------------*
*& Form FRM_CHECK
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM frm_check ."当如果为本年时,参考日期为必输IF r_m = 'X'.IF p_vd IS INITIAL.MESSAGE TEXT-m02 TYPE 'I'.STOP.ENDIF.ENDIF.
ENDFORM.FORM frm_get_excel_templet USING objid filename.DATA i_objid TYPE string VALUE ''. "模板对象名DATA is_back_run. " "是否显示路径选择DATA c_destination TYPE string VALUE 'D:\'. " 路径DATA i_filename TYPE string VALUE ''. "模板的EXCEL文件名DATA: l_objdata TYPE wwwdatatab, "查找Web资源对象关键字l_rc LIKE sy-subrc,lc_filename_temp TYPE string,lc_fullpath TYPE string VALUE '',lc_path TYPE string VALUE '',ls_destination TYPE rlgrap-filename."取得对应的模板,并判断是否存在i_objid = objid.i_filename = filename.SELECT SINGLE relid objid FROM wwwdata INTO CORRESPONDING FIELDS OF l_objdata WHERE srtf2 = 0 AND relid = 'HT' AND objid = i_objid.IF sy-subrc NE 0 AND l_objdata-objid EQ space.MESSAGE '没有找到相应的模板!' TYPE 'S' DISPLAY LIKE 'E'.STOP.
* EXIT.ENDIF.IF is_back_run = 'X'.CONCATENATE c_destination '\' i_filename '.xls' INTO lc_fullpath.ELSE."用户选择对应的路径lc_filename_temp = i_filename.CALL METHOD cl_gui_frontend_services=>file_save_dialogEXPORTINGdefault_extension = 'xls'default_file_name = i_filenameinitial_directory = c_destinationCHANGINGfilename = lc_filename_temppath = lc_pathfullpath = lc_fullpath.IF lc_fullpath EQ ''.MESSAGE '模板未能成功保存' TYPE 'S' DISPLAY LIKE 'E'.STOP.
* EXIT.ENDIF.ENDIF."如果模板存在,则下载到用户电脑本地ls_destination = lc_fullpath.CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'EXPORTINGkey = l_objdatadestination = ls_destinationIMPORTINGrc = l_rc."当l_rc不为0的时候表示对象不存在IF l_rc NE 0.MESSAGE '模板下载失败!' TYPE 'S' DISPLAY LIKE 'E'.STOP.
* EXIT.ENDIF.CLEAR: i_objid, "模板对象名i_filename, "模板的EXCEL文件名is_back_run, "是否显示路径选择c_destination. " 路径ENDFORM. "FRM_get_excel_templet
*&---------------------------------------------------------------------*
*& Form FRM_GET_FILEPATH
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_G_FILE text
*----------------------------------------------------------------------*
FORM frm_get_filepath USING p_l_str CHANGING p_file.CALL FUNCTION 'WS_FILENAME_GET'EXPORTINGdef_filename = p_l_str "def_path = p_filemask = ',*.xls,*.xls,*.xlsx,*.xlsx.'mode = 'S'title = '保存路径'IMPORTINGfilename = p_fileEXCEPTIONSinv_winsys = 1no_batch = 2selection_cancel = 3selection_error = 4OTHERS = 5.ENDFORM. "FRM_GET_FILEPATH
*&---------------------------------------------------------------------*
*& Form FRM_DOWNLOAD_EXCEL_FROMSERVER
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_L_TEMP text
* -->P_P_FILE text
* <--P_L_ERROR text
*----------------------------------------------------------------------*
FORM frm_download_excel_fromserver USING p_file LIKE sapb-sappfadp_temp.DATA:l_temp TYPE wwwdatatab-objid,lo_objdata LIKE wwwdatatab,lo_mime LIKE w3mime,ls_destination LIKE rlgrap-filename,ls_objnam TYPE string,li_rc LIKE sy-subrc,ls_errtxt TYPE string,l_error TYPE char255.CLEAR:l_temp,l_error,lo_objdata,ls_objnam.IF p_temp = '1'.l_temp = 'ZFIR003'.ENDIF.CONCATENATE l_temp '.XLS' INTO ls_objnam.SELECT SINGLE relid objid FROM wwwdataINTO CORRESPONDING FIELDS OF lo_objdataWHERE srtf2 = 0AND relid = 'MI'AND objid = l_temp.IF sy-subrc NE 0 OR lo_objdata-objid EQ space.CONCATENATE '模板文件:' ls_objnam '不存在,请用TCODE:SMW0进行加载' INTO l_error.MESSAGE e000(zre) WITH l_error.ENDIF.ls_destination = p_file.CALL FUNCTION 'DOWNLOAD_WEB_OBJECT'EXPORTINGkey = lo_objdatadestination = ls_destinationIMPORTINGrc = li_rc.IF li_rc NE 0.CONCATENATE '模板文件:' ls_objnam '下载失败' INTO l_error.MESSAGE e000(zre) WITH l_error.ENDIF.ENDFORM. " FRM_DOWNLOAD_EXCEL_FROMSERVER
*&---------------------------------------------------------------------*
*& Form frm_download_mod
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_download_mod .DATA:l_temp TYPE c,l_str TYPE string.CASE sscrfields-ucomm. " sy-dynnr sscrfields-ucommWHEN 'FC01'. " 该user command为系统规定CLEAR:g_file,l_temp,l_str."获取文件路径CONCATENATE '固定资产导入模板-' sy-datum INTO l_str.l_temp = '1'.PERFORM frm_get_filepath USING l_str CHANGING g_file."下载模板CHECK sy-subrc = 0 AND NOT g_file IS INITIAL.PERFORM frm_download_excel_fromserver USING g_file l_temp.ENDCASE.ENDFORM.
作者:小飞猪猪猪猪猪猪猪–CSDN
BAPI_FIXEDASSET_OVRTAKE_CREATE 固定资产批导(历史遗留、折旧)相关推荐
- SAP FICO 固定资产批导
AS01对应的BAPI:BAPI_FIXEDASSET_CREATE AS91对应的BAPI:BAPI_FIXEDASSET_OVRTAKE_CREATE AS01的固定资产的导入和AS91的区别是后 ...
- 一个历史遗留项目清理总结
2015年时我接了一个历史遗留项目,给甲方做办公文档加解密的系统.该项目是2011年承建的,由于各种各样的问题,一直没有验收,项目成员换了好几批.公司要做历史遗留项目清理,所以点名让我接手该项目. 我 ...
- 利用函数BAPI_PR_CREATE开发采购申请批导
项目中,期初采购申请批导也是必须的,下面代码是利用BAPI BAPI_PR_CREATE开发的采购申请批导函数,批导结果会保存在txt文本文件中,分享一下,希望对用到的兄弟有帮助. *& ...
- 金蝶旗舰版当期新增固定资产,当期就计提折旧
有些客户对当期新增的固定资产的做计提折旧时,会发现折旧额为0,出现这种情况的原因是折旧政策选项,如下图所示: 由于这是系统自带的,用户禁止修改,用户可以新增一个折旧政策方案,取消当期新增固定资产,当期 ...
- SAP ABAP 使用 ALSM_EXCEL_TO_INTERNAL_TABLE 批导/上载大数据量 Excel (2)
SAP ABAP 使用 ALSM_EXCEL_TO_INTERNAL_TABLE 批导/上载大数据量 Excel (2) 引言: 今时不同往日了,特别是在电商和零售行业中,动不动一个导入的 Excel ...
- SAP SAP 交货单批导三部走(带批次)
第一步 CALL FUNCTION 'BAPI_OUTB_DELIVERY_CREATE_SLS' 这个参数少,没有库位,批号信息 第二步 BADI 增强内部传值 第三步 修改交货单加上批次 源码: ...
- 解决企业数字化“历史遗留问题”,低代码具备天然优势 | 专访腾讯云微搭骆勤
据Gartner机构预测,到2025年,企业70%的新应用将会通过低代码或者无代码技术进行开发.还有数据显示,2020年中国的低市场规模已经达到19亿元,而到2024年,低代码市场将达到百亿量级. 左 ...
- 【android】gradle的applicationId的思考,历史遗留问题,千万要在项目构建前就确定好id名,避免后续的迭代导致问题
背景 由于历史原因 这个applicationId被改成大写的东西,一开始看真的好不习惯!!! 毕竟一开始都是小写的,这也是基本操作.历史遗留问题!! 不更改的原因 看到这么恶心的id,我想把它进行修 ...
- SAP ABAP EXCEL 下载模板并导入(数据批导)
SAP ABAP EXCEL 下载模板并导入(数据批导) 文章目录 SAP ABAP EXCEL 下载模板并导入(数据批导) 前言 上传 EXCEL 模板 下载 EXCEL 模板 定义屏幕 初始化设置 ...
- 如何应对HR小姐姐的千年历史遗留问题:你为什么从上家公司离职?
最近找我询问面试问题的学生比较多,而且问的问题基本上都是课堂上讲过的,好吧,在此心疼自己三秒钟. 那么今天就为各位宝宝们整理一下,如何优雅的回复HR小姐姐的这个千年历史遗留问题:你为什么从上家公司离职 ...
最新文章
- 你在数据预处理上花费的时间,是否比机器学习还要多?
- Java对象容器——对象数组
- python 多次匹配_Python学习记录14
- 20200702:最长公共子序列(leetcode1143)
- linux 父子进程 资源_从零开始学K8S(二):进程隔离让docker看起来像虚拟化
- 常见数据结构总结,持续更新...
- 常用jar包之commons-collection使用
- html怎么把字做成动画效果,用纯CSS实现文字的动态效果
- Keil升级到AC6后,到底有哪些变化?
- QT中文字体的显示方法
- 英语KOREITE寿山石koreite单词
- PNG图片转换word文档,不用下载软件,免费完成
- 基于ssm框架的校园订餐系统设计与实现毕业设计源码270912
- 第一个C跨平台工具whoport
- android接入淘宝广告,吐槽阿里百川文档:大家来找茬
- python小玩意——纸牌21点游戏
- 爱快软路由NAT-VMware-esxi-vsphere-虚拟机共享上网
- 关于Idea上面Resin部署的问题
- linux烟雾传感器程序,Linux嵌入式学习-烟雾传感器驱动-字符设备驱动-按键驱动...
- 二、科大软件工程(孟宁)(2)
热门文章
- 怎么利用python输出星座符号_Python输出十二星座的符号
- 汽车汽油电子喷射系统
- Atitit 三论”(系统论、控制论、信息论
- 服装开源平台让女装血拼开始
- 为什么c语言运行后输入的中文会乱码
- SpringBoot整合oracle报错异常信息(java.lang.AbstractMethodError: oracle.jdbc.driver.T4CConnection.isValid(I))
- 大学学python用记笔记吗_Python 应该怎么学?
- Y2K Accounting Bug POJ - 2586
- 声音存储空间计算公式_音频中文件大小计算公式(转)
- 2018年中国人均GDP接近1万美元,这在全球处于什么样的水平?