Skip to Content
0
Former Member
May 30, 2008 at 04:52 PM

hi sap gurus can u please improve the performance ,its very urgent :-sneha

36 Views

REPORT ZFIR_GRIR_IPV

NO STANDARD PAGE HEADING

LINE-SIZE 120

MESSAGE-ID ZFI02.

TABLES: BSEG,BKPF.

TYPES: BEGIN OF A_FINAL,

BUKRS TYPE CHAR12,

HKONT_P TYPE CHAR18,

GJAHR TYPE CHAR11,

BELNR TYPE CHAR19,

BUDAT TYPE CHAR12,

WAERS TYPE CHAR8,

XBLNR TYPE CHAR20,

BLART TYPE CHAR13,

MONAT TYPE CHAR13,

DMBTR_P TYPE CHAR13,

KOSTL TYPE CHAR11,

PRCTR_P TYPE CHAR13,

HKONT_G TYPE CHAR18,

DMBTR_G TYPE CHAR13,

PRCTR_G TYPE CHAR13,

BUZID_G TYPE CHAR15,

END OF A_FINAL.

*----


changes on 30 th may by dileep

TYPES: BEGIN OF IT_FINAL,

BUKRS TYPE BUKRS ,

HKONT TYPE HKONT,

BELNR TYPE BELNR_D,

DMBTR TYPE DMBTR ,

KOSTL TYPE KOSTL,

PRCTR TYPE PRCTR,

END OF IT_FINAL.

TYPES: BEGIN OF IT_FINAL1,

BUKRS TYPE BUKRS,

HKONT TYPE HKONT,

GJAHR TYPE GJAHR ,

BELNR TYPE BELNR_D,

BUDAT TYPE BUDAT,

WAERS TYPE WAERS ,

XBLNR TYPE XBLNR1,

BLART TYPE BLART,

MONAT TYPE MONAT,

DMBTR TYPE DMBTR,

KOSTL TYPE KOSTL,

PRCTR TYPE PRCTR,

END OF IT_FINAL1.

*----


end of changes on 30 th may by dileep

TYPES: BEGIN OF P_FINAL,

BUKRS TYPE CHAR12,

DELIMITER_1 TYPE CHAR1,

HKONT_P TYPE CHAR18,

DELIMITER_2 TYPE CHAR1,

GJAHR TYPE CHAR11,

DELIMITER_3 TYPE CHAR1,

BELNR TYPE CHAR19,

DELIMITER_4 TYPE CHAR1,

BUDAT TYPE CHAR12,

DELIMITER_5 TYPE CHAR1,

WAERS TYPE CHAR8,

DELIMITER_6 TYPE CHAR1,

XBLNR TYPE CHAR20,

DELIMITER_7 TYPE CHAR1,

BLART TYPE CHAR13,

DELIMITER_8 TYPE CHAR1,

MONAT TYPE CHAR13,

DELIMITER_9 TYPE CHAR1,

DMBTR_P TYPE CHAR13,

DELIMITER_10 TYPE CHAR1,

KOSTL TYPE CHAR11,

DELIMITER_11 TYPE CHAR1,

PRCTR_P TYPE CHAR13,

DELIMITER_12 TYPE CHAR1,

HKONT_G TYPE CHAR18,

DELIMITER_13 TYPE CHAR1,

DMBTR_G TYPE CHAR13,

DELIMITER_14 TYPE CHAR1,

PRCTR_G TYPE CHAR13,

DELIMITER_15 TYPE CHAR1,

BUZID_G TYPE CHAR15,

END OF P_FINAL.

DATA: IT_BSEG TYPE STANDARD TABLE OF IT_FINAL INITIAL SIZE 0,

I_BSEG TYPE STANDARD TABLE OF IT_FINAL1 INITIAL SIZE 0,

I_FINAL TYPE STANDARD TABLE OF A_FINAL INITIAL SIZE 0 WITH HEADER LINE,

I_FINAL_P TYPE STANDARD TABLE OF P_FINAL INITIAL SIZE 0 WITH HEADER LINE,

W_FINAL_P TYPE P_FINAL,

W_BSEG1 TYPE BSEG,

