Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

report

Former Member
0 Likes
855

Hi,

Can you please help me in sending one normal report which is down loading data to unix file as well as to text file. And for this report i need separator (Tab Delimeter) between the fileds.

Please send me the example report.

Thanks & Regards

Ahammad

4 REPLIES 4
Read only

Former Member
0 Likes
697

check below code.

AWARD POINTS...

REPORT ZFO_SAPTOHR_COSTCENTERS NO STANDARD PAGE HEADING

MESSAGE-ID ZZ

LINE-SIZE 132

LINE-COUNT 65.

----


  • TABLES

*----


TABLES :SSCRFIELDS, " Fields on selection screens

CSKS, " Cost Center Master Data

CSKT, " Cost Center Texts

T001, " Company Codes

ZXMW_XREF_GNRIC. " X-Ref tables for Mapping App - Generic table

----


  • TYPES

----


TYPES : BEGIN OF TY_CSKS,

KOKRS LIKE CSKS-KOKRS, " Controlling Area

KOSTL LIKE CSKS-KOSTL, " Cost Center

DATBI LIKE CSKS-DATBI, " To-Date

DATAB LIKE CSKS-DATAB, " From-date

BUKRS LIKE CSKS-BUKRS, " Company code

KOSAR LIKE CSKS-KOSAR, " Headcount Indicator

VERAK LIKE CSKS-VERAK, " Person Responsible

BKZKP LIKE CSKS-BKZKP, " Lock Indocator for Actual

" Primiary Postings

ERSDA LIKE CSKS-ERSDA, " Date Created

BUTXT LIKE T001-BUTXT, " Company name

SKUID LIKE ZXMW_XREF_GNRIC-SKUID," Old cost center

KTEXT LIKE CSKT-KTEXT, " Short Name

LTEXT LIKE CSKT-LTEXT, " Long Name

TGVAL LIKE ZXMW_XREF_GNRIC-TGVAL,

END OF TY_CSKS.

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

  • CONSTANTS

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

DATA : C_SELECTED TYPE C VALUE 'X', "Field for constant value 'X'

W_MESSAGE TYPE c, "ERROR MESSAGE

C_SRCID LIKE ZXMW_XREF_GNRIC-SRCID VALUE '3329',

C_ENTID LIKE ZXMW_XREF_GNRIC-ENTID VALUE '0062',

"MW Master Data Entity ID

C_DVERS LIKE ZXMW_XREF_GNRIC-DVERS VALUE '01',

" Definition Version for MW

" Mapping App

W_SKEY(22) TYPE N ,

W_KOSTL LIKE CSKS-KOSTL.

----


  • INTERNAL TABLES

----


*Internal table for getting the Cost centers

DATA : IT_CSKS TYPE TY_CSKS OCCURS 0 WITH HEADER LINE.

DATA: IT_COSTCENTERS LIKE BAPI0012_CCLIST OCCURS 100 WITH HEADER LINE,

IT_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE,

IT_COSTCENTERDETAIL LIKE BAPI0012_CCOUTPUTLIST OCCURS 0 WITH

HEADER LINE.

*Internal table for final data

DATA : BEGIN OF IT_FINAL_DATA OCCURS 0,

TEXT(170) TYPE C,

END OF IT_FINAL_DATA.

*Internal table for old cost centers .

DATA :IT_ZXMW_XREF_GNRIC LIKE ZXMW_XREF_GNRIC OCCURS 0 WITH HEADER LINE.

*Internal table for costcenter Text.

DATA :BEGIN OF IT_CSKT OCCURS 0,

KOSTL LIKE CSKT-KOSTL,

DATBI LIKE CSKT-DATBI,

KTEXT LIKE CSKT-KTEXT,

LTEXT LIKE CSKT-LTEXT,

END OF IT_CSKT.

----


  • SELECTION-SCREEN

----


*--Block for File path.

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

PARAMETERS: P_KOKRS LIKE CSKS-KOKRS DEFAULT '1000'.

PARAMETERS: P_KOSAR LIKE CSKS-KOSAR DEFAULT 'Y'.

PARAMETERS :R1 RADIOBUTTON GROUP GRP1 DEFAULT 'X'.

PARAMETERS: P_UNIX LIKE RLGRAP-FILENAME DEFAULT

'/tmp/ZFO_SAPTOHR_COSTCENTERS.TXT'.

PARAMETERS :R2 RADIOBUTTON GROUP GRP1.

PARAMETERS: P_FILE LIKE RLGRAP-FILENAME DEFAULT 'C:\'.

SELECTION-SCREEN END OF BLOCK B1.

