*&---------------------------------------------------------------------* *& Report ZIDOC_FI_002 *&---------------------------------------------------------------------* *&*"---------------------------------------------------------------------- *&*& 作者 : xuy *& 开发日期 : 12.06.2017 15:01:35 *& 申请者 : *& 描述 :资产创建\修改传小SAP *& 变更记录 *& ** 修改日期 开发人员 请求号 描述 *&---------------------------------------------------------------------* REPORT zidoc_fi_002. TABLES:anla. TYPE-POOLS:slis. DATA: w_repid LIKE sy-repid, wa_firldcat TYPE slis_fieldcat_alv, i_fieldcat TYPE slis_t_fieldcat_alv, i_layout TYPE slis_layout_alv, i_lvc_s_glay TYPE lvc_s_glay. DATA: gtd_fcat TYPE lvc_t_fcat, gst_lout TYPE lvc_s_layo, gtd_top TYPE slis_t_listheader. DATA: gs_key LIKE bapi1022_key, "公司代码 资产号 gs_gen LIKE bapi1022_feglg001, gs_genx LIKE bapi1022_feglg001x, gs_tim LIKE bapi1022_feglg003, gs_timx LIKE bapi1022_feglg003x. DATA: gs_allocations LIKE bapi1022_feglg004. DATA: gs_allocationsx LIKE bapi1022_feglg004x. DATA: gs_inventory LIKE bapi1022_feglg011. DATA: gs_inventoryx LIKE bapi1022_feglg011x. DATA: l_asset LIKE bapi1022_1-assetmaino. DATA: gs_return LIKE bapiret2. DATA: gs_origin LIKE bapi1022_feglg009. DATA: gs_originx LIKE bapi1022_feglg009x. "资产创建 DATA: BEGIN OF wa_data, bukrs LIKE anla-bukrs, anlkl LIKE anla-anlkl, txt50 LIKE anla-txt50, invnr LIKE anla-invnr, anln1 LIKE anla-anln1, anln2 LIKE anla-anln2, menge LIKE anla-menge, invzu LIKE anla-invzu, txa50 LIKE anla-txa50, lifnr LIKE anla-lifnr, typbz LIKE anla-typbz, ord41 LIKE anla-ord41, meins LIKE anla-meins, sernr LIKE anla-sernr, kfzkz LIKE anlz-kfzkz, kostl LIKE anlz-kostl, raumn LIKE anlz-raumn, adatu LIKE anlz-adatu, anlhtxt LIKE anlh-anlhtxt, END OF wa_data. DATA:it_data LIKE TABLE OF wa_data. "资产折旧 DATA: it_anlb LIKE TABLE OF anlb. DATA: wa_anlb LIKE LINE OF it_anlb. DATA: gs_depreciationareas LIKE bapi1022_dep_areas. DATA: gt_depreciationareas LIKE TABLE OF bapi1022_dep_areas. DATA: gs_depreciationareasx LIKE bapi1022_dep_areasx. DATA: gt_depreciationareasx LIKE TABLE OF bapi1022_dep_areasx. "ALV DATA: BEGIN OF wa_alv_data, sel TYPE c, light(4) TYPE c, type(1) TYPE c, bukrs LIKE anla-bukrs, anln1 LIKE anla-anln1, message(200) TYPE c, END OF wa_alv_data. DATA: it_alv_data LIKE TABLE OF wa_alv_data. "日志表 DATA: it_log LIKE TABLE OF zfit001_log. DATA: wa_log LIKE LINE OF it_log. DATA: clnt LIKE sy-mandt. DATA: dsystem(10) TYPE c. DATA: g_datum LIKE sy-datum. SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE TEXT-001. SELECT-OPTIONS: s_bukrs FOR anla-bukrs, s_anln1 FOR anla-anln1,"资产号 s_erdat FOR anla-erdat. PARAMETERS: "p_incre TYPE c AS CHECKBOX USER-COMMAND rad_click, "是否自动增量 p_back AS CHECKBOX DEFAULT 'X'. SELECTION-SCREEN END OF BLOCK bk1. INITIALIZATION. IF sy-mandt = '300'. dsystem = 'ED2CLNT901'. ELSEIF sy-mandt = '666'. dsystem = 'ED2CLNT902'. ELSEIF sy-mandt = '800'. dsystem = 'EP2CLNT999'. ENDIF. PERFORM sub_get_time. AT SELECTION-SCREEN. START-OF-SELECTION. PERFORM sub_get_new_data."获取创建的资产 PERFORM sub_send_data. IF p_back <> 'X'. PERFORM sub_alv_prepare. PERFORM sub_call_alv TABLES it_alv_data USING gtd_fcat gst_lout 'USER_COMMAND' 'SET_STATUS' ''. i_lvc_s_glay-edt_cll_cb = 'X'. ENDIF. *&---------------------------------------------------------------------* *& Form SUB_GET_TIME *&---------------------------------------------------------------------* * 取时间 *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM sub_get_time . CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL' EXPORTING date = sy-datum days = 1 "天数加N或者减N 不加也不减 写0 months = 0 "月份加N或者减N 不加也不减 写0 signum = '-' "可以是+或者- years = 0 "年份加N或者减N 不加也不减 写0 IMPORTING calc_date = g_datum. "得到加减之后的日期 s_erdat-sign = 'I'. s_erdat-option = 'EQ'. s_erdat-low = g_datum. APPEND s_erdat. ENDFORM. *&---------------------------------------------------------------------* *& Form SUB_GET_DATA *&---------------------------------------------------------------------* * 根据条件取数据 *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM sub_get_new_data . "如果是增量发,就按创建日期查询,JOB每天凌晨12点后跑前一天创建的所有资产。 "如果不是增量,就按资产号发 * IF p_incre = 'X'. SELECT anla~bukrs anla~anln1 "资产 anla~anln2 anla~anlkl "资产分类 anla~txt50 "描述 anla~invnr "库存号 anla~menge "数量 anla~invzu "库存注记 anla~txa50 "描述(2) anla~lifnr "供应商 anla~typbz "类型名 anla~ord41 "状态 anla~meins "基本单位 anla~sernr "序列号 anlz~kfzkz anlz~kostl anlz~raumn anlz~adatu anlh~anlhtxt FROM anla LEFT JOIN anlz ON anla~bukrs = anlz~bukrs AND anla~anln1 = anlz~anln1 AND anla~anln2 = anlz~anln2 LEFT JOIN anlh ON anla~bukrs = anlh~bukrs AND anla~anln1 = anlh~anln1 INTO CORRESPONDING FIELDS OF TABLE it_data WHERE anla~anln1 IN s_anln1 AND anla~bukrs IN s_bukrs AND erdat IN s_erdat. IF it_data[] IS INITIAL . MESSAGE '没有查询到数据.' TYPE 'S' DISPLAY LIKE 'W'. STOP. ENDIF. "取资产折旧数据 SELECT * FROM anlb INTO TABLE it_anlb FOR ALL ENTRIES IN it_data WHERE bukrs = it_data-bukrs AND anln1 = it_data-anln1 AND anln2 = it_data-anln2. LOOP AT it_anlb INTO wa_anlb. gs_depreciationareas-area = wa_anlb-afabe. gs_depreciationareas-dep_key = wa_anlb-afasl. gs_depreciationareas-ulife_yrs = wa_anlb-ndjar. gs_depreciationareas-ulife_prds = wa_anlb-ndper. gs_depreciationareas-odep_start_date = wa_anlb-afabg. APPEND gs_depreciationareas TO gt_depreciationareas. CLEAR gs_depreciationareas. gs_depreciationareasx-area = wa_anlb-afabe. gs_depreciationareasx-dep_key = 'X'. gs_depreciationareasx-ulife_yrs ='X'. gs_depreciationareasx-ulife_prds = 'X'. gs_depreciationareasx-odep_start_date = 'X'. APPEND gs_depreciationareasx TO gt_depreciationareasx. CLEAR gs_depreciationareasx. ENDLOOP. ENDFORM. *&---------------------------------------------------------------------* *& Form SUB_SEND_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM sub_send_data . DATA:i_right(5) TYPE c. DATA:i_left(5) TYPE c. LOOP AT it_data INTO wa_data. "主键 ALNA gs_key-companycode = wa_data-bukrs. gs_key-asset = wa_data-anln1. gs_key-subnumber = wa_data-anln2. "常规 ALNA gs_gen-assetclass = wa_data-anlkl. gs_gen-descript = wa_data-txt50. gs_gen-invent_no = wa_data-invnr. gs_gen-quantity = wa_data-menge. gs_inventory-note = wa_data-invzu. gs_gen-descript2 = wa_data-txa50. gs_origin-vendor_no = wa_data-lifnr. gs_origin-type_name = wa_data-typbz. gs_allocations-evalgroup1 = wa_data-ord41. gs_gen-base_uom = wa_data-meins. gs_gen-serial_no = wa_data-sernr. "ANLZ. gs_tim-plate_no = wa_data-kfzkz. "执行牌照 "成本中心替代 CLEAR: i_right,i_left. i_left = wa_data-kostl+0(5). i_right = '00001'. CLEAR wa_data-kostl. CONCATENATE i_left i_right INTO wa_data-kostl. "包含F的成本中心,替换为P REPLACE 'F' WITH 'P' INTO wa_data-kostl. gs_tim-costcenter = wa_data-kostl."成本中心 gs_tim-room = wa_data-raumn."房间 "gs_tim-from_date = wa_data-adatu . "有效时间始 "ANLH. gs_gen-main_descript = wa_data-anlhtxt. gs_genx-assetclass = 'X'. gs_genx-descript = 'X'. gs_genx-invent_no = 'X'. gs_genx-quantity = 'X'. gs_inventoryx-note = 'X'. gs_genx-descript2 = 'X'. gs_originx-vendor_no = 'X'. gs_originx-type_name = 'X'. gs_allocationsx-evalgroup1 = 'X'. gs_genx-base_uom = 'X'. gs_genx-serial_no = 'X'. gs_timx-license_plate_no = 'X'. gs_timx-costcenter = 'X'. gs_timx-room = 'X'. "gs_timx-from_date = 'X'. gs_genx-main_descript = 'X'. CALL FUNCTION 'BAPI_FIXEDASSET_CREATE1' DESTINATION dsystem EXPORTING key = gs_key generaldata = gs_gen generaldatax = gs_genx inventory = gs_inventory inventoryx = gs_inventoryx timedependentdata = gs_tim timedependentdatax = gs_timx allocations = gs_allocations allocationsx = gs_allocationsx origin = gs_origin originx = gs_originx IMPORTING asset = l_asset return = gs_return TABLES depreciationareas = gt_depreciationareas depreciationareasx = gt_depreciationareasx. IF gs_return-type = 'E' OR gs_return-type = 'A' OR gs_return-type = 'W'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' DESTINATION dsystem. CLEAR wa_alv_data. wa_alv_data-message = gs_return-message. wa_alv_data-type = gs_return-type. wa_alv_data-light = '@5C@'."修改失败 ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' DESTINATION dsystem EXPORTING wait = 'X'. CLEAR wa_alv_data. wa_alv_data-message = gs_return-message. wa_alv_data-type = gs_return-type. wa_alv_data-light = '@5B@'."修改成功 ENDIF. wa_alv_data-anln1 = wa_data-anln1. wa_alv_data-bukrs = wa_data-bukrs. APPEND wa_alv_data TO it_alv_data. CLEAR wa_log. wa_log-mandt = sy-mandt. wa_log-zkey1 = wa_data-bukrs. wa_log-zkey2 = wa_data-anln1. wa_log-zdate = sy-datum. wa_log-ztime = sy-uzeit. wa_log-zifnum = '05'."ZFID015 wa_log-persn = sy-uname. wa_log-zflag = gs_return-type. wa_log-zflag1 = 'I'. wa_log-message = gs_return-message. MODIFY zfit001_log FROM wa_log. ENDLOOP. ENDFORM. FORM sub_alv_prepare . PERFORM add_field_lvc TABLES gtd_fcat USING 'LIGHT' 'LIGHT' '' '' '' '状态' '' '' '' '' ''. PERFORM add_field_lvc TABLES gtd_fcat USING 'TYPE' 'TYPE' '' '' '' '消息类型' '' '' '' '' ''. PERFORM add_field_lvc TABLES gtd_fcat USING 'MESSAGE' 'MESSAGE' '' '' '' '消息 .' '' '' '' '' ''. PERFORM add_field_lvc TABLES gtd_fcat USING 'BUKRS' 'BUKRS' 'ANLA' '' '' '公司' '' '' '' '' ''. PERFORM add_field_lvc TABLES gtd_fcat USING 'ANLN1' 'ANLN1' 'ANLA' '' '' '资产号' '' '' '' '' ''. gst_lout-zebra = 'X'. gst_lout-cwidth_opt = 'X'. gst_lout-box_fname = 'SEL'. gst_lout-info_fname = 'COLOR'. ENDFORM. FORM sub_call_alv TABLES it_outtab USING it_fieldcat TYPE lvc_t_fcat i_layout TYPE lvc_s_layo i_command TYPE slis_formname i_pf_status_set TYPE slis_formname i_title TYPE slis_formname. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-cprog i_callback_user_command = i_command i_callback_pf_status_set = i_pf_status_set "状态栏 i_callback_top_of_page = i_title is_layout_lvc = i_layout it_fieldcat_lvc = it_fieldcat i_save = 'A' TABLES t_outtab = it_outtab EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. "SUB_CALL_ALV FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield. ENDFORM. FORM set_status USING pt_extab TYPE slis_t_extab . SET PF-STATUS 'STANDARD'. ENDFORM. FORM add_field_lvc TABLES ot_fieldcat_lvc STRUCTURE lvc_s_fcat USING i_fieldname TYPE lvc_rfname i_ref_field TYPE lvc_rfname i_ref_table TYPE lvc_tname i_cfieldname TYPE lvc_cfname i_qfieldname TYPE lvc_qfname i_text TYPE string i_edit TYPE c i_nzero TYPE c i_f4 TYPE c i_no_out TYPE c i_outputlen TYPE i. DATA:lth_fieldcat_lvc TYPE lvc_s_fcat. CLEAR lth_fieldcat_lvc. lth_fieldcat_lvc-fieldname = i_fieldname. lth_fieldcat_lvc-ref_field = i_ref_field. lth_fieldcat_lvc-ref_table = i_ref_table. lth_fieldcat_lvc-edit = i_edit. lth_fieldcat_lvc-cfieldname = i_cfieldname. lth_fieldcat_lvc-qfieldname = i_qfieldname. lth_fieldcat_lvc-colddictxt = 'L'. lth_fieldcat_lvc-scrtext_l = i_text. lth_fieldcat_lvc-no_zero = i_nzero. lth_fieldcat_lvc-f4availabl = i_f4. lth_fieldcat_lvc-no_out = i_no_out. lth_fieldcat_lvc-outputlen = i_outputlen. lth_fieldcat_lvc-no_zero = 'X'. APPEND lth_fieldcat_lvc TO ot_fieldcat_lvc. ENDFORM. "ADD_FIELD_LVC
修改
*&---------------------------------------------------------------------* *& Report ZFID016 *&*& 作者 : xuy *& 开发日期 : 13.06.2017 14:32:03 *& 申请者 : *& 描述 : 资产修改传小SAP *& 变更记录 *& ** 修改日期 开发人员 请求号 描述 *&---------------------------------------------------------------------* REPORT zfid016. TABLES:anla. TYPE-POOLS:slis. DATA: w_repid LIKE sy-repid, wa_firldcat TYPE slis_fieldcat_alv, i_fieldcat TYPE slis_t_fieldcat_alv, i_layout TYPE slis_layout_alv, i_lvc_s_glay TYPE lvc_s_glay. DATA: gtd_fcat TYPE lvc_t_fcat, gst_lout TYPE lvc_s_layo, gtd_top TYPE slis_t_listheader. DATA: gs_key LIKE bapi1022_key, "公司代码 资产号 gs_gen LIKE bapi1022_feglg001, gs_genx LIKE bapi1022_feglg001x, gs_tim LIKE bapi1022_feglg003, gs_timx LIKE bapi1022_feglg003x. DATA: gs_allocations LIKE bapi1022_feglg004. DATA: gs_allocationsx LIKE bapi1022_feglg004x. DATA: gs_inventory LIKE bapi1022_feglg011. DATA: gs_inventoryx LIKE bapi1022_feglg011x. DATA: l_asset LIKE bapi1022_1-assetmaino. DATA: gs_return LIKE bapiret2. DATA: gs_origin LIKE bapi1022_feglg009. DATA: gs_originx LIKE bapi1022_feglg009x. "资产修改 DATA: BEGIN OF wa_data, bukrs LIKE anla-bukrs, anlkl LIKE anla-anlkl, txt50 LIKE anla-txt50, invnr LIKE anla-invnr, anln1 LIKE anla-anln1, anln2 LIKE anla-anln2, menge LIKE anla-menge, invzu LIKE anla-invzu, txa50 LIKE anla-txa50, lifnr LIKE anla-lifnr, typbz LIKE anla-typbz, ord41 LIKE anla-ord41, meins LIKE anla-meins, sernr LIKE anla-sernr, kfzkz LIKE anlz-kfzkz, kostl LIKE anlz-kostl, raumn LIKE anlz-raumn, adatu LIKE anlz-adatu, anlhtxt LIKE anlh-anlhtxt, END OF wa_data. DATA:it_data LIKE TABLE OF wa_data. DATA: wa_anlz LIKE anlz, it_anlz LIKE TABLE OF wa_anlz. "ALV DATA: BEGIN OF wa_alv_data, sel TYPE c, light(4) TYPE c, type(1) TYPE c, bukrs LIKE anla-bukrs, anln1 LIKE anla-anln1, message(200) TYPE c, END OF wa_alv_data. DATA: it_alv_data LIKE TABLE OF wa_alv_data. "日志表 DATA: it_log LIKE TABLE OF zfit001_log. DATA: wa_log LIKE LINE OF it_log. "资产折旧 DATA: it_anlb LIKE TABLE OF anlb. DATA: wa_anlb LIKE LINE OF it_anlb. DATA: gs_depreciationareas LIKE bapi1022_dep_areas. DATA: gt_depreciationareas LIKE TABLE OF bapi1022_dep_areas. DATA: gs_depreciationareasx LIKE bapi1022_dep_areasx. DATA: gt_depreciationareasx LIKE TABLE OF bapi1022_dep_areasx. DATA: clnt LIKE sy-mandt. DATA: dsystem(10) TYPE c. DATA: g_datum LIKE sy-datum. SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE TEXT-001. SELECT-OPTIONS: s_bukrs FOR anla-bukrs, s_anln1 FOR anla-anln1,"资产号 s_erdat FOR anla-erdat. PARAMETERS: " p_incre TYPE c AS CHECKBOX USER-COMMAND rad_click, "是否自动增量 p_back AS CHECKBOX DEFAULT 'X'. SELECTION-SCREEN END OF BLOCK bk1. INITIALIZATION. IF sy-mandt = '300'. dsystem = 'ED2CLNT901'. ELSEIF sy-mandt = '666'. dsystem = 'ED2CLNT902'. ELSEIF sy-mandt = '800'. dsystem = 'EP2CLNT999'. ENDIF. PERFORM sub_get_time. AT SELECTION-SCREEN. START-OF-SELECTION. PERFORM sub_get_change_data."获取修改的资产 PERFORM sub_proc_data. PERFORM sub_send_data. IF p_back <> 'X'. PERFORM sub_alv_prepare. PERFORM sub_call_alv TABLES it_alv_data USING gtd_fcat gst_lout 'USER_COMMAND' 'SET_STATUS' ''. i_lvc_s_glay-edt_cll_cb = 'X'. ENDIF. *&---------------------------------------------------------------------* *& Form SUB_GET_TIME *&---------------------------------------------------------------------* * 取时间 *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM sub_get_time . CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL' EXPORTING date = sy-datum days = 1 "天数加N或者减N 不加也不减 写0 months = 0 "月份加N或者减N 不加也不减 写0 signum = '-' "可以是+或者- years = 0 "年份加N或者减N 不加也不减 写0 IMPORTING calc_date = g_datum. "得到加减之后的日期 s_erdat-sign = 'I'. s_erdat-option = 'EQ'. s_erdat-low = g_datum. APPEND s_erdat. ENDFORM. FORM sub_get_change_data. "根据修改时间查询 SELECT anla~bukrs anla~anln1 "资产 anla~anln2 anla~anlkl "资产分类 anla~txt50 "描述 anla~invnr "库存号 anla~menge "数量 anla~invzu "库存注记 anla~txa50 "描述(2) anla~lifnr "供应商 anla~typbz "类型名 anla~ord41 "状态 anla~meins "基本单位 anla~sernr "序列号 * anlz~kfzkz * anlz~kostl * anlz~raumn * anlz~adatu anlh~anlhtxt FROM anla * LEFT JOIN anlz * ON anla~bukrs = anlz~bukrs * AND anla~anln1 = anlz~anln1 * AND anla~anln2 = anlz~anln2 LEFT JOIN anlh ON anla~bukrs = anlh~bukrs AND anla~anln1 = anlh~anln1 INTO CORRESPONDING FIELDS OF TABLE it_data WHERE anla~anln1 IN s_anln1 AND anla~bukrs IN s_bukrs AND aedat IN s_erdat. IF it_data[] IS INITIAL . MESSAGE '没有查询到数据.' TYPE 'S' DISPLAY LIKE 'W'. STOP. ENDIF. "ADD BY XY 05.09.2017 15:04:00 SELECT bukrs anln1 anln2 bdatu anlz~kfzkz anlz~kostl anlz~raumn FROM anlz INTO CORRESPONDING FIELDS OF TABLE it_anlz FOR ALL ENTRIES IN it_data WHERE anlz~bukrs = it_data-bukrs AND anlz~anln1 = it_data-anln1 AND anlz~anln2 = it_data-anln2. SORT it_anlz BY bukrs anln1 anln2 bdatu DESCENDING. "ADD ENDED BY XY 05.09.2017 15:04:00 "取资产折旧数据 SELECT * FROM anlb INTO TABLE it_anlb FOR ALL ENTRIES IN it_data WHERE bukrs = it_data-bukrs AND anln1 = it_data-anln1 AND anln2 = it_data-anln2. ENDFORM. *&---------------------------------------------------------------------* *& Form SUB_SEND_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM sub_send_data . DATA:i_right(5) TYPE c. DATA:i_left(5) TYPE c. LOOP AT it_data INTO wa_data. CLEAR: gs_key, gs_gen, gs_genx, gs_inventory, gs_inventoryx, gs_tim, gs_timx, gs_origin, gs_allocations, gs_allocationsx, gs_origin, gs_originx, gs_return. "主键 ALNA gs_key-companycode = wa_data-bukrs. gs_key-asset = wa_data-anln1. gs_key-subnumber = wa_data-anln2. "常规 ALNA "gs_gen-assetclass = wa_data-anlkl. gs_gen-descript = wa_data-txt50. gs_gen-invent_no = wa_data-invnr. gs_gen-quantity = wa_data-menge. gs_inventory-note = wa_data-invzu. gs_gen-descript2 = wa_data-txa50. gs_origin-vendor_no = wa_data-lifnr. gs_origin-type_name = wa_data-typbz. gs_allocations-evalgroup1 = wa_data-ord41. gs_gen-base_uom = wa_data-meins. gs_gen-serial_no = wa_data-sernr. "ANLZ. gs_tim-plate_no = wa_data-kfzkz. "执行牌照 "成本中心替代 CLEAR: i_right,i_left. i_left = wa_data-kostl+0(5). i_right = '00001'. CLEAR wa_data-kostl. CONCATENATE i_left i_right INTO wa_data-kostl. gs_tim-costcenter = wa_data-kostl."成本中心 gs_tim-room = wa_data-raumn."房间 "gs_tim-from_date = wa_data-adatu . "有效时间始 "ANLH. gs_gen-main_descript = wa_data-anlhtxt. "gs_genx-assetclass = 'X'. gs_genx-descript = 'X'. gs_genx-invent_no = 'X'. gs_genx-quantity = 'X'. gs_inventoryx-note = 'X'. gs_genx-descript2 = 'X'. gs_originx-vendor_no = 'X'. gs_originx-type_name = 'X'. gs_allocationsx-evalgroup1 = 'X'. gs_genx-base_uom = 'X'. gs_genx-serial_no = 'X'. gs_timx-license_plate_no = 'X'. gs_timx-costcenter = 'X'. gs_timx-room = 'X'. "gs_timx-from_date = 'X'. gs_genx-main_descript = 'X'. "资产折旧范围赋值 LOOP AT it_anlb INTO wa_anlb WHERE anln1 = wa_data-anln1 AND anln2 = wa_data-anln2. CLEAR: gs_depreciationareas,gs_depreciationareasx. gs_depreciationareas-area = wa_anlb-afabe. gs_depreciationareas-dep_key = wa_anlb-afasl. gs_depreciationareas-ulife_yrs = wa_anlb-ndjar. gs_depreciationareas-ulife_prds = wa_anlb-ndper. gs_depreciationareas-odep_start_date = wa_anlb-afabg. APPEND gs_depreciationareas TO gt_depreciationareas. CLEAR gs_depreciationareas. gs_depreciationareasx-area = wa_anlb-afabe. gs_depreciationareasx-dep_key = 'X'. gs_depreciationareasx-ulife_yrs ='X'. gs_depreciationareasx-ulife_prds = 'X'. gs_depreciationareasx-odep_start_date = 'X'. APPEND gs_depreciationareasx TO gt_depreciationareasx. CLEAR gs_depreciationareasx. ENDLOOP. CALL FUNCTION 'BAPI_FIXEDASSET_CHANGE' DESTINATION dsystem EXPORTING companycode = gs_key-companycode asset = gs_key-asset subnumber = gs_key-subnumber generaldata = gs_gen generaldatax = gs_genx inventory = gs_inventory inventoryx = gs_inventoryx timedependentdata = gs_tim timedependentdatax = gs_timx allocations = gs_allocations allocationsx = gs_allocationsx origin = gs_origin originx = gs_originx IMPORTING return = gs_return TABLES depreciationareas = gt_depreciationareas depreciationareasx = gt_depreciationareasx. IF gs_return-type = 'E' OR gs_return-type = 'A'. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK' DESTINATION dsystem. CLEAR wa_alv_data. wa_alv_data-message = gs_return-message. wa_alv_data-type = gs_return-type. wa_alv_data-light = '@5C@'."修改失败 ELSE. CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' DESTINATION dsystem EXPORTING wait = 'X'. CLEAR wa_alv_data. wa_alv_data-message = gs_return-message. wa_alv_data-type = gs_return-type. wa_alv_data-light = '@5B@'."修改成功 ENDIF. wa_alv_data-anln1 = wa_data-anln1. wa_alv_data-bukrs = wa_data-bukrs. APPEND wa_alv_data TO it_alv_data. CLEAR wa_log. wa_log-mandt = sy-mandt. wa_log-zkey1 = wa_data-bukrs. wa_log-zkey2 = wa_data-anln1. wa_log-zdate = sy-datum. wa_log-ztime = sy-uzeit. wa_log-zifnum = '06'."ZFID016 wa_log-persn = sy-uname. wa_log-zflag = gs_return-type. wa_log-zflag1 = 'I'. wa_log-message = gs_return-message. MODIFY zfit001_log FROM wa_log. REFRESH: gt_depreciationareas,gt_depreciationareasx. ENDLOOP. ENDFORM. FORM sub_alv_prepare . PERFORM add_field_lvc TABLES gtd_fcat USING 'LIGHT' 'LIGHT' '' '' '' '状态' '' '' '' '' ''. PERFORM add_field_lvc TABLES gtd_fcat USING 'TYPE' 'TYPE' '' '' '' '消息类型' '' '' '' '' ''. PERFORM add_field_lvc TABLES gtd_fcat USING 'MESSAGE' 'MESSAGE' '' '' '' '消息 .' '' '' '' '' ''. PERFORM add_field_lvc TABLES gtd_fcat USING 'BUKRS' 'BUKRS' 'ANLA' '' '' '公司' '' '' '' '' ''. PERFORM add_field_lvc TABLES gtd_fcat USING 'ANLN1' 'ANLN1' 'ANLA' '' '' '资产号' '' '' '' '' ''. gst_lout-zebra = 'X'. gst_lout-cwidth_opt = 'X'. gst_lout-box_fname = 'SEL'. gst_lout-info_fname = 'COLOR'. ENDFORM. FORM sub_call_alv TABLES it_outtab USING it_fieldcat TYPE lvc_t_fcat i_layout TYPE lvc_s_layo i_command TYPE slis_formname i_pf_status_set TYPE slis_formname i_title TYPE slis_formname. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY_LVC' EXPORTING i_callback_program = sy-cprog i_callback_user_command = i_command i_callback_pf_status_set = i_pf_status_set "状态栏 i_callback_top_of_page = i_title is_layout_lvc = i_layout it_fieldcat_lvc = it_fieldcat i_save = 'A' TABLES t_outtab = it_outtab EXCEPTIONS program_error = 1 OTHERS = 2. IF sy-subrc <> 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDFORM. "SUB_CALL_ALV FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE slis_selfield. ENDFORM. FORM set_status USING pt_extab TYPE slis_t_extab . SET PF-STATUS 'STANDARD'. ENDFORM. FORM add_field_lvc TABLES ot_fieldcat_lvc STRUCTURE lvc_s_fcat USING i_fieldname TYPE lvc_rfname i_ref_field TYPE lvc_rfname i_ref_table TYPE lvc_tname i_cfieldname TYPE lvc_cfname i_qfieldname TYPE lvc_qfname i_text TYPE string i_edit TYPE c i_nzero TYPE c i_f4 TYPE c i_no_out TYPE c i_outputlen TYPE i. DATA:lth_fieldcat_lvc TYPE lvc_s_fcat. CLEAR lth_fieldcat_lvc. lth_fieldcat_lvc-fieldname = i_fieldname. lth_fieldcat_lvc-ref_field = i_ref_field. lth_fieldcat_lvc-ref_table = i_ref_table. lth_fieldcat_lvc-edit = i_edit. lth_fieldcat_lvc-cfieldname = i_cfieldname. lth_fieldcat_lvc-qfieldname = i_qfieldname. lth_fieldcat_lvc-colddictxt = 'L'. lth_fieldcat_lvc-scrtext_l = i_text. lth_fieldcat_lvc-no_zero = i_nzero. lth_fieldcat_lvc-f4availabl = i_f4. lth_fieldcat_lvc-no_out = i_no_out. lth_fieldcat_lvc-outputlen = i_outputlen. lth_fieldcat_lvc-no_zero = 'X'. APPEND lth_fieldcat_lvc TO ot_fieldcat_lvc. ENDFORM. "ADD_FIELD_LVC *&---------------------------------------------------------------------* *& Form SUB_PROC_DATA *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM sub_proc_data . * LOOP AT it_anlb INTO wa_anlb. * gs_depreciationareas-area = wa_anlb-afabe. * gs_depreciationareas-dep_key = wa_anlb-afasl. * gs_depreciationareas-ulife_yrs = wa_anlb-ndjar. * gs_depreciationareas-ulife_prds = wa_anlb-ndper. * gs_depreciationareas-odep_start_date = wa_anlb-afabg. * APPEND gs_depreciationareas TO gt_depreciationareas. * CLEAR gs_depreciationareas. * * gs_depreciationareasx-area = wa_anlb-afabe. * gs_depreciationareasx-dep_key = 'X'. * gs_depreciationareasx-ulife_yrs ='X'. * gs_depreciationareasx-ulife_prds = 'X'. * gs_depreciationareasx-odep_start_date = 'X'. * APPEND gs_depreciationareasx TO gt_depreciationareasx. * CLEAR gs_depreciationareasx. * ENDLOOP. LOOP AT it_data INTO wa_data. CLEAR wa_anlz. READ TABLE it_anlz INTO wa_anlz WITH KEY bukrs = wa_data-bukrs anln1 = wa_data-anln1 anln2 = wa_data-anln2. IF sy-subrc = 0. wa_data-kfzkz = wa_anlz-kfzkz. wa_data-kostl = wa_anlz-kostl. wa_data-raumn = wa_anlz-raumn. ENDIF. MODIFY IT_DATA FROM WA_DATA. ENDLOOP. ENDFORM.
    ^_^很多人都把资料锁进了note里,以后还怎么百度呢^_^
 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号