WA_BSEG TYPE IT_FINAL OCCURS 0 WITH HEADER LINE,

W_BSEG TYPE IT_FINAL1 OCCURS 0 WITH HEADER LINE,

T_BSEG TYPE STANDARD TABLE OF BSEG INITIAL SIZE 0 WITH HEADER LINE,

W_FINAL TYPE A_FINAL,

F_YEAR TYPE BAPI0002_4-FISCAL_YEAR,

F_PERIOD TYPE BAPI0002_4-FISCAL_PERIOD,

RETURN1 TYPE BAPIRETURN1,

V_DATE TYPE CHAR8, " Date in YYYYMMDD format

V_PRESPATH TYPE STRING, " Path

V_APPPATH TYPE STRING, " Path

V_FILENAME(25) TYPE C, " File Name

V_PERIOD TYPE CHAR3, " Date for Posting Period

V_FSYEAR TYPE BDATJ, " Fiscal Year

L_TEXT TYPE CHAR1. " Hypen

CONSTANTS: C_TXT TYPE CHAR4 VALUE '.txt', " File Extension

C_TXT1 TYPE STRING VALUE 'txt', " File Type

C_FLAG_X TYPE CHAR1 VALUE 'X', " Flag

C_ASC TYPE FILETYPE VALUE 'ASC', " File type

C_DAT TYPE CHAR4 VALUE '.dat', " File Type

C_FLAG_1 TYPE CHAR1 VALUE '1', " Constant value

C_ZERO TYPE CHAR1 VALUE '0', " Constant

C_GLD(10) TYPE C VALUE 'GRIR021S', " Constant in file Path

C_DIR TYPE CHAR3 VALUE 'C:\', " Presentation Server path

C_FLAG_12 TYPE CHAR2 VALUE '12', " Constant value

C_PCFILE TYPE STRING VALUE 'PC File',

C_DELIMITER TYPE C VALUE '|'.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.

*--- Selection Criteria

SELECT-OPTIONS: S_BUKRS FOR BSEG-BUKRS DEFAULT '012T', " Company Code

S_HKONT FOR BSEG-HKONT OBLIGATORY DEFAULT '4505001',

S_GJAHR FOR BKPF-GJAHR DEFAULT SY-DATUM+0(4),

S_MONAT FOR BKPF-MONAT DEFAULT SY-DATUM+4(2),

S_BELNR FOR BSEG-BELNR ,

S_BUDAT FOR BKPF-BUDAT ,

S_PRCTR FOR BSEG-PRCTR OBLIGATORY DEFAULT '12TOTH00',

S_BLART FOR BKPF-BLART OBLIGATORY DEFAULT 'RE'.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.

*--- Radio Buttons for chose the PC Path or App.. Server Path

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS:

RB_PFILE RADIOBUTTON GROUP RAD2 DEFAULT 'X' USER-COMMAND UCOMM1.

SELECTION-SCREEN COMMENT 5(27) TEXT-002 FOR FIELD RB_PFILE.

PARAMETERS:

P_PFILE LIKE RLGRAP-FILENAME LOWER CASE.

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN BEGIN OF LINE.

PARAMETERS:

RB_AFILE RADIOBUTTON GROUP RAD2.

SELECTION-SCREEN COMMENT 5(27) TEXT-003 FOR FIELD RB_AFILE.

PARAMETERS:

P_AFILE LIKE RLGRAP-FILENAME LOWER CASE. " Path for AS

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK B2.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_PFILE.

*-- Select File name with Dialog Box

PERFORM SUB_GET_FILENAME CHANGING P_PFILE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_AFILE.

*--- Attach F4 HELP CORRESPONDING TO THE FIELD

PERFORM SUB_AP_F4.

AT SELECTION-SCREEN OUTPUT.

*--Modify screen parameters

PERFORM SUB_MODIFY_SCREEN.

AT SELECTION-SCREEN.

*--- Selection Screen validations for Company Code

PERFORM SUB_VALIDATION_BUKRS.

*--- Selection Screen validations for Chart of Accounts

PERFORM SUB_VALIDATION_HKONT.

*--- Selection Screen validations Fiscal Year

PERFORM SUB_VALIDATION_GJAHR.

