Skip to Content
0
Former Member
May 18, 2010 at 06:35 AM

web service missing output data!

181 Views

hi expert!

i create RFC TO convert web service.

and calling web service using proxy object,return data will miss TABLES Parameter info

BUT using HTTP trought browser this TABLES Parameter is ok!

example:

rfc function:

FUNCTION ZWEBSERVICE1.
*"----------------------------------------------------------------------
*"*"Local Interface:
*"  IMPORTING
*"     VALUE(INPUT) TYPE  CHAR40 DEFAULT ' '
*"  EXPORTING
*"     VALUE(OUTPUT) TYPE  CHAR40
*"  TABLES
*"      TDATA STRUCTURE  TEXTL OPTIONAL
*"----------------------------------------------------------------------


  if input is initial or input = ' '.
    output = 'initial'.
  else.
    concatenate 'value:' input into output.
  endif.

  do 10 times.
    TDATA-LINE = SY-INDEX.
    CONDENSE TDATA-LINE.

    CONCATENATE 'LINE' TDATA-LINE ':' INPUT INTO TDATA-LINE.
    APPEND TDATA.

  enddo.

ENDFUNCTION.

and calling report:

*&---------------------------------------------------------------------*
*& Report  ZCALLWEBSERIVE1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZCALLWEBSERIVE1.

DATA: proxy TYPE REF TO ZWDBSERVICE1CO_ZWEBSERVICE1,
      org_IN TYPE ZWDBSERVICE1ZWEBSERVICE1,
      ORG_OUT TYPE ZWDBSERVICE1ZWEBSERVICE1RESPON,
      tdata type ZWDBSERVICE1TABLE_OF_TEXTL,
      item_tab type ZWDBSERVICE1TEXTL_TAB,
      ITEM type ZWDBSERVICE1TEXTL,
           error type REF TO cx_ai_system_fault.

org_in-INPUT = 'SORG.1000'.


TRY.
    CREATE OBJECT proxy
* EXPORTING
*    LOGICAL_PORT_NAME =
        .

*                        TRY.
    CALL METHOD proxy->ZWEBSERVICE1
      EXPORTING
        INPUT  = org_in
      IMPORTING
        OUTPUT = ORG_OUT.
*                         CATCH CX_AI_SYSTEM_FAULT .
*                         CATCH CX_AI_APPLICATION_FAULT .
*                        ENDTRY.

  CATCH cx_ai_system_fault INTO error.
    WRITE /1 error->ERRORTEXT.
ENDTRY.

COMMIT WORK.

WRITE: AT /1 org_in-input,
          /1 org_out-output.


*loop at org_out-TDATA-ITEM into ITEM.
*  write:/ ITEM-LINE.
*endloop.

item_tab = org_out-TDATA-ITEM.

*loop at item_tab into item.*
  *write:/ ITEM-LINE.*
*endloop.*

no data in inter table ITEM.

thank you very much!

Edited by: Thomas Zloch on May 18, 2010 7:51 PM