Sei sulla pagina 1di 6

-

BIT600 BIT601 BIT603 BIT610

SAP SAP SAP SAP

Business Business Business Business

Workflow Workflow Workflow Workflow

- Concepts, Inboxes, Reporting and Template Usage - Build and Use and Web Scenarios - Programming

REPORT ZFI_BKPF_AND_BSEG_NEW. TYPE-POOLS TRUXS. *** Types Declaration. TYPES: BEGIN OF TY_BKPF, BUKRS TYPE BKPF-BUKRS, BELNR TYPE BKPF-BELNR, GJAHR TYPE BKPF-GJAHR, BLART TYPE BKPF-BLART, BLDAT TYPE BKPF-BLDAT, BUDAT TYPE BKPF-BUDAT, MONAT TYPE BKPF-MONAT, TCODE TYPE BKPF-TCODE, XBLNR TYPE BKPF-XBLNR, DBBLG TYPE BKPF-DBBLG, BKTXT TYPE BKPF-BKTXT, WAERS TYPE BKPF-WAERS, KURSF TYPE BKPF-KURSF, BSTAT TYPE BKPF-BSTAT, END OF TY_BKPF. TYPES: BEGIN OF TY_BSEG, BUKRS TYPE BSEG-BUKRS, BELNR TYPE BSEG-BELNR, GJAHR TYPE BSEG-GJAHR, BUZEI TYPE BSEG-BUZEI, BSCHL TYPE BSEG-BSCHL, KOART TYPE BSEG-KOART, SHKZG TYPE BSEG-SHKZG, GSBER TYPE BSEG-GSBER, MWSKZ TYPE BSEG-MWSKZ, DMBTR TYPE BSEG-DMBTR, WRBTR TYPE BSEG-WRBTR, MWART TYPE BSEG-MWART, SGTXT TYPE BSEG-SGTXT, BEWAR TYPE BSEG-BEWAR, VORGN TYPE BSEG-VORGN, KOSTL TYPE BSEG-KOSTL, VBELN TYPE BSEG-VBELN, VBEL2 TYPE BSEG-VBEL2, ANLN1 TYPE BSEG-ANLN1, ANLN2 TYPE BSEG-ANLN2, ANBWA TYPE BSEG-ANBWA, BZDAT TYPE BSEG-BZDAT, SAKNR TYPE BSEG-SAKNR, HKONT TYPE BSEG-HKONT, KUNNR TYPE BSEG-KUNNR, LIFNR TYPE BSEG-LIFNR, XBILK TYPE BSEG-XBILK, GVTYP TYPE BSEG-GVTYP, MATNR TYPE BSEG-MATNR, EBELN TYPE BSEG-EBELN, END OF TY_BSEG.

*** Table Declaration. DATA:IT_BKPF TYPE TABLE OF TY_BKPF, IT_BKPF1 TYPE TABLE OF TY_BKPF, IT_BSEG TYPE TABLE OF TY_BSEG, IT_BSEG1 TYPE HASHED TABLE OF TY_BSEG WITH UNIQUE KEY BUKRS BELNR GJAHR, IT_CONVERT(4096) TYPE C, IT_CONVERT1 TYPE TRUXS_T_TEXT_DATA, IT_CONVERT2 TYPE TRUXS_T_TEXT_DATA, IT_CONVERT3 TYPE TRUXS_T_TEXT_DATA. *** Work Area Declaration. DATA: WA_BKPF TYPE TY_BKPF, WA_BKPF1 TYPE TY_BKPF, WA_BSEG TYPE TY_BSEG, WA_BSEG1 TYPE TY_BSEG. ***Variable Declaration. DATA: F_FILE TYPE STRING, F_FILE1 TYPE STRING, INDX TYPE I VALUE '0', NUM(4) TYPE C VALUE '2007', V_FILE(10), V_DMBTR(13), V_WRBTR(13), V_KURSF(14). *** Selection Screen. SELECTION-SCREEN BEGIN OF BLOCK BLK1 WITH FRAME TITLE TEXT-001. SELECT-OPTIONS: S_BUKRS FOR WA_BSEG-BUKRS, "Company Code S_GJAHR FOR WA_BSEG-GJAHR, "Fiscal Year S_GSBER FOR WA_BSEG-GSBER. "Business Area PARAMETERS : P_FILE TYPE IBIPPARMS-PATH DEFAULT 'C:\Documents and Settings\KNACK ADMIN\Desktop\bkpf.txt', "Path P_FILE1 TYPE IBIPPARMS-PATH DEFAULT 'C:\Documents and Settings\KNACKADMIN\Deskto p'. "Path SELECTION-SCREEN END OF BLOCK BLK1. ***AT SELECTION-SCREEN. AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE. CALL FUNCTION 'F4_FILENAME' IMPORTING FILE_NAME = P_FILE. AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE1. CALL FUNCTION 'F4_FILENAME' IMPORTING FILE_NAME = P_FILE1. ***START-OF-SELECTION. START-OF-SELECTION. ***Get data from database tables. PERFORM GET_DATA. *&---------------------------------------------------------------------* *& Form GET_DATA *&---------------------------------------------------------------------* FORM GET_DATA . ***Selecting data from database table: BKPF

