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

RFC_READ_TABLE and data compatiblity issue

Former Member
0 Likes
946

Using RFC_READ_TABLE, I am trying to populate a table in APO from a similar table in ECC.

I am geeting the data from BAPI in TA_DATA internal table which has data type TAB512. To post the data into APO table, I am trying to pass TA_DATA into TA_SCRAP( having same str as of table). Table has two decimal fields and program is giving error " WA_DATA and WA_SCRAP are not mutually convertible. Here is the sample code: Please suggest.

DATA: TA_DATA TYPE STANDARD TABLE OF TAB512 with header line,

TA_SCRAP TYPE STANDARD TABLE OF ZTB_SCRAP_XREF,

TA_FIELDS TYPE STANDARD TABLE OF RFC_DB_FLD with header line,

TA_OPTIONS TYPE STANDARD TABLE OF RFC_DB_OPT with header line,

WA_FIELDS LIKE LINE OF TA_FIELDS,

WA_DATA LIKE LINE OF TA_DATA,

WA_SCRAP LIKE LINE OF TA_SCRAP,

WA_LGSYS TYPE TVARV_VAL.

***Get the logical System Name from TVARVC table *****

SELECT LOW FROM TVARVC INTO WA_LGSYS Where Name = 'Z_ECC_LOG_SYS' and Type = 'P'. ENDSELECT.

IF SY-SUBRC NE 0.

  • Write:' Logical System Name Not avaliable'.

  • EXIT.

WA_LGSYS = 'SE1CLNT100'.

ENDIF.

*******Trigger BAPI to get data from ECC********

CALL FUNCTION 'RFC_READ_TABLE' DESTINATION WA_LGSYS

EXPORTING

QUERY_TABLE = 'ZTB_SCRAP_XREF'

  • DELIMITER = '|'

  • NO_DATA = ' '

  • ROWSKIPS = 0

ROWCOUNT = 10

TABLES

OPTIONS = TA_OPTIONS

FIELDS = TA_FIELDS

DATA = TA_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

.

BREAK-POINT.

IF SY-SUBRC <> 0.

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

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

Write: 'RFC Read Error'.

ENDIF.

LOOP AT TA_DATA INTO WA_DATA.

WA_SCRAP = WA_DATA.

WRITE:WA_SCRAP.

APPEND WA_STRING TO TA_SCRAP.

ENDLOOP.

Using RFC_READ_TABLE, I am trying to populate a table in APO from a similar table in ECC.

I am geeting the data from BAPI in TA_DATA internal table which has data type TAB512. To post the data into APO table, I am trying to pass TA_DATA into TA_SCRAP( having same str as of table). Table has two decimal fields and program is giving error " WA_DATA and WA_SCRAP are not mutually convertible. Here is the sample code: Please suggest.

DATA: TA_DATA TYPE STANDARD TABLE OF TAB512 with header line,

TA_SCRAP TYPE STANDARD TABLE OF ZTB_SCRAP_XREF,

TA_FIELDS TYPE STANDARD TABLE OF RFC_DB_FLD with header line,

TA_OPTIONS TYPE STANDARD TABLE OF RFC_DB_OPT with header line,

WA_FIELDS LIKE LINE OF TA_FIELDS,

WA_DATA LIKE LINE OF TA_DATA,

WA_SCRAP LIKE LINE OF TA_SCRAP,

WA_LGSYS TYPE TVARV_VAL.

***Get the logical System Name from TVARVC table *****

SELECT LOW FROM TVARVC INTO WA_LGSYS Where Name = 'Z_ECC_LOG_SYS' and Type = 'P'. ENDSELECT.

IF SY-SUBRC NE 0.

  • Write:' Logical System Name Not avaliable'.

  • EXIT.

WA_LGSYS = 'SE1CLNT100'.

ENDIF.

*******Trigger BAPI to get data from ECC********

CALL FUNCTION 'RFC_READ_TABLE' DESTINATION WA_LGSYS

EXPORTING

QUERY_TABLE = 'ZTB_SCRAP_XREF'

  • DELIMITER = '|'

  • NO_DATA = ' '

  • ROWSKIPS = 0

ROWCOUNT = 10

TABLES

OPTIONS = TA_OPTIONS

FIELDS = TA_FIELDS

DATA = TA_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

.

BREAK-POINT.

IF SY-SUBRC <> 0.

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

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

Write: 'RFC Read Error'.

ENDIF.

LOOP AT TA_DATA INTO WA_DATA.

WA_SCRAP = WA_DATA.

WRITE:WA_SCRAP.

APPEND WA_STRING TO TA_SCRAP.

ENDLOOP.

1 REPLY 1
Read only

Former Member
0 Likes
479

Resolved myself