*--- Selection Screen validations for Peiod

PERFORM SUB_VALIDATION_MONAT.

*--- Selection Screen validations for Company Code

PERFORM SUB_VALIDATION_BELNR.

*--- Selection Screen validations for Chart of Accounts

PERFORM SUB_VALIDATION_BUDAT.

*--- Selection Screen validations Fiscal Year

PERFORM SUB_VALIDATION_PRCTR.

*--- Selection Screen validations for Peiod

PERFORM SUB_VALIDATION_BLART.

************************************************************************

  • START-OF-SELECTION

************************************************************************

START-OF-SELECTION.

*--- Check whether filepath/name have been entered in the sel screen

PERFORM SUB_CHECK_FILEPATH.

*--- Prepare Final Internal Table.

PERFORM SUB_PREPARE_FINAL.

*--- Download data.

PERFORM SUB_DOWNLOAD_DATA .

&----


*& Form sub_get_filename

&----


  • text

----


  • <--P_PFILE Presentation server File name

----


FORM SUB_GET_FILENAME CHANGING P_FILE TYPE C.

DATA : L_FILENAME TYPE STRING, " For File Name

L_PATH TYPE STRING, " For Directory

L_FULLPATH TYPE STRING. " Full path

*--- For File Open Dialog Box

CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOG

EXPORTING

WINDOW_TITLE = C_PCFILE " Window Title

DEFAULT_EXTENSION = C_TXT1 " File Extn

PROMPT_ON_OVERWRITE = C_FLAG_X " Over write

CHANGING

FILENAME = L_FILENAME " File Name

PATH = L_PATH " File Path

FULLPATH = L_FULLPATH " Full Path

EXCEPTIONS

CNTL_ERROR = 1

ERROR_NO_GUI = 2

NOT_SUPPORTED_BY_GUI = 3

OTHERS = 4.

IF SY-SUBRC NE 0.

*--- Error in opening the file

MESSAGE E000.

ELSE.

CONCATENATE L_PATH

L_FILENAME

INTO P_FILE.

V_PRESPATH = L_PATH.

ENDIF.

ENDFORM. " sub_get_filename

&----


*& Form sub_ap_f4

&----


  • f4 help attched with application server

----


FORM SUB_AP_F4 .

*--- FM for to get the Application Server Path

IF RB_AFILE = C_FLAG_X.

CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'

EXPORTING

  • DIRECTORY =

FILEMASK = C_ASC " File Extn

IMPORTING

SERVERFILE = P_AFILE " File Path

EXCEPTIONS

CANCELED_BY_USER = 1

OTHERS = 2.

IF SY-SUBRC NE 0.

*--- Error in opening the file

MESSAGE E000.

ENDIF.

ENDIF.

ENDFORM. " sub_ap_f4

&----


*& Form sub_modify_screen

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM SUB_MODIFY_SCREEN .

*--- Selection screen Modifications

IF RB_PFILE = C_FLAG_X.

LOOP AT SCREEN.

IF SCREEN-NAME = 'P_PFILE' OR

SCREEN-NAME = '%_P_PFILE_%_APP_%-TEXT'.

SCREEN-ACTIVE = C_FLAG_1.

CONCATENATE C_DIR C_GLD V_DATE SY-UZEIT(4) C_TXT INTO P_PFILE.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF SCREEN-NAME = 'P_PFILE' OR

SCREEN-NAME = '%_P_PFILE_%_APP_%-TEXT'.

SCREEN-ACTIVE = C_ZERO.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

IF RB_AFILE = C_FLAG_X.

LOOP AT SCREEN.

IF SCREEN-NAME = 'P_AFILE' OR

SCREEN-NAME = '%_P_AFILE_%_APP_%-TEXT'.

SCREEN-ACTIVE = C_FLAG_1.

CONCATENATE '/Solectron/Data/' C_GLD V_DATE SY-UZEIT(4) C_DAT

INTO P_AFILE.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ELSE.

LOOP AT SCREEN.

IF SCREEN-NAME = 'P_AFILE' OR

SCREEN-NAME = '%_P_AFILE_%_APP_%-TEXT'.

