cancel
Showing results for 
Search instead for 
Did you mean: 

data retrieval

Former Member
0 Kudos

Dear Experts,

I have a requirement that i have to retrieve data from all the PA tables for one or multiple pernr's and download it to a text file.please help me out which function module will be suitable.please suggest me some logic. thanks in advance

Raj

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Raj,

Use this Example.

RH_START_EXCEL_WITH_DATA

TABLES: VBAK,VBAP.

DATA: BEGIN OF I_VBAK OCCURS 0,

VBELN LIKE VBAK-VBELN,

ERDAT LIKE VBAK-ERDAT,

ERNAM LIKE VBAK-ERNAM,

AUDAT LIKE VBAK-AUDAT,

VBTYP LIKE VBAK-VBTYP,

END OF I_VBAK.

DATA: BEGIN OF I_VBAP OCCURS 0,

VBELN LIKE VBAP-VBELN,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

CHARG LIKE VBAP-CHARG,

MATKL LIKE VBAP-MATKL,

END OF I_VBAP.

DATA: BEGIN OF IT_VBAK OCCURS 0,

VBELN LIKE VBAK-VBELN,

ERDAT LIKE VBAK-ERDAT,

ERNAM LIKE VBAK-ERNAM,

AUDAT LIKE VBAK-AUDAT,

VBTYP LIKE VBAK-VBTYP,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

CHARG LIKE VBAP-CHARG,

MATKL LIKE VBAP-MATKL,

END OF IT_VBAK.

SELECT VBELN ERDAT ERNAM AUDAT VBTYP FROM VBAK INTO TABLE I_VBAK.

SELECT VBELN POSNR MATNR CHARG MATKL FROM VBAP INTO TABLE I_VBAP.

SORT: I_VBAK BY VBELN,I_VBAP BY VBELN.

LOOP AT I_VBAK.

READ TABLE I_VBAP WITH KEY VBELN = I_VBAK-VBELN BINARY SEARCH.

IF SY-SUBRC = 0.

MOVE I_VBAK-VBELN TO IT_VBAK-VBELN.

MOVE I_VBAK-ERDAT TO IT_VBAK-ERDAT.

MOVE I_VBAK-ERNAM TO IT_VBAK-ERNAM.

MOVE I_VBAK-AUDAT TO IT_VBAK-AUDAT.

MOVE I_VBAK-VBTYP TO IT_VBAK-VBTYP.

MOVE I_VBAP-POSNR TO IT_VBAK-POSNR.

MOVE I_VBAP-MATNR TO IT_VBAK-MATNR.

MOVE I_VBAP-CHARG TO IT_VBAK-CHARG.

MOVE I_VBAP-MATKL TO IT_VBAK-MATKL.

APPEND IT_VBAK.

ENDIF.

ENDLOOP.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

BIN_FILESIZE =

FILENAME = 'D:\C5.DOC'

FILETYPE = 'ASC' "Separate Columns by Tabs in Case of ASCII Download

APPEND = ' '

WRITE_FIELD_SEPARATOR = 'X'

HEADER = '00'

TRUNC_TRAILING_BLANKS = ' '

WRITE_LF = 'X'

COL_SELECT = ' '

COL_SELECT_MASK = ' '

DAT_MODE = ' '

CONFIRM_OVERWRITE = 'X' "Overwrite The File Only After

Confirmation

NO_AUTH_CHECK = ' '

CODEPAGE = ' '

IGNORE_CERR = ABAP_TRUE

REPLACEMENT = '#'

WRITE_BOM = ' '

TRUNC_TRAILING_BLANKS_EOL = 'X'

WK1_N_FORMAT = ' '

WK1_N_SIZE = ' '

WK1_T_FORMAT = ' '

WK1_T_SIZE = ' '

WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE

IMPORTING

FILELENGTH =

TABLES

DATA_TAB = IT_VBAK

FIELDNAMES =

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 ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

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

ENDIF.

DhanaLakshmi M S

Former Member
0 Kudos

thank u very much for ur advice Dhana lakshmi .

but as i said i have to fetch data from all the PA tables which are filled for that pernr.so for every infotypes if i create the internal table then the program will be very huge can we do it using logical database?

Answers (1)

Answers (1)

Former Member
0 Kudos

Hi,

Try using FM: RFC_READ_TABLE, pass the table name dynamically and you can read the output in an internal table and disp;lay that or use GUI_DOWNLOAD to download to a txt file.

Check help for documentation.

Regards,

Subramanian

Edited by: Subramanian PL on Jun 18, 2008 11:20 PM

Former Member
0 Kudos

thanks for ur suggetion .

we have to do this by using LDB and without screen can i use FM hr_read_infotype