SELECT BUKRS BELNR GJAHR BLART BLDAT BUDAT MONAT TCODE XBLNR DBBLG BKTXT WAERS KURSF BSTAT FROM BKPF INTO TABLE IT_BKPF1 PACKAGE SIZE 50 WHERE BUKRS IN S_BUKRS AND GJAHR IN S_GJAHR. ***Selecting data from database table: BSEG IF IT_BKPF1 IS NOT INITIAL. SELECT BUKRS BELNR GJAHR BUZEI BSCHL KOART SHKZG GSBER MWSKZ DMBTR WRBTR MWART SGTXT BEWAR VORGN KOSTL VBELN VBEL2 ANLN1 ANLN2 ANBWA BZDAT SAKNR HKONT KUNNR LIFNR XBILK GVTYP MATNR EBELN FROM BSEG INTO TABLE IT_BSEG1 FOR ALL ENTRIES IN IT_BKPF1 WHERE BUKRS = IT_BKPF1-BUKRS AND BELNR = IT_BKPF1-BELNR AND GJAHR = IT_BKPF1-GJAHR AND GSBER IN S_GSBER. LOOP AT IT_BKPF1 INTO WA_BKPF1. INDX = SY-TABIX.

READ TABLE IT_BSEG1 INTO WA_BSEG1 WITH KEY BUKRS = WA_BKPF1-BUKRS BELNR = WA_BKPF1-BELNR GJAHR = WA_BKPF1-GJAHR. IF SY-SUBRC NE 0. DELETE IT_BKPF1 INDEX INDX. ENDIF. ENDLOOP. APPEND LINES OF IT_BKPF1 TO IT_BKPF. APPEND LINES OF IT_BSEG1 TO IT_BSEG. FREE: IT_BKPF1,IT_BSEG1. ENDIF. ENDSELECT. SORT: IT_BKPF BY BUKRS BELNR GJAHR, IT_BSEG BY BUKRS BELNR GJAHR. LOOP AT IT_BKPF INTO WA_BKPF. V_KURSF = WA_BKPF-KURSF. CONCATENATE WA_BKPF-BUKRS '|' WA_BKPF-BELNR '|' WA_BKPF-GJAHR '|' WA_BKPF-BLART '|' WA_BKPF-BLDAT '|' WA_BKPF-BUDAT '|' WA_BKPF-MONAT '|' WA_BKPF-TCODE '|' WA_BKPF-XBLNR '|' WA_BKPF-DBBLG '|' WA_BKPF-BKTXT '|' WA_BKPF-WAERS '|' V_KURSF '|' WA_BKPF-BSTAT '|' INTO IT_CONVERT. APPEND IT_CONVERT TO IT_CONVERT1. ENDLOOP. ***Download BKPF data. PERFORM DOWNLOAD_BKPF. CLEAR: IT_CONVERT. FREE: IT_BKPF. LOOP AT IT_BSEG INTO WA_BSEG. V_DMBTR = WA_BSEG-DMBTR. V_WRBTR = WA_BSEG-WRBTR. CONCATENATE WA_BSEG-BUKRS '|' WA_BSEG-BELNR '|' WA_BSEG-GJAHR '|' WA_BSEG-BUZEI '|' WA_BSEG-BSCHL '|' WA_BSEG-KOART '|' WA_BSEG-SHKZG '|' WA_BSEG-GSBER '|' WA_BSEG-MWSKZ '|' V_DMBTR '|' V_WRBTR '|' WA_BSEG-MWART '|' WA_BSEG-SGTXT '|' WA_BSEG-BEWAR '|'