SCREEN-ACTIVE = C_ZERO.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

ENDIF.

IF RB_PFILE = C_FLAG_X.

LOOP AT SCREEN.

IF SCREEN-NAME = 'P_PFILE'.

SCREEN-ACTIVE = C_FLAG_1.

ENDIF.

IF SCREEN-NAME = 'P_AFILE'.

SCREEN-ACTIVE = C_ZERO.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF RB_AFILE = C_FLAG_X.

LOOP AT SCREEN.

IF SCREEN-NAME = 'P_PFILE'.

SCREEN-ACTIVE = C_ZERO.

ENDIF.

IF SCREEN-NAME = 'P_AFILE'.

SCREEN-ACTIVE = C_FLAG_1.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

ENDFORM. " sub_modify_screen

&----


*& Form sub_validation_bukrs

&----


  • Validation For Company Code

----


FORM SUB_VALIDATION_BUKRS .

DATA: L_BUKRS TYPE BUKRS. " Company Code

IF S_BUKRS IS NOT INITIAL.

IF S_BUKRS-HIGH IS NOT INITIAL AND S_BUKRS-LOW IS INITIAL.

MESSAGE E006.

ELSE.

*--- Validation for chart of accounts

SELECT BUKRS " Company Code

FROM T001 UP TO 1 ROWS

INTO L_BUKRS

WHERE BUKRS IN S_BUKRS.

ENDSELECT.

IF SY-SUBRC NE 0.

*--- Invalid Company code

MESSAGE E001.

ENDIF.

ENDIF.

ENDIF.

ENDFORM. " sub_validation_bukrs

&----


*& Form sub_validation_hkont

&----


  • Validation For General Ledger Account

----


FORM SUB_VALIDATION_HKONT .

DATA: L_HKONT TYPE HKONT. " General Ledger Account

IF S_HKONT IS INITIAL.

MESSAGE E002.

ELSE.

IF S_HKONT-HIGH IS NOT INITIAL AND S_HKONT-LOW IS INITIAL.

MESSAGE E006.

ELSE.

*--- Validation for chart of accounts

SELECT SAKNR " General Ledger Account

FROM SKA1 UP TO 1 ROWS

INTO L_HKONT

WHERE SAKNR IN S_HKONT AND KTOPL = '1SLR'.

ENDSELECT.

IF SY-SUBRC NE 0.

*--- Invalid General Ledger Account

MESSAGE E003.

ENDIF.

ENDIF.

ENDIF.

ENDFORM. " sub_validation_hkont

&----


*& Form sub_validation_gjahr

&----


  • Validation For Fiscal Year

----


FORM SUB_VALIDATION_GJAHR .

DATA: L_GJAHR TYPE GJAHR. " Fiscal Year

IF S_GJAHR IS NOT INITIAL.

IF S_GJAHR-HIGH IS NOT INITIAL AND S_GJAHR-LOW IS INITIAL.

MESSAGE E006.

ENDIF.

ENDIF.

ENDFORM. " sub_validation_gjahr

&----


*& Form sub_validation_monat

&----


  • Validation For Fiscal period

----


FORM SUB_VALIDATION_MONAT .

DATA: L_MONAT TYPE MONAT. " Fiscal period

IF S_MONAT IS NOT INITIAL.

IF S_MONAT-LOW LE C_ZERO.

*--- Invalid Fiscal Period

MESSAGE E006.

ENDIF.

IF S_MONAT-HIGH GT C_FLAG_12.

*--- Invalid Fiscal Period

MESSAGE E007.

ENDIF.

ENDIF.

ENDFORM. " sub_validation_monat

&----


*& Form sub_validation_belnr

&----


  • Validation For Accounting Document Number

----


FORM SUB_VALIDATION_BELNR .

DATA: L_BELNR TYPE BELNR_D. " Accounting Document Number

IF S_BELNR IS NOT INITIAL.

IF S_BELNR-HIGH IS NOT INITIAL AND S_BELNR-LOW IS INITIAL.

MESSAGE E006.

ENDIF.

ENDIF.

ENDFORM. " sub_validation_belnr

&----


*& Form sub_validation_budat

&----


  • Validation For Posting Date

----


