REPORT zfit018.
INCLUDE zfit018_top.
*&---------------------------------------------------------------------*
*& SELECTION-SCREEN
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE TEXT-001.
PARAMETERS: p_fpath TYPE localfile.
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN FUNCTION KEY 1.
*----------------------------------------------------------------------*
* INITIALIZATION
*----------------------------------------------------------------------*
INITIALIZATION.
PERFORM frm_initial_program.
*----------------------------------------------------------------------*
* F4 Value Help
*----------------------------------------------------------------------*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fpath.
PERFORM frm_file_open_dialog USING 'X' CHANGING p_fpath.
*----------------------------------------------------------------------*
* At selection-screen
*----------------------------------------------------------------------*
AT SELECTION-SCREEN.
IF sy-ucomm EQ 'FC01'.
PERFORM frm_donwload_template.
ENDIF.
*&---------------------------------------------------------------------*
*& START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM frm_check_upload_file.
PERFORM frm_parse_excel_content.
PERFORM frm_display_alv.
*&---------------------------------------------------------------------*
*& END-OF-SELECTION
*&---------------------------------------------------------------------*
END-OF-SELECTION.
INCLUDE zfiT018_frm.
*&---------------------------------------------------------------------*
*& 包含 ZFIT018_TOP
*&---------------------------------------------------------------------*
TABLES: sscrfields.
TYPE-POOLS:slis.
DATA:BEGIN OF gs_alv,
zligh TYPE char4,
anln1 TYPE anla-anln1 , "主编号
anln2 TYPE anla-anln2 , "子编号
bukrs TYPE anla-bukrs , "公司代码
anlkl TYPE anla-anlkl , "资产分类
txt50 TYPE anla-txt50 , "资产描述
txa50 TYPE anla-txa50 , "附加资产描述
menge TYPE anla-menge , "数量
meins TYPE anla-meins , "计量单位
aktiv TYPE anla-aktiv , "资本化日期
anlhtxt TYPE anlh-anlhtxt, "资产主号文本
kostl TYPE kostl , "使用部门(成本中心)
herst TYPE anla-herst , "制造商(文本)
zvendor TYPE ze_vendor, "历史供应商
ztrans TYPE ze_trans, "是否在建工程转入
zinvoice TYPE ze_invoice, "历史资产发票凭证
zcont TYPE ze_cont, "历史采购合同号
zstort TYPE ze_stort, "资产存放地点
zdepart TYPE ze_depart, "使用部门
zlease TYPE ze_lease, "是否融资租赁
zcaufn TYPE anlu-zcaufn, "内部订单
ulife_yrs TYPE bf_ndjar , "计划年使用期
ulife_prds TYPE bf_ndper , "期间
dep_key TYPE bf_afasl , "折旧码
scrap_prctg TYPE schrw_proz , "残值率(账面折旧)
ord_dep TYPE char20 , "账面原值
zyqnlj TYPE char20 , "以前年度累计折旧(截止2020年12月底)
zdqnlj TYPE char20 , "当前年度累计折旧(2021年1月~4月底)
gsber TYPE anlz-gsber, "业务范围
werks TYPE anlz-werks, "工厂
ndabj TYPE anlc-ndabj, "已过期使用年限
ndabp TYPE anlc-ndabp, "到期使用期限
zmess TYPE bapiret2-message.
DATA: END OF gs_alv.
DATA: gt_alv LIKE STANDARD TABLE OF gs_alv.
DATA: gt_slis_t_fieldcat_alv TYPE slis_t_fieldcat_alv,
gs_slis_fieldcat_alv TYPE slis_fieldcat_alv.
* Constants Definition
CONSTANTS:
con_ext_nam_xls TYPE string VALUE 'XLSX',
* Answer Type
con_answer_1 TYPE c VALUE '1',
con_answer_a TYPE c VALUE 'A'.
DATA:
gs_key LIKE bapi1022_key,
gs_reference LIKE bapi1022_reference,
gs_createsubnumber LIKE bapi1022_misc-xsubno,
gs_creategroupasset LIKE bapi1022_misc-xanlgr,
gs_testrun LIKE bapi1022_misc-testrun,
gs_generaldata LIKE bapi1022_feglg001,
gs_generaldatax LIKE bapi1022_feglg001x,
gv_anla TYPE bapi1022_misc-xsubno,
gs_inventory LIKE bapi1022_feglg011,
gs_inventoryx LIKE bapi1022_feglg011x,
gs_postinginformation LIKE bapi1022_feglg002,
gs_postinginformationx LIKE bapi1022_feglg002x,
gs_timedependentdata LIKE bapi1022_feglg003,
gs_timedependentdatax LIKE bapi1022_feglg003x,
gs_allocations LIKE bapi1022_feglg004,
gs_allocationsx LIKE bapi1022_feglg004x,
gs_extensionin TYPE bapiparex,
gt_extensionin TYPE STANDARD TABLE OF bapiparex,
gs_anlu TYPE bapi_te_anlu.
DATA:
gt_depreciationareas TYPE TABLE OF bapi1022_dep_areas,
gs_depreciationareas TYPE bapi1022_dep_areas,
gt_depreciationareasx TYPE TABLE OF bapi1022_dep_areasx,
gs_depreciationareasx TYPE bapi1022_dep_areasx,
gt_postedvalues TYPE STANDARD TABLE OF bapi1022_postval,
gs_postedvalues TYPE bapi1022_postval,
gt_cumulatedvalues TYPE TABLE OF bapi1022_cumval,
gs_cumulatedvalues TYPE bapi1022_cumval,
gt_return_dis TYPE TABLE OF bapiret2,
gs_return_dis TYPE bapiret2,
gt_transactions TYPE TABLE OF bapi1022_trtype,
gs_transactions TYPE bapi1022_trtype,
gs_origin TYPE bapi1022_feglg009,
gs_originx TYPE bapi1022_feglg009x,
gt_return TYPE TABLE OF bapiret2,
gs_return TYPE bapiret2.
DATA:
gv_companycode LIKE bapi1022_1-comp_code,
gv_asset LIKE bapi1022_1-assetmaino,
gv_subnumber LIKE bapi1022_1-assetsubno,
gv_assetcreated LIKE bapi1022_reference,
gv_index TYPE sy-tabix,
gs_ztfi00x TYPE ztfi00x,
gt_ztfi00x TYPE STANDARD TABLE OF ztfi00x.
*&---------------------------------------------------------------------*
*& 包含 ZFIT018_FRM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& 包含 ZFII0006_FRM
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Form initial_program
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_initial_program .
sscrfields-functxt_01 = '@49@下载模板'(002).
ENDFORM. " initial_program
*&---------------------------------------------------------------------*
*& Form donwload_template
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_donwload_template .
DATA: lv_filename TYPE string,
lv_obj_name TYPE wwwdatatab-objid,
lv_file_name TYPE string,
lv_filepath TYPE string,
lv_rc TYPE sy-subrc.
lv_obj_name = 'ZFIT018'.
lv_file_name = TEXT-012 && '-' && sy-datum && sy-uzeit+0(4).
CALL METHOD zcl_bc_util=>download_web_object
EXPORTING
iv_relid = 'MI'
iv_objid = lv_obj_name
iv_default_file_name = lv_file_name
IMPORTING
ev_rc = lv_rc
ev_filepath = lv_filepath.
IF lv_rc <> 0.
MESSAGE '下载模板失败' TYPE 'E'.
RETURN.
ENDIF.
ENDFORM. " donwload_template
*&---------------------------------------------------------------------*
*& Form CHECK_UPLOAD_FILE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_check_upload_file .
DATA: lv_check_result TYPE abap_bool.
PERFORM check_file_exist USING p_fpath CHANGING lv_check_result.
IF lv_check_result EQ abap_false.
MESSAGE '文件不存在'(003) TYPE 'S' DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM. " CHECK_UPLOAD_FILE
*&---------------------------------------------------------------------*
*& Form FILE_OPEN_DIALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_file_open_dialog USING iv_check_file
CHANGING cv_filename.
DATA: lv_return_code TYPE i,
lv_check_result TYPE c.
DATA: lt_files TYPE STANDARD TABLE OF file_table,
ls_file TYPE file_table.
CLEAR cv_filename.
cl_gui_frontend_services=>file_open_dialog(
EXPORTING
default_extension = con_ext_nam_xls " Default Extension
multiselection = abap_false " Multiple selections
CHANGING
file_table = lt_files " Table Holding
rc = lv_return_code " Return Code
EXCEPTIONS
file_open_dialog_failed = 1
cntl_error = 2
error_no_gui = 3
not_supported_by_gui = 4
OTHERS = 5
).
IF lv_return_code EQ 0 OR sy-subrc NE 0.
EXIT.
ENDIF.
READ TABLE lt_files INTO ls_file INDEX 1.
CHECK sy-subrc EQ 0.
IF iv_check_file EQ abap_true.
PERFORM check_file_exist USING ls_file-filename
CHANGING lv_check_result.
IF lv_check_result EQ abap_false.
EXIT.
ENDIF.
ENDIF.
cv_filename = ls_file-filename.
ENDFORM. " FILE_OPEN_DIALOG
*&---------------------------------------------------------------------*
*& Form CHECK_FILE_EXIST
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM check_file_exist USING iv_filename
CHANGING cv_check_result.
DATA: lv_filename TYPE string,
lv_return_bool TYPE c.
CLEAR cv_check_result.
lv_filename = iv_filename.
cl_gui_frontend_services=>file_exist(
EXPORTING
file = lv_filename " File to Check
RECEIVING
result = lv_return_bool " Result
EXCEPTIONS
cntl_error = 1
error_no_gui = 2
wrong_parameter = 3
not_supported_by_gui = 4
OTHERS = 5
).
IF sy-subrc NE 0 OR
lv_return_bool EQ abap_false.
cv_check_result = abap_false.
EXIT.
ENDIF.
cv_check_result = abap_true.
ENDFORM. " CHECK_FILE_EXIST
*&---------------------------------------------------------------------*
*& Form parse_excel_content
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_parse_excel_content .
DATA: ls_file_content TYPE alsmex_tabline,
lt_file_content TYPE STANDARD TABLE OF alsmex_tabline,
lt_file_content_tmp TYPE STANDARD TABLE OF alsmex_tabline.
DATA: lv_index TYPE sy-tabix,
lv_flg_new TYPE c,
lv_col TYPE i,
lv_row TYPE i,
lv_col_gap TYPE i,
ls_file_content_bak TYPE alsmex_tabline,
lv_tabix TYPE i.
FIELD-SYMBOLS:<fs_comp> TYPE any,
<fs_file_content> TYPE alsmex_tabline,
<fs_file_content_bak> TYPE alsmex_tabline.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_fpath
i_begin_col = 2
i_begin_row = 3
i_end_col = 29
i_end_row = 9999
TABLES
intern = lt_file_content
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
SORT lt_file_content BY row ASCENDING
col ASCENDING.
"Excel中存在单元格中带双引号且发生回行的脏数据,进行特殊处理‘
LOOP AT lt_file_content ASSIGNING <fs_file_content>.
lv_tabix = sy-tabix.
ls_file_content = <fs_file_content>.
AT NEW row.
CLEAR: lv_flg_new,
ls_file_content_bak.
IF strlen( ls_file_content-value ) <> 4.
lv_flg_new = 'X'.
CONTINUE.
ENDIF.
ENDAT.
IF lv_flg_new IS NOT INITIAL.
ls_file_content-row = lv_row.
IF ls_file_content_bak IS INITIAL.
lv_col_gap = <fs_file_content>-col - 1.
ELSE.
lv_col_gap = <fs_file_content>-col - ls_file_content_bak-col.
ENDIF.
ls_file_content-col = lv_col + lv_col_gap.
ELSE.
IF ls_file_content-value = '"'.
lv_tabix = lv_tabix + 1.
LOOP AT lt_file_content ASSIGNING <fs_file_content_bak>
FROM lv_tabix.
IF <fs_file_content_bak>-row <> <fs_file_content>-row.
EXIT.
ENDIF.
<fs_file_content_bak>-col = <fs_file_content_bak>-col - 1.
ENDLOOP.
CONTINUE.
ENDIF.
ENDIF.
APPEND ls_file_content TO lt_file_content_tmp.
lv_row = ls_file_content-row.
lv_col = ls_file_content-col.
ls_file_content_bak = <fs_file_content>.
ENDLOOP.
LOOP AT lt_file_content_tmp INTO ls_file_content.
MOVE ls_file_content-col TO lv_index.
IF ls_file_content-col < 29.
lv_index = lv_index + 3.
ASSIGN COMPONENT lv_index OF STRUCTURE gs_alv TO <fs_comp>.
CHECK sy-subrc EQ 0.
REPLACE ALL OCCURRENCES OF '"' IN ls_file_content-value WITH space.
CONDENSE ls_file_content-value.
TRY.
MOVE ls_file_content-value TO <fs_comp>.
CATCH cx_root.
ENDTRY.
ENDIF.
AT END OF row.
APPEND gs_alv TO gt_alv.
gs_alv-zligh = icon_green_light.
CLEAR gs_alv.
ENDAT.
ENDLOOP.
SORT gt_alv BY bukrs.
ENDFORM. " parse_excel_content
*&---------------------------------------------------------------------*
*& Form display_alv_data
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_display_alv.
DATA: ls_layout TYPE slis_layout_alv.
ls_layout-zebra = 'X'.
ls_layout-colwidth_optimize = abap_true.
PERFORM frm_set_fieldcat.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'FRM_PF_STATUS'
i_callback_user_command = 'FRM_USER_COMMAND'
is_layout = ls_layout
it_fieldcat = gt_slis_t_fieldcat_alv
i_save = 'A'
TABLES
t_outtab = gt_alv
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
ENDFORM. " display_alv_data
FORM frm_set_fieldcat.
CLEAR gt_slis_t_fieldcat_alv.
PERFORM add_fieldcat USING:
'ZLIGH' '指示灯',
'ANLN1' '主编号',
'ANLN2' '子编号',
'BUKRS' '公司代码',
'ANLKL' '资产分类',
'TXT50' '资产描述',
'TXA50' '附加资产描述',
'MENGE' '数量',
'MEINS' '计量单位',
'AKTIV' '资本化日期',
'ANLHTXT' '资产主号文本',
'KOSTL' '使用部门',
'HERST' '制造商',
'ZVENDOR' '资产供应商信息',
'ZTRANS' '是否在建工程转入',
'ZINVOICE' '历史资产发票凭证',
'ZCONT' '历史采购合同号',
'ZSTORT' '资产存放地点',
'ZDEPART' '使用部门',
'ZLEASE' '是否融资租赁',
'ZCAUFN' '内部订单',
'ULIFE_YRS' '使用年限',
'ULIFE_PRDS' '期间',
'DEP_KEY' '折旧码',
'SCRAP_PRCTG' '残值率',
'ORD_DEP' '账面原值',
'ZYQNLJ' '以前年度累计折旧(截止2020年12月底)',
'ZDQNLJ' '当前年度累计折旧(2021年1月~4月底)',
'GSBER' '业务范围',
'WERKS' '工厂',
'NDABJ' '已过期使用年限',
'NDABP' '到期使用期限',
'ZMESS' '消息文本'.
ENDFORM.
FORM add_fieldcat USING p_fieldname TYPE slis_fieldname
p_seltext TYPE char100 .
CLEAR gs_slis_fieldcat_alv.
gs_slis_fieldcat_alv-fieldname = p_fieldname.
gs_slis_fieldcat_alv-seltext_l = p_seltext.
APPEND gs_slis_fieldcat_alv TO gt_slis_t_fieldcat_alv.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form PF_STATUS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_pf_status USING lt_extab TYPE slis_t_extab.
SET PF-STATUS 'PF_STATUS' EXCLUDING lt_extab.
ENDFORM. " PF_STATUS
*&---------------------------------------------------------------------*
*& Form USER_COMMAND
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_user_command USING ok_code TYPE sy-ucomm
re_selfield TYPE slis_selfield.
CASE ok_code.
WHEN '&IMPORT'.
PERFORM frm_create_asset.
ENDCASE.
re_selfield-refresh = 'X'.
ENDFORM. " USER_COMMAND
*&---------------------------------------------------------------------*
*& Form FRM_CREATE_ASSET
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_create_asset .
LOOP AT gt_alv ASSIGNING FIELD-SYMBOL(<fs_area>).
gv_index = sy-tabix.
PERFORM frm_set_bapi_para USING <fs_area>.
PERFORM frm_post_assets USING <fs_area>.
ENDLOOP.
IF gt_ztfi00x IS NOT INITIAL.
MODIFY ztfi00x FROM TABLE gt_ztfi00x.
IF sy-subrc = 0.
COMMIT WORK.
ELSE.
ROLLBACK WORK.
ENDIF.
ENDIF.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_SET_BAPI_PARA
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> PS_AREA
*&---------------------------------------------------------------------*
FORM frm_set_bapi_para USING ps_area LIKE gs_alv.
"设置参数
CLEAR gs_key.
gs_key-companycode = ps_area-bukrs.
CLEAR gs_generaldata.
gs_generaldata-assetclass = ps_area-anlkl .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = gs_generaldata-assetclass
IMPORTING
output = gs_generaldata-assetclass.
gs_generaldata-descript = ps_area-txt50 .
gs_generaldata-descript2 = ps_area-txa50 .
gs_generaldata-main_descript = ps_area-anlhtxt .
gs_generaldata-quantity = ps_area-menge .
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
input = ps_area-meins
language = sy-langu
IMPORTING
output = ps_area-meins
EXCEPTIONS
unit_not_found = 1
OTHERS = 2.
gs_generaldata-base_uom = ps_area-meins .
CLEAR gs_generaldatax.
gs_generaldatax-assetclass = 'X'.
gs_generaldatax-descript = 'X'.
gs_generaldatax-descript2 = 'X'.
gs_generaldatax-main_descript = 'X'.
gs_generaldatax-quantity = 'X'.
gs_generaldatax-base_uom = 'X'.
"过账数据
CLEAR:
gs_postinginformation,
gs_postinginformationx.
"资本化日期
gs_postinginformation-cap_date = ps_area-aktiv.
gs_postinginformationx-cap_date = 'X'.
CLEAR:
gs_timedependentdata,
gs_timedependentdatax.
"成本中心
gs_timedependentdata-costcenter = ps_area-kostl.
gs_timedependentdatax-costcenter = 'X'.
"业务范围
gs_timedependentdata-bus_area = ps_area-gsber.
gs_timedependentdatax-bus_area = 'X'.
"工厂
gs_timedependentdata-plant = ps_area-werks.
gs_timedependentdatax-plant = 'X'.
CLEAR: gs_origin.
gs_origin-manufacturer = ps_area-herst.
CLEAR: gs_originx.
gs_originx-manufacturer = abap_true.
CLEAR:
gt_postedvalues,
gs_postedvalues.
IF ps_area-zdqnlj IS NOT INITIAL.
gs_postedvalues-fisc_year = '2021'.
gs_postedvalues-area = '01'.
TRY.
REPLACE ALL OCCURRENCES OF',' IN ps_area-zdqnlj WITH space.
CONDENSE ps_area-zdqnlj.
gs_postedvalues-ord_dep = ps_area-zdqnlj.
CATCH cx_root.
CLEAR: gs_postedvalues-ord_dep.
ENDTRY.
APPEND gs_postedvalues TO gt_postedvalues.
ENDIF.
CLEAR:
gt_depreciationareasx,
gt_depreciationareas.
CLEAR gs_depreciationareas.
gs_depreciationareas-area = '01' .
gs_depreciationareas-dep_key = ps_area-dep_key.
gs_depreciationareas-ulife_yrs = ps_area-ulife_yrs .
gs_depreciationareas-ulife_prds = ps_area-ulife_prds .
gs_depreciationareas-scrapvalue_prctg = ps_area-scrap_prctg .
gs_depreciationareas-exp_ulife_yrs = ps_area-ndabj.
gs_depreciationareas-exp_ulife_prds = ps_area-ndabp.
APPEND gs_depreciationareas TO gt_depreciationareas.
CLEAR gs_depreciationareasx.
gs_depreciationareasx-area = '01' .
gs_depreciationareasx-dep_key = 'X' .
gs_depreciationareasx-ulife_yrs = 'X' .
gs_depreciationareasx-ulife_prds = 'X' .
gs_depreciationareasx-scrapvalue_prctg = 'X' .
gs_depreciationareasx-exp_ulife_yrs = 'X' .
gs_depreciationareasx-exp_ulife_prds = 'X' .
APPEND gs_depreciationareasx TO gt_depreciationareasx.
"本年折旧
CLEAR:gt_transactions,
gs_transactions.
IF ps_area-aktiv >= '20210101'.
gs_transactions-fisc_year = '2021'.
gs_transactions-area = '01'.
gs_transactions-current_no = '0001'.
gs_transactions-valuedate = ps_area-aktiv.
gs_transactions-assettrtyp = '100'.
TRY.
REPLACE ALL OCCURRENCES OF ',' IN ps_area-ord_dep WITH space.
CONDENSE ps_area-ord_dep.
gs_transactions-amount = ps_area-ord_dep.
CATCH cx_root.
CLEAR: gs_transactions-amount.
ENDTRY.
APPEND gs_transactions TO gt_transactions.
ENDIF.
"历史折旧
CLEAR:gt_cumulatedvalues,
gs_cumulatedvalues.
IF ps_area-aktiv < '20210101'.
gs_cumulatedvalues-fisc_year = '2021'.
gs_cumulatedvalues-area = '01'.
TRY.
REPLACE ALL OCCURRENCES OF',' IN ps_area-ord_dep WITH space.
CONDENSE ps_area-ord_dep.
gs_cumulatedvalues-acq_value = ps_area-ord_dep.
CATCH cx_root.
CLEAR: gs_cumulatedvalues-acq_value.
ENDTRY.
TRY.
REPLACE ALL OCCURRENCES OF',' IN ps_area-zyqnlj WITH space.
CONDENSE ps_area-zyqnlj.
gs_cumulatedvalues-ord_dep = ps_area-zyqnlj.
CATCH cx_root.
CLEAR: gs_cumulatedvalues-ord_dep.
ENDTRY.
APPEND gs_cumulatedvalues TO gt_cumulatedvalues.
ENDIF.
"增强字段
CLEAR: gs_extensionin,
gt_extensionin,
gs_anlu.
gs_anlu-ztrans = ps_area-ztrans.
gs_anlu-zinvoice = ps_area-zinvoice.
gs_anlu-zcont = ps_area-zcont.
gs_anlu-zstort = ps_area-zstort.
gs_anlu-zdepart = ps_area-zdepart.
gs_anlu-zlease = ps_area-zlease.
gs_anlu-zcaufn = ps_area-zcaufn.
gs_anlu-zvendor = ps_area-zvendor.
gs_extensionin-structure = 'BAPI_TE_ANLU'.
gs_extensionin-valuepart1 = gs_anlu.
gs_extensionin-valuepart2 = gs_anlu-zvendor+46(4).
APPEND gs_extensionin TO gt_extensionin.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form FRM_POST_ASSETS
*&---------------------------------------------------------------------*
*& text
*&---------------------------------------------------------------------*
*& --> p1 text
*& <-- p2 text
*&---------------------------------------------------------------------*
FORM frm_post_assets USING ps_area LIKE gs_alv.
DATA lv_postf(1) TYPE c.
CLEAR gt_return.
CALL FUNCTION 'BAPI_FIXEDASSET_OVRTAKE_CREATE'
EXPORTING
key = gs_key
createsubnumber = gv_anla
generaldata = gs_generaldata
generaldatax = gs_generaldatax
postinginformation = gs_postinginformation
postinginformationx = gs_postinginformationx
timedependentdata = gs_timedependentdata
timedependentdatax = gs_timedependentdatax
origin = gs_origin
originx = gs_originx
IMPORTING
companycode = gv_companycode
asset = gv_asset
subnumber = gv_subnumber
assetcreated = gv_assetcreated
TABLES
depreciationareas = gt_depreciationareas
depreciationareasx = gt_depreciationareasx
extensionin = gt_extensionin
postedvalues = gt_postedvalues
cumulatedvalues = gt_cumulatedvalues
transactions = gt_transactions
return = gt_return.
CLEAR lv_postf.
LOOP AT gt_return INTO gs_return WHERE type EQ 'E' OR type EQ 'A'.
ps_area-zmess = ps_area-zmess && gs_return-message && ';'.
lv_postf = abap_true.
ENDLOOP.
IF lv_postf IS INITIAL.
ps_area-zmess = '资产生成成功'.
ps_area-zligh = icon_green_light.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
ps_area-anln1 = gv_asset.
MODIFY gt_alv FROM ps_area INDEX gv_index TRANSPORTING zligh zmess anln1.
ELSE.
ps_area-zligh = icon_red_light.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
ENDIF.
* 编辑接口数据
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = gv_asset
IMPORTING
output = gs_ztfi00x-zcssj.
gs_ztfi00x-zbukrs = ps_area-bukrs.
gs_ztfi00x-zcslx = '3'.
gs_ztfi00x-zcszt = '1'.
APPEND gs_ztfi00x TO gt_ztfi00x.
ENDFORM.
导入字段
字段名 | 示例 |
公司代码 | 1000 |
资产分类编码 | 10090 |
资产描述 | 测试用电子设备电脑 |
原始资产编码(金蝶)+部门资产编码 | DZ-0010+BP-GC-B1/SC-12-01-001/02-C |
数量 | 1 |
单位 | PC |
资本化日期 | 20190923 |
资产规格型号 | Thinkpad R30 8899X |
成本中心 | 1000010100 |
资产制造商信息 | 测试供应商test001 |
资产供应商信息 | 200001 |
变动方式 (是否在建工程转入) | 3 |
历史资产发票凭证 | 77889900 |
历史采购合同号 | 1122334 |
资产存放地点 | 存放固定资产的地方 |
使用部门 | 1000010100 |
是否抵押 | |
内部订单 | |
原始使用年限 | 3 |
原始期间 | 0 |
折旧码 | ZL05 |
残值率 | 0 |
累计购置价值 | 1,888.00 |
累计普通折旧 | 488.00 |
已记账正常折旧 | 402.00 |
业务范围 | 0001 |
工厂 | 1000 |
已过期使用年限 | 3 |
到期使用期限 | 0 |