Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

RFC

Hi Experts,

I am using the FM :RFC_READ_TABLE inmy program.In this i am filling the options table for giving conditions(Where clause).i am giving condition to retrieve only one record.In the database also there is only one record which satisfies that condition.But after exicuting the FM when i see data in the data table it is retrieving all the rows in the table.Can anybody tell me what is the reason?

See this code:

&----


*& Report YTEST_RFC

*&

&----


*&

*&

&----


REPORT YTEST_RFC.

DATA: t_options LIKE rfc_db_opt OCCURS 0 WITH HEADER LINE,

t_fields LIKE rfc_db_fld OCCURS 0 WITH HEADER LINE,

t_data LIKE tab512 OCCURS 0 WITH HEADER LINE.

DATA: w_werks(4) type c value '0288'.

DATA:w_rfcdest LIKE zvxxparam_global-value.

MOVE 'MATNR' TO T_fields-fieldname.

APPEND t_fields.

CONCATENATE 'WERKS' 'EQ' INTO T_options-text SEPARATED BY space.

CONCATENATE t_options-text ' ''' w_werks '''' into t_options-text.

write:/ 'hjbkjnkn'.

CALL FUNCTION 'RFC_READ_TABLE'

DESTINATION w_rfcdest

EXPORTING

query_table = 'Z2SKU1'

  • DELIMITER = ' '

  • NO_DATA = ' '

  • ROWSKIPS = 0

  • ROWCOUNT = 0

tables

OPTIONS = T_OPTIONS

fields = T_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

.

IF sy-subrc <> 0.

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

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

ELSE.

LOOP AT T_DATA.

WRITE:/ T_DATA.

ENDLOOP.

ENDIF.

Regards

Tags:
Former Member
Not what you were looking for? View more on this topic or Ask a question