FORM SUB_VALIDATION_BUDAT .

DATA: L_BUDAT TYPE BUDAT. " Posting Date

IF S_BUDAT IS NOT INITIAL.

IF S_BUDAT-HIGH IS NOT INITIAL AND S_BUDAT-LOW IS INITIAL.

MESSAGE E006.

ENDIF.

ENDIF.

ENDFORM. " sub_validation_budat

&----


*& Form sub_validation_prctr

&----


  • Validation For Profit Center

----


FORM SUB_VALIDATION_PRCTR .

DATA: L_PRCTR TYPE PRCTR. " Profit Center

IF S_PRCTR IS INITIAL.

MESSAGE E010.

ELSE.

IF S_PRCTR-HIGH IS NOT INITIAL AND S_PRCTR-LOW IS INITIAL.

MESSAGE E006.

ELSE.

*--- Validation for chart of accounts

SELECT PRCTR " Profit Center

FROM CEPC UP TO 1 ROWS

INTO L_PRCTR

WHERE PRCTR IN S_PRCTR.

ENDSELECT.

IF SY-SUBRC NE 0.

*--- Invalid Profit Center

MESSAGE E011.

ENDIF.

ENDIF.

ENDIF.

ENDFORM. " sub_validation_prctr

&----


*& Form sub_validation_blart

&----


  • Validation For Document type

----


FORM SUB_VALIDATION_BLART .

DATA: L_BLART TYPE BLART. " Document type

IF S_BLART IS INITIAL.

MESSAGE E012.

ELSE.

IF S_BLART-HIGH IS NOT INITIAL AND S_BLART-LOW IS INITIAL.

MESSAGE E006.

ENDIF.

ENDIF.

ENDFORM. " sub_validation_blart

&----


*& Form sub_check_filepath

&----


  • Check user input for initial filename

----


FORM SUB_CHECK_FILEPATH .

IF RB_PFILE = C_FLAG_X.

IF P_PFILE IS INITIAL.

*--- The Local File Path can not be Empty

MESSAGE I014.

LEAVE LIST-PROCESSING.

ENDIF.

ELSEIF RB_AFILE = C_FLAG_X.

IF P_AFILE IS INITIAL.

*--- The App Server File Path can not be Empty

MESSAGE I015.

LEAVE LIST-PROCESSING.

ENDIF.

ENDIF.

ENDFORM. " sub_check_filepath

&----


*& Form sub_prepare_final

&----


  • append the required output data in to the internal table.

----


FORM SUB_PREPARE_FINAL.

*----


changes on 30 th may by dileep

  • SELECT * FROM BSEG INTO TABLE I_BSEG WHERE HKONT IN S_HKONT AND "G/L Account

  • GJAHR IN S_GJAHR AND

  • PRCTR IN S_PRCTR AND "Profit Center

  • BLART IN S_BLART . "Document Type

SELECT BUKRS

HKONT

BELNR

DMBTR

KOSTL

PRCTR

FROM BSEG INTO TABLE IT_BSEG WHERE HKONT IN S_HKONT AND "G/L Account

PRCTR IN S_PRCTR. "Profit Center

LOOP AT IT_BSEG INTO WA_BSEG.

SELECT SINGLE GJAHR

BUDAT

WAERS

XBLNR

BLART

MONAT

INTO (W_BSEG-GJAHR,W_BSEG-BUDAT,W_BSEG-WAERS,W_BSEG-XBLNR,W_BSEG-BLART,W_BSEG-MONAT)

FROM BKPF WHERE BELNR = W_BSEG-BELNR AND

GJAHR IN S_GJAHR AND

BLART IN S_BLART . "Document Type

MOVE WA_BSEG-BUKRS TO W_BSEG-BUKRS.

MOVE WA_BSEG-HKONT TO W_BSEG-HKONT.

MOVE WA_BSEG-BELNR TO W_BSEG-BELNR.

MOVE WA_BSEG-DMBTR TO W_BSEG-DMBTR.

MOVE WA_BSEG-KOSTL TO W_BSEG-KOSTL.

MOVE WA_BSEG-PRCTR TO W_BSEG-PRCTR.

APPEND W_BSEG TO I_BSEG.