WA_BSEG-VORGN '|' WA_BSEG-KOSTL '|' WA_BSEG-VBELN '|' WA_BSEG-VBEL2 '|' WA_BSEG-ANLN1 '|' WA_BSEG-ANLN2 '|' WA_BSEG-ANBWA '|' WA_BSEG-BZDAT '|' WA_BSEG-SAKNR '|' WA_BSEG-HKONT '|' WA_BSEG-KUNNR '|' WA_BSEG-LIFNR '|' WA_BSEG-XBILK '|' WA_BSEG-GVTYP '|' WA_BSEG-MATNR '|' WA_BSEG-EBELN '|' INTO IT_CONVERT. APPEND IT_CONVERT TO IT_CONVERT2. CLEAR IT_CONVERT. DESCRIBE TABLE IT_CONVERT2. IF SY-TFILL GE 10. V_FILE = 'BSEG'. NUM = NUM + 1. CONCATENATE V_FILE NUM INTO V_FILE. ***Download BSEG data. PERFORM DOWNLOAD_BSEG. FREE IT_CONVERT2. ENDIF. ENDLOOP. PERFORM DOWNLOAD_BSEG. ENDFORM. " GET_DATA *&---------------------------------------------------------------------* *& Form DOWNLOAD_BKPF *&---------------------------------------------------------------------* FORM DOWNLOAD_BKPF . *** Downloading BKPF data F_FILE = P_FILE. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING FILENAME = F_FILE FILETYPE = 'ASC' TABLES DATA_TAB = IT_CONVERT1 EXCEPTIONS FILE_WRITE_ERROR = 1 NO_BATCH = 2 GUI_REFUSE_FILETRANSFER = 3 INVALID_TYPE = 4 NO_AUTHORITY = 5 UNKNOWN_ERROR = 6 HEADER_NOT_ALLOWED = 7 SEPARATOR_NOT_ALLOWED = 8 FILESIZE_NOT_ALLOWED = 9 HEADER_TOO_LONG = 10

DP_ERROR_CREATE = 11 DP_ERROR_SEND = 12 DP_ERROR_WRITE = 13 UNKNOWN_DP_ERROR = 14 ACCESS_DENIED = 15 DP_OUT_OF_MEMORY = 16 DISK_FULL = 17 DP_TIMEOUT = 18 FILE_NOT_FOUND = 19 DATAPROVIDER_EXCEPTION = 20 CONTROL_FLUSH_ERROR = 21 OTHERS = 22. ENDFORM. " DOWNLOAD_BKPF *&---------------------------------------------------------------------* *& Form DOWNLOAD_BSEG *&---------------------------------------------------------------------* FORM DOWNLOAD_BSEG . *** Downloading BSEG data CLEAR: IT_CONVERT. F_FILE1 = P_FILE1. CONCATENATE F_FILE1 '\' V_FILE '.txt' INTO F_FILE1. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING FILENAME = F_FILE1 FILETYPE = 'ASC' TABLES DATA_TAB = IT_CONVERT2 EXCEPTIONS FILE_WRITE_ERROR = 1 NO_BATCH = 2 GUI_REFUSE_FILETRANSFER = 3 INVALID_TYPE = 4 NO_AUTHORITY = 5 UNKNOWN_ERROR = 6 HEADER_NOT_ALLOWED = 7 SEPARATOR_NOT_ALLOWED = 8 FILESIZE_NOT_ALLOWED = 9 HEADER_TOO_LONG = 10 DP_ERROR_CREATE = 11 DP_ERROR_SEND = 12 DP_ERROR_WRITE = 13 UNKNOWN_DP_ERROR = 14 ACCESS_DENIED = 15 DP_OUT_OF_MEMORY = 16 DISK_FULL = 17 DP_TIMEOUT = 18 FILE_NOT_FOUND = 19 DATAPROVIDER_EXCEPTION = 20 CONTROL_FLUSH_ERROR = 21 OTHERS = 22. ENDFORM. " DOWNLOAD_BSEG

Potrebbero piacerti anche