----


  • AT SELECTION-SCREEN ON

----


AT SELECTION-SCREEN ON BLOCK B1.

  • Form to Validate data specified on Selection Screen

CHECK SSCRFIELDS-UCOMM EQ 'ONLI'.

PERFORM SELECTIONSCREEN_VALIDATIONS.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

  • Form to get file path to download the data

PERFORM GET_FILE_PATH USING P_FILE.

----


  • START-OF-SELECTION.

----


START-OF-SELECTION.

*Form to get the costcenters.

PERFORM GETCOSTCENTERS.

*Form to get the costcenter details.

PERFORM GETCOSTDETAILS.

*Form to find the corresponding Cost Centers in Legacy system

  • PERFORM GET_LEGACY_COSTCENTERS.

----


  • END-OF-SELECTION

----


END-OF-SELECTION.

IF R1 = 'X'.

PERFORM DOWNLOAD_UNIXFILE.

ELSE.

PERFORM DOWNLOAD_LOCALFILE.

ENDIF.

&----


*& Form GETCOSTCENTERS

&----


  • LIST OF COST CENTERS.

----


FORM GETCOSTCENTERS .

CALL FUNCTION 'BAPI_COSTCENTER_GETLIST1'

EXPORTING

CONTROLLINGAREA = P_KOKRS

  • COSTCENTER_FROM =

  • COSTCENTER_TO =

  • COMPANYCODE_FROM =

  • COMPANYCODE_TO =

  • PERSON_IN_CHARGE_FROM =

  • PERSON_IN_CHARGE_TO =

  • DATE_FROM = SY-DATUM

  • DATE_TO =

  • COSTCENTERGROUP =

  • BUSINESS_AREA_FROM =

  • BUSINESS_AREA_TO =

  • MASTER_DATA_INACTIVE =

TABLES

COSTCENTERLIST = IT_COSTCENTERS

RETURN = IT_RETURN.

  • EXTENSIONIN =

  • EXTENSIONOUT =

IF SY-SUBRC <> 0.

MESSAGE E002 WITH 'NO COST CENTERS FOUND'(002).

ENDIF.

ENDFORM. " GETCOSTCENTERS

&----


*& Form GETCOSTDETAILS

&----


  • Get the Costcenter Details

----


FORM GETCOSTDETAILS .

IF NOT IT_COSTCENTERS[] IS INITIAL.

SELECT KOKRS

KOSTL

DATBI

DATAB

BUKRS

KOSAR

VERAK

BKZKP

ERSDA

FROM CSKS

INTO TABLE IT_CSKS

FOR ALL ENTRIES IN IT_COSTCENTERS

WHERE KOKRS = IT_COSTCENTERS-CO_AREA AND

KOSAR = P_KOSAR AND

BKZKP = SPACE.

ENDIF.

IF NOT IT_CSKS[] IS INITIAL.

SELECT KOSTL

DATBI

KTEXT

LTEXT

FROM CSKT

INTO TABLE IT_CSKT

FOR ALL ENTRIES IN IT_CSKS

WHERE SPRAS = SY-LANGU AND

KOKRS = IT_CSKS-KOKRS AND

KOSTL = IT_CSKS-KOSTL AND

DATBI = IT_CSKS-DATBI.

SORT IT_CSKT BY KOSTL DATBI.

ENDIF.

LOOP AT IT_CSKS.

READ TABLE IT_CSKT WITH KEY KOSTL = IT_CSKS-KOSTL

DATBI = IT_CSKS-DATBI

BINARY SEARCH.

IF SY-SUBRC = 0.

IT_CSKS-KTEXT = IT_CSKT-KTEXT.

IT_CSKS-LTEXT = IT_CSKT-LTEXT.

ENDIF.

SELECT SINGLE BUTXT

FROM T001

INTO IT_CSKS-BUTXT

WHERE BUKRS = IT_CSKS-BUKRS.

CLEAR : W_KOSTL.

W_KOSTL = IT_CSKS-KOSTL.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

EXPORTING

INPUT = W_KOSTL

IMPORTING

OUTPUT = W_KOSTL.

CONCATENATE IT_CSKS-KOKRS W_KOSTL IT_CSKS-DATBI INTO W_SKEY.

SELECT SINGLE TGVAL

FROM ZXMW_XREF_GNRIC

INTO IT_CSKS-TGVAL

WHERE SRCID = C_SRCID AND

ENTID = C_ENTID AND

DVERS = C_DVERS AND

EFFDT <= SY-DATUM AND

EXPDT GT SY-DATUM AND

SKVAL = W_SKEY AND