ENDLOOP.

*----


changes on 30 th may by dileep

IF S_BUKRS IS NOT INITIAL.

SORT I_BSEG BY BUKRS ASCENDING.

DELETE I_BSEG WHERE NOT BUKRS IN S_BUKRS.

ENDIF.

IF S_MONAT IS NOT INITIAL.

SORT I_BSEG BY GJAHR MONAT ASCENDING.

IF S_MONAT-HIGH IS NOT INITIAL AND S_MONAT-LOW IS NOT INITIAL.

DELETE I_BSEG WHERE MONAT < S_MONAT-LOW OR MONAT > S_MONAT-HIGH.

ENDIF.

IF S_MONAT-HIGH IS INITIAL AND S_MONAT-LOW IS NOT INITIAL.

DELETE I_BSEG WHERE MONAT NE S_MONAT-LOW.

ENDIF.

ENDIF.

IF S_BELNR IS NOT INITIAL.

SORT I_BSEG BY BELNR ASCENDING.

DELETE I_BSEG WHERE NOT BELNR IN S_BELNR.

ENDIF.

IF S_BUDAT IS NOT INITIAL.

SORT I_BSEG BY BUDAT ASCENDING.

DELETE I_BSEG WHERE NOT BUDAT IN S_BUDAT.

ENDIF.

LOOP AT I_BSEG INTO W_BSEG.

MOVE W_BSEG-BUKRS TO W_FINAL-BUKRS.

MOVE W_BSEG-HKONT TO W_FINAL-HKONT_P.

MOVE W_BSEG-GJAHR TO W_FINAL-GJAHR.

MOVE W_BSEG-BELNR TO W_FINAL-BELNR.

MOVE W_BSEG-BUDAT TO W_FINAL-BUDAT.

MOVE W_BSEG-WAERS TO W_FINAL-WAERS.

MOVE W_BSEG-XBLNR TO W_FINAL-XBLNR.

MOVE W_BSEG-BLART TO W_FINAL-BLART.

MOVE W_BSEG-MONAT TO W_FINAL-MONAT.

MOVE W_BSEG-DMBTR TO W_FINAL-DMBTR_P.

MOVE W_BSEG-KOSTL TO W_FINAL-KOSTL.

MOVE W_BSEG-PRCTR TO W_FINAL-PRCTR_P.

SELECT SINGLE * FROM BSEG INTO W_BSEG1 WHERE BELNR = W_BSEG-BELNR AND "Document Type

BUZID = 'W' .

IF SY-SUBRC = 0.

MOVE W_BSEG1-HKONT TO W_FINAL-HKONT_G.

MOVE W_BSEG1-DMBTR TO W_FINAL-DMBTR_G.

MOVE W_BSEG1-PRCTR TO W_FINAL-PRCTR_G.

MOVE W_BSEG1-BUZID TO W_FINAL-BUZID_G.

ELSE.

EXIT.

ENDIF.

APPEND W_FINAL TO I_FINAL.

SORT I_FINAL BY BELNR ASCENDING.

ENDLOOP.

ENDFORM. " sub_prepare_final

&----


*& Form sub_download_data

&----


  • Download data

----


FORM SUB_DOWNLOAD_DATA .

DATA : V_PRD(2) TYPE N.

IF RB_PFILE = C_FLAG_X.

*--- Downloading To presentation server

V_PRESPATH = P_PFILE.

PERFORM SUB_DOWNLOAD_PRESSERVER.

ELSEIF RB_AFILE = C_FLAG_X.

*--- Downloading To Application server in Auto Mode

V_APPPATH = P_AFILE.

PERFORM SUB_DOWNLOAD_APPSERVER.

ENDIF.

ENDFORM. " sub_download_data

&----


*& Form sub_download_presserver

&----


  • text

----


FORM SUB_DOWNLOAD_PRESSERVER.

DATA: MESSAGE TYPE STRING.

IF I_FINAL[] IS INITIAL.

MESSAGE I016.

EXIT.

ELSE.

W_FINAL_P-BUKRS = 'Company Code'.

W_FINAL_P-DELIMITER_1 = '|'.

