Olá
DATA T_DATA TYPE STANDARD TABLE OF TAB512.
CALL FUNCTION 'RFC_READ_TABLE' destination 'destination'
EXPORTING
QUERY_TABLE = 'KNB5'
TABLES
* OPTIONS = ???
* FIELDS = ???
DATA = T_DATA
EXCEPTIONS
TABLE_NOT_AVAILABLE = 1
TABLE_WITHOUT_DATA = 2
OPTION_NOT_VALID = 3
FIELD_NOT_VALID = 4
NOT_AUTHORIZED = 5
DATA_BUFFER_EXCEEDED = 6
OTHERS = 7.
O resultado da consulta é armazenado na tabela interna T_DATA.
Você precisa transferir OPÇÕES apenas se precisar criar um filtro para selecionar determinados registros, precisa transferir CAMPOS apenas se precisar extrair os dados de determinados campos do KNB5
Veja este exemplo:
DATA: T_OPTIONS TYPE TABLE OF RFC_DB_OPT WITH HEADER LINE.
DATA: T_FIELDS TYPE TABLE OF RFC_DB_FLD WITH HEADER LINE.
DATA: T_DATA TYPE TABLE OF TAB512 WITH HEADER LINE.
PERFORM FILL_OPTIONS USING: 'KUNNR' '0000000001' 'AND',
'BUKRS' 'MAAB' SPACE.
PERFORM FILL_FIELDS USING: 'KUNNR', 'BUKRS', 'MAHNA'.
CALL FUNCTION 'RFC_READ_TABLE'
EXPORTING
QUERY_TABLE = 'KNB5'
* DELIMITER = ' '
* NO_DATA = ' '
* ROWSKIPS = 0
* ROWCOUNT = 0
TABLES
OPTIONS = T_OPTIONS
FIELDS = T_FIELDS
DATA = T_DATA.
LOOP