STATUS <> 'U' .

  • IF SY-SUBRC = 0.

  • MODIFY IT_CSKS.

  • ENDIF.

*

  • CONCATENATE IT_CSKS-BUKRS IT_CSKS-BUTXT IT_CSKS-KOSTL IT_CSKS-TGVAL

  • IT_CSKS-KTEXT IT_CSKS-LTEXT IT_CSKS-BKZKP IT_CSKS-KOSAR

  • IT_CSKS-VERAK IT_CSKS-ERSDA IT_CSKS-DATBI IT_CSKS-DATAB

  • INTO IT_FINAL_DATA SEPARATED BY '~'.

*

  • CONCATENATE IT_FINAL_DATA '~' INTO IT_FINAL_DATA .

  • APPEND IT_FINAL_DATA.

  • CLEAR : IT_FINAL_DATA,

  • IT_CSKS.

MODIFY IT_CSKS.

CONCATENATE IT_CSKS-BUKRS IT_CSKS-BUTXT IT_CSKS-KOSTL IT_CSKS-TGVAL

IT_CSKS-KTEXT IT_CSKS-LTEXT IT_CSKS-BKZKP IT_CSKS-KOSAR

IT_CSKS-VERAK IT_CSKS-ERSDA IT_CSKS-DATBI IT_CSKS-DATAB

INTO IT_FINAL_DATA SEPARATED BY '~'.

CONCATENATE IT_FINAL_DATA '~' INTO IT_FINAL_DATA .

APPEND IT_FINAL_DATA.

CLEAR :IT_CSKS.

ENDLOOP.

ENDFORM. " GETCOSTDETAILS

*

**&----


*

**& Form DOWNLOAD_UNIXFILE

**&----


*

    • Placing file in Application server

**----


FORM DOWNLOAD_UNIXFILE .

OPEN DATASET P_UNIX FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.

IF SY-SUBRC NE 0.

MESSAGE E001(0) WITH 'Unable to open file'.

ENDIF.

DO.

READ TABLE IT_FINAL_DATA INDEX SY-INDEX.

IF SY-SUBRC EQ 0.

TRANSFER IT_FINAL_DATA TO P_UNIX.

ELSE.

MESSAGE S001 WITH 'File' P_UNIX 'Successfully Downloaded'.

EXIT.

ENDIF.

ENDDO.

CLOSE DATASET P_UNIX.

ENDFORM. "DOWNLOAD_UNIXFILE

&----


*& Form DOWNLOAD_LOCALFILE

&----


  • Placing file in Presentation server

----


FORM DOWNLOAD_LOCALFILE .

DATA:L_FILE TYPE STRING.

L_FILE = P_FILE.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

FILENAME = L_FILE

FILETYPE = 'ASC'

TABLES

DATA_TAB = IT_FINAL_DATA

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.

IF SY-SUBRC <> 0.

MESSAGE E001 WITH 'Unable to open the file'.

ELSE.

MESSAGE S001 WITH 'File' L_FILE 'Successfully Downloaded'.

ENDIF.

ENDFORM. " DOWNLOAD_LOCALFILE

&----


*& Form GET_FILE_PATH

&----


  • F4 HELP to get the File Path

----


FORM GET_FILE_PATH USING P_P_FILE.

CALL FUNCTION 'F4_FILENAME'

IMPORTING

FILE_NAME = P_P_FILE.

ENDFORM. " GET_FILE_PATH

&----


*& Form GET_LEGACY_COSTCENTERS

&----


  • Legacy system Cost centers

----


*FORM GET_LEGACY_COSTCENTERS .

*

  • LOOP AT IT_CSKS.

*

  • CONCATENATE IT_CSKS-KOKRS IT_CSKS-KOSTL IT_CSKS-DATBI INTO W_SKEY.

*

  • SELECT SINGLE TGVAL

  • FROM ZXMW_XREF_GNRIC

  • INTO IT_CSKS-TGVAL

  • WHERE SRCID = C_SRCID AND

  • ENTID = C_ENTID AND

  • DVERS = C_DVERS AND

  • EFFDT <= SY-DATUM AND

  • EXPDT GT SY-DATUM AND

  • TGVAL = IT_CSKS-KOSTL AND

  • STATUS <> 'U' .

*

  • IF SY-SUBRC = 0.

  • MODIFY IT_CSKS.

  • ENDIF.

*

  • CONCATENATE IT_CSKS-BUKRS IT_CSKS-BUTXT IT_CSKS-KOSTL IT_CSKS-SKUID

  • IT_CSKS-KTEXT IT_CSKS-LTEXT IT_CSKS-BKZKP IT_CSKS-KOSAR

  • IT_CSKS-VERAK IT_CSKS-ERSDA IT_CSKS-DATBI IT_CSKS-DATAB

  • INTO IT_FINAL_DATA SEPARATED BY '~'.