W_FINAL_P-HKONT_P = 'G/L Account Number'.

W_FINAL_P-DELIMITER_2 = '|'.

W_FINAL_P-GJAHR = 'Fiscal Year'.

W_FINAL_P-DELIMITER_3 = '|'.

W_FINAL_P-BELNR = 'A/c Document Number'.

W_FINAL_P-DELIMITER_4 = '|'.

W_FINAL_P-BUDAT = 'Posting Date' .

W_FINAL_P-DELIMITER_5 = '|'.

W_FINAL_P-WAERS = 'Currency'.

W_FINAL_P-DELIMITER_6 = '|'.

W_FINAL_P-XBLNR = 'Ref. Document Number'.

W_FINAL_P-DELIMITER_7 = '|'.

W_FINAL_P-BLART = 'Document Type'.

W_FINAL_P-DELIMITER_8 = '|'.

W_FINAL_P-MONAT = 'Fiscal Period'.

W_FINAL_P-DELIMITER_9 = '|'.

W_FINAL_P-DMBTR_P = 'Amount'.

W_FINAL_P-DELIMITER_10 = '|'.

W_FINAL_P-KOSTL = 'Cost Center'.

W_FINAL_P-DELIMITER_11 = '|'.

W_FINAL_P-PRCTR_P = 'Profit Center'.

W_FINAL_P-DELIMITER_12 = '|'.

W_FINAL_P-HKONT_G = 'G/L Account Number'.

W_FINAL_P-DELIMITER_13 = '|'.

W_FINAL_P-DMBTR_G = 'Amount'.

W_FINAL_P-DELIMITER_14 = '|'.

W_FINAL_P-PRCTR_G = 'Profit Center'.

W_FINAL_P-DELIMITER_15 = '|'.

W_FINAL_P-BUZID_G = 'Line Item Id'.

APPEND W_FINAL_P TO I_FINAL_P.

LOOP AT I_FINAL INTO W_FINAL.

W_FINAL_P-BUKRS = W_FINAL-BUKRS.

W_FINAL_P-DELIMITER_1 = '|'.

W_FINAL_P-HKONT_P = W_FINAL-HKONT_P.

W_FINAL_P-DELIMITER_2 = '|'.

W_FINAL_P-GJAHR = W_FINAL-GJAHR.

W_FINAL_P-DELIMITER_3 = '|'.

W_FINAL_P-BELNR = W_FINAL-BELNR.

W_FINAL_P-DELIMITER_4 = '|'.

W_FINAL_P-BUDAT = W_FINAL-BUDAT .

W_FINAL_P-DELIMITER_5 = '|'.

W_FINAL_P-WAERS = W_FINAL-WAERS.

W_FINAL_P-DELIMITER_6 = '|'.

W_FINAL_P-XBLNR = W_FINAL-XBLNR.

W_FINAL_P-DELIMITER_7 = '|'.

W_FINAL_P-BLART = W_FINAL-BLART.

W_FINAL_P-DELIMITER_8 = '|'.

W_FINAL_P-MONAT = W_FINAL-MONAT.

W_FINAL_P-DELIMITER_9 = '|'.

W_FINAL_P-DMBTR_P = W_FINAL-DMBTR_P.

W_FINAL_P-DELIMITER_10 = '|'.

W_FINAL_P-KOSTL = W_FINAL-KOSTL.

W_FINAL_P-DELIMITER_11 = '|'.

W_FINAL_P-PRCTR_P = W_FINAL-PRCTR_P.

W_FINAL_P-DELIMITER_12 = '|'.

W_FINAL_P-HKONT_G = W_FINAL-HKONT_G.

W_FINAL_P-DELIMITER_13 = '|'.

W_FINAL_P-DMBTR_G = W_FINAL-DMBTR_G.

W_FINAL_P-DELIMITER_14 = '|'.

W_FINAL_P-PRCTR_G = W_FINAL-PRCTR_G.

W_FINAL_P-DELIMITER_15 = '|'.

W_FINAL_P-BUZID_G = W_FINAL-BUZID_G.

APPEND W_FINAL_P TO I_FINAL_P.

CLEAR : W_FINAL_P, W_FINAL.

ENDLOOP.

