FORM FRM_ESB_DATA .DATA(LV_YEAR) = P_GJAHR && '年'.DATA(LV_MONTH) = P_MONT && '月'.TRY.EXEC SQL.connect to :gw_dbsENDEXEC.CATCH CX_SY_NATIVE_SQL_ERROR INTO G_OBJ_SQLDB.CALL METHOD G_OBJ_SQLDB->GET_TEXTRECEIVINGRESULT = G_ERROR_TEXT.ENDTRY.IF G_ERROR_TEXT IS INITIAL.EXEC SQL.SET CONNECTION :gw_dbsENDEXEC.TRY .EXEC SQL PERFORMING LOOP_OUTPUT.SELECT CURRENCY,ENTITY,ACCOUNT,CATEGORY1,AMOUNT,UPDATE_DATE,NEW_COLUMN,P_ENTITYFROM C1_CF_COST_SUM_DETAILWHERE YEAR = :LV_YEARAND PERIOD = :LV_MONTHINTO :GS_ESBENDEXEC.CATCH CX_SY_NATIVE_SQL_ERROR INTO G_OBJ_SQLDB.CALL METHOD G_OBJ_SQLDB->GET_TEXTRECEIVINGRESULT = G_ERROR_TEXT.ENDTRY.ELSE.SKIP.ENDIF.
* SKIP.
* 更新到后台表ZTFM0013DATA:LS_ZTFM0013 TYPE ZTFM0013,LT_ZTFM0013 TYPE STANDARD TABLE OF ZTFM0013.CLEAR:GS_ESB.SELECT * FROM ZTFM0012 INTO TABLE @DATA(LT_A)WHERE WERKS = @P_WERKS1AND ZTYPE = '0'.SELECT * FROM ZTFM0012 INTO TABLE @DATA(LT_BC)WHERE WERKS = @P_WERKS1AND ( ZTYPE = '1' OR ZTYPE = '2' ).SORT LT_A BY ZCLAID.SORT LT_BC BY ZTYPE ZPAID.DELETE ADJACENT DUPLICATES FROM LT_A COMPARING ZCLAID.DELETE ADJACENT DUPLICATES FROM LT_BC COMPARING ZTYPE ZPAID.APPEND LINES OF LT_BC TO LT_A."合并ABC表SELECT * FROM DD07T INTO TABLE @DATA(LT_DD07T)FOR ALL ENTRIES IN @LT_AWHERE ( DOMVALUE_L = @LT_A-ZCLAID OR DOMVALUE_L = @LT_A-ZPAID ).LOOP AT LT_A INTO DATA(LS_A).LS_ZTFM0013-MANDT = SY-MANDT.LS_ZTFM0013-WERKS = '1250'."默认1250 P_WERKS1LS_ZTFM0013-GJAHR = P_GJAHR.LS_ZTFM0013-MONT = P_MONT.LS_ZTFM0013-CRNAM = SY-UNAME.LS_ZTFM0013-CRDAT = SY-DATUM.LS_ZTFM0013-CRTIM = SY-UZEIT.IF LS_A-ZTYPE = '0'.LS_ZTFM0013-ZCLAID = LS_A-ZCLAID.READ TABLE LT_DD07T INTO DATA(LS_DD07T) WITH KEY DOMVALUE_L = LS_A-ZCLAID.IF SY-SUBRC = 0.LS_ZTFM0013-ZCLASS = LS_DD07T-DDTEXT.ENDIF.LOOP AT GT_ESB INTO GS_ESB WHERE ENTITY = LS_A-NEWKOSTL.LS_ZTFM0013-ZZYSZJE = LS_ZTFM0013-ZZYSZJE + GS_ESB-AMOUNT.ENDLOOP.ELSEIF LS_A-ZTYPE = '1'.LS_ZTFM0013-ZCLAID = LS_A-ZPAID.READ TABLE LT_DD07T INTO LS_DD07T WITH KEY DOMVALUE_L = LS_A-ZPAID.IF SY-SUBRC = 0.LS_ZTFM0013-ZCLASS = LS_DD07T-DDTEXT.ENDIF.LOOP AT GT_ESB INTO GS_ESB WHERE ENTITY = LS_A-NEWKOSTL.LS_ZTFM0013-ZZYSZJE = LS_ZTFM0013-ZZYSZJE + GS_ESB-AMOUNT.ENDLOOP.ELSEIF LS_A-ZTYPE = '2'.LS_ZTFM0013-ZCLAID = LS_A-ZPAID.READ TABLE LT_DD07T INTO LS_DD07T WITH KEY DOMVALUE_L = LS_A-ZPAID.IF SY-SUBRC = 0.LS_ZTFM0013-ZCLASS = LS_DD07T-DDTEXT.ENDIF.LOOP AT GT_ESB INTO GS_ESB WHERE ENTITY = LS_A-FICTR.LS_ZTFM0013-ZZYSZJE = LS_ZTFM0013-ZZYSZJE + GS_ESB-AMOUNT.ENDLOOP.ENDIF.APPEND LS_ZTFM0013 TO LT_ZTFM0013.
CLEAR:LS_ZTFM0013,LS_A.ENDLOOP.MODIFY ZTFM0013 FROM TABLE LT_ZTFM0013.COMMIT WORK.
*存储到ZTPM0024表DATA:LS_ZTPM0024 TYPE ZTPM0024,LT_ZTPM0024 TYPE STANDARD TABLE OF ZTPM0024.SELECT * FROM ZTPM0025INTO TABLE @DATA(LT_ZTPM0025)WHERE WERKS = @P_WERKS1.SORT LT_ZTPM0025 BY ZID.DELETE ADJACENT DUPLICATES FROM LT_ZTPM0025 COMPARING ZID.LOOP AT LT_ZTPM0025 INTO DATA(LS_ZTPM0025).LS_ZTPM0024-MANDT = SY-MANDT.LS_ZTPM0024-WERKS = '1250'."默认1250 P_WERKS1LS_ZTPM0024-ZID = LS_ZTPM0025-ZID.LS_ZTPM0024-GJAHR = P_GJAHR.LS_ZTPM0024-MONT = P_MONT.LS_ZTPM0024-CHNAME = LS_ZTPM0025-CHNAME.LOOP AT GT_ESB INTO GS_ESB WHERE ENTITY = LS_ZTPM0025-FICTR.LS_ZTPM0024-ZZYSZJE = LS_ZTPM0024-ZZYSZJE + GS_ESB-AMOUNT.ENDLOOP.LS_ZTPM0024-ZZYSZJE = '0.95' * LS_ZTPM0024-ZZYSZJE .LS_ZTPM0024-UNAME = SY-UNAME.LS_ZTPM0024-CRDAT = SY-DATUM.LS_ZTPM0024-CRTIM = SY-UZEIT.APPEND LS_ZTPM0024 TO LT_ZTPM0024.
CLEAR:LS_ZTPM0024,LS_ZTPM0025.ENDLOOP.
MODIFY ZTPM0024 FROM TABLE LT_ZTPM0024.COMMIT WORK.
ENDFORM.
FORM LOOP_OUTPUT." CURRENCY,ENTITY,ACCOUNT,AMOUNT,UPDATE_DATE,NEW_COLUMN,P_ENTITYAPPEND GS_ESB TO GT_ESB.
ENDFORM.