*

  • CONCATENATE IT_FINAL_DATA '~' INTO IT_FINAL_DATA .

  • APPEND IT_FINAL_DATA.

  • CLEAR : IT_FINAL_DATA,

  • IT_CSKS.

  • ENDLOOP.

*

*ENDFORM. " GET_LEGACY_COSTCENTERS

&----


*& Form SELECTIONSCREEN_VALIDATIONS

&----


  • Form used for selection screen validations

----


FORM SELECTIONSCREEN_VALIDATIONS .

DATA : L_LEN TYPE I,

L_LEN1 TYPE I.

*If Presentation Server file path is not entered throw a Error message

IF P_FILE IS INITIAL AND R2 = C_SELECTED.

CLEAR SSCRFIELDS-UCOMM.

MESSAGE E001(ZZ) WITH TEXT-012.

ENDIF.

*If Application Server file path is not entered throw a Error message

IF P_UNIX IS INITIAL AND R1 = C_SELECTED.

CLEAR SSCRFIELDS-UCOMM.

MESSAGE E001(ZZ) WITH TEXT-021.

ENDIF.

  • In Presentation server path,If second character is not ':' throw a

  • Error message

IF R2 = C_SELECTED.

IF P_FILE+1(1) NE ':'.

MESSAGE E001(ZZ) WITH TEXT-003.

ENDIF.

ENDIF.

  • In Presentation server path,If the file path starts with '/' or '\'

  • throw a Error message

IF R2 = C_SELECTED.

IF P_FILE0(1) EQ '\' OR P_FILE0(1) EQ '/'.

MESSAGE E001(ZZ) WITH TEXT-003.

ENDIF.

ENDIF.

  • Checking whether the Application Server Path is valid or not

IF R1 = 'X'.

CLEAR W_Message.

OPEN DATASET P_UNIX FOR INPUT IN TEXT MODE

MESSAGE W_Message ENCODING DEFAULT.

IF SY-SUBRC <> 0.

MESSAGE E001(ZZ) WITH P_UNIX W_Message.

STOP.

ELSE.

CLOSE DATASET P_UNIX.

ENDIF.

ENDIF.

ENDFORM. " SELECTIONSCREEN_VALIDATIONS

Read only

Former Member
0 Likes
697

Hi,

You can use transaction codes CG3Y and CG3Z to upload the file to Application server. and use the GUI_DOWNLOAD to download the file to Desktop

Regards

Sudheer

Read only

Former Member
0 Likes
697

Hi Ahammad,

Below is a report program which download data into an falt file with delimiter.

&----


*& Report ZDOWNLOAD

*&

&----


*&

*&

&----


REPORT ZDOWNLOAD.

  • PROGRAM TO DOWNLOAD FROM ITAB INTO FLAT FILE.

DATA: I_LFA1 LIKE LFA1 OCCURS 0 WITH HEADER LINE.

DATA: FILE TYPE STRING.

START-OF-SELECTION.

SELECT * FROM LFA1 INTO TABLE I_LFA1 UP TO 10 ROWS.

DATA: PATH LIKE IBIPPARMS-PATH.

CALL FUNCTION 'F4_FILENAME'

EXPORTING

PROGRAM_NAME = SYST-CPROG

DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = ' '

IMPORTING

FILE_NAME = PATH

.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

FILENAME = FILE

FILETYPE = 'ASC'

WRITE_FIELD_SEPARATOR = 'X'

TABLES

DATA_TAB = I_LFA1 .

IF SY-SUBRC <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ELSE.

WRITE: / 'FILE DOWNLOADED', FILE.

ENDIF.

Reward points if it is useful.

Regards,

Daniel

Read only

Former Member
0 Likes
697

See the simple program :

REPORT ZTEST3 line-size 400.

Tables : makt.

data : begin of i_makt occurs 0,

matnr like makt-matnr,

maktx like makt-maktx,

end of i_makt.

data : P_file(128) type c.

data : v_data(70) type c.

start-of-selection.

p_file = '/tmp/text.txt'.

select matnr maktx from makt into table i_makt up to 100 rows.

  • Open the file

open dataset p_file for input in text mode ."FILTER 'compress'.

loop at i_makt.

concatenate i_makt-matnr i_makt-maktx into v_data SEPARATED BY '~'.

transfer v_data to p_file.

clear v_data.

endloop.

close dataset p_file.

Reward Points if it is helpful

Thanks

Seshu