ENDIF.

*---Downloading data to file on Presentation Server

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

FILENAME = V_PRESPATH

FILETYPE = 'ASC'

TABLES

DATA_TAB = I_FINAL_P

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.

*-- File can not be opened successfully

IF SY-SUBRC NE 0.

IF SY-BATCH EQ C_FLAG_X. " Stop Processing

MESSAGE E017. " File could not be opened

ELSE.

MESSAGE I017. " File could not be opened

LEAVE LIST-PROCESSING.

ENDIF.

ELSE.

CONCATENATE 'Data Successfully downloaded to the Specified Location' V_PRESPATH INTO MESSAGE SEPARATED BY SPACE.

MESSAGE MESSAGE TYPE 'S'.

ENDIF.

MODIFY SCREEN.

ENDFORM. " sub_download_presserver

&----


*& Form sub_download_appserver

&----


  • text

----


FORM SUB_DOWNLOAD_APPSERVER .

DATA: V_FILE TYPE STRING, " String

P_DMBTR TYPE CHAR20,

G_DMBTR TYPE CHAR20,

MESSAGE1 TYPE STRING.

IF I_FINAL[] IS INITIAL.

IF SY-BATCH EQ C_FLAG_X.

*--- File contains no data

MESSAGE E016 .

ELSE.

*--- File contains no data

MESSAGE I016 .

LEAVE LIST-PROCESSING.

ENDIF.

ENDIF.

*--- To Open The file in Application Server

OPEN DATASET V_APPPATH FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

IF SY-SUBRC NE 0.

*--- Display error message: "Could not open file"

IF SY-BATCH EQ C_FLAG_X.

*--- File contains no data

MESSAGE E016 .

ELSE.

*--- File contains no data

MESSAGE I016 .

LEAVE LIST-PROCESSING.

ENDIF.

ENDIF.

*--- Perform for building the Report header

CONCATENATE

'COMPANY_CODE'

'G/L_ACCOUNT_NUMBER'

'FISCAL_YEAR'

'A/C_DOCUMENT_NUMBER'

'POSTING_DATE'

'CURRENCY'

'REF_DOCUMENT_NUMBER'

'DOCUMENT_TYPE'

'FISCAL_PERIOD'

'AMOUNT'

'COSTCENTER'

'PROFIT_CENTER'

'G/L_ACCOUNT_NUMBER'

'AMOUNT'

'PROFIT_CENTER'

'LINE_ITEM_ID'

INTO V_FILE SEPARATED BY C_DELIMITER.

TRANSFER V_FILE TO V_APPPATH.

*--- Transfer the data to application Server

LOOP AT I_FINAL INTO W_FINAL.

P_DMBTR = W_FINAL-DMBTR_P.

G_DMBTR = W_FINAL-DMBTR_G.

CONCATENATE

W_FINAL-BUKRS

W_FINAL-HKONT_P

W_FINAL-GJAHR

W_FINAL-BELNR

W_FINAL-BUDAT

W_FINAL-WAERS

W_FINAL-XBLNR

W_FINAL-BLART

W_FINAL-MONAT

P_DMBTR

W_FINAL-KOSTL

W_FINAL-PRCTR_P

W_FINAL-HKONT_G

G_DMBTR

W_FINAL-PRCTR_G

W_FINAL-BUZID_G

INTO V_FILE SEPARATED BY C_DELIMITER.

TRANSFER V_FILE TO V_APPPATH.

IF SY-SUBRC NE 0.

  • Display error message: "Data could not be written at the location"

MESSAGE 'Data could not be written at the location' TYPE 'I'.

EXIT.

ENDIF.

CLEAR V_FILE.

ENDLOOP.

CLOSE DATASET V_APPPATH.

IF SY-SUBRC NE 0.

  • Display error message: "File could not be closed"

MESSAGE 'File could not be closed' TYPE 'I'.

EXIT.

ELSE.

CONCATENATE 'Data Successfully downloaded to the Specified Location' V_APPPATH INTO MESSAGE1 SEPARATED BY SPACE.

MESSAGE MESSAGE1 TYPE 'S'.

ENDIF.

ENDFORM. " sub_download_appserver