FUNCTION zrfc_mm008. *"---------------------------------------------------------------------- *"*"Local interface: *" IMPORTING *" VALUE(CALLNO) TYPE ZCALLNO *" VALUE(ZDATE) LIKE SY-DATUM DEFAULT SY-DATUM *" EXPORTING *" VALUE(FLAG) LIKE BAPIRET2-TYPE *" VALUE(MESSAGE) LIKE BAPIRET2-MESSAGE *" TABLES *" ZANLA STRUCTURE ZANLA OPTIONAL *"---------------------------------------------------------------------- TYPES:BEGIN OF ty_zanla, bukrs LIKE anla-bukrs, anln1 LIKE anla-anln1, anlkl LIKE anla-anlkl, txt50 LIKE anla-txa50, deakt LIKE anla-deakt, xspeb LIKE anla-xspeb, ktansw LIKE t095-ktansw, END OF ty_zanla. DATA :lv_datano TYPE zdatano, lv_index TYPE i, lt_zanla TYPE TABLE OF ty_zanla, "资产主数据 ls_zanla TYPE ty_zanla, lt_t095 TYPE TABLE OF t095, "资产科目表 ls_t095 TYPE t095. IF zdate IS INITIAL OR zdate = ‘00000000‘. SELECT bukrs anln1 anlkl txt50 deakt xspeb INTO TABLE lt_zanla FROM anla. ELSE. SELECT bukrs anln1 anlkl txt50 deakt xspeb INTO TABLE lt_zanla FROM anla WHERE erdat = zdate OR aedat = zdate. ENDIF. *查询资产科目 SELECT * INTO TABLE lt_t095 FROM t095 WHERE ktopl = ‘GFFA‘. SORT lt_t095 BY ktogr. LOOP AT lt_zanla INTO ls_zanla. lv_index = sy-tabix. READ TABLE lt_t095 INTO ls_t095 WITH KEY ktogr = ls_zanla-anlkl BINARY SEARCH. IF sy-subrc = 0. ls_zanla-ktansw = ls_t095-ktansw. MODIFY lt_zanla FROM ls_zanla TRANSPORTING ktansw. ENDIF. ENDLOOP. IF lt_zanla IS NOT INITIAL. flag = ‘S‘. message = ‘执行成功‘. ELSE. flag = ‘E‘. message = ‘没有数据‘. ENDIF. zanla[] = lt_zanla. CLEAR:gt_log,gs_log. LOOP AT zanla INTO ls_zanla. *日志记录 lv_datano = lv_datano + 1. gs_log-datano = lv_datano. gs_log-name = ‘ZRFC_MM008‘. gs_log-cdate = sy-datum. GET TIME. gs_log-ctime = sy-uzeit. gs_log-callno = callno. gs_log-flag = flag. gs_log-log = message. CONCATENATE zdate ls_zanla-bukrs ls_zanla-anln1 ls_zanla-anlkl ls_zanla-txt50 ls_zanla-deakt ls_zanla-xspeb ls_zanla-ktansw INTO gs_log-content SEPARATED BY ‘|‘. CONDENSE gs_log-content NO-GAPS. SHIFT message LEFT DELETING LEADING ‘|‘. gs_log-length = STRLEN( gs_log-content ). APPEND gs_log TO gt_log. CLEAR: gs_log,ls_zanla. ENDLOOP. IF gt_log IS NOT INITIAL. INSERT zrfc_mm01in_log FROM TABLE gt_log. IF sy-subrc = 0. COMMIT WORK. ENDIF. ENDIF. ENDFUNCTION.
时间: 2024-11-07 01:28:11