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

Dynamic Table Parameter Definition

Former Member
0 Likes
524

Hi folks,

I'm trying to develop a common use method to handle importing flat files for interface usage. The client does not want to use Idocs, and are insisting on flat files.

My question is, how do I identify the export parameter as a table when the structure of the export table is variable. The plan is to upload the data into an internal table type string, then to parse each record in the internal table to another internal table to be built dynamically based on a table structure passed in when the method is called. My question is, how do I define the export table parameter to pass the dynamic table values back to the calling program. Would definining the export paramater as a string table be sufficient, or result in calling program having to re-parse the returned record?

Any thoughts or confirmations of process would be greatly appreciated.

Cheers,

Steve

1 ACCEPTED SOLUTION
Read only

GrahamRobbo
SAP Mentor
SAP Mentor
0 Likes
484

Define export parameter as TYPE REF TO DATA.

Cheers

Graham Robbo

3 REPLIES 3
Read only

GrahamRobbo
SAP Mentor
SAP Mentor
0 Likes
485

Define export parameter as TYPE REF TO DATA.

Cheers

Graham Robbo

Read only

Former Member
0 Likes
484

DATA: LO_LINE_TYPE   TYPE REF TO CL_ABAP_STRUCTDESCR,
        LO_TABLE_TYPE  TYPE REF TO CL_ABAP_TABLEDESCR,
        LT_COMP        TYPE CL_ABAP_STRUCTDESCR=>COMPONENT_TABLE,
        LWA_COMP       LIKE LINE OF LT_COMP,
        L_REF_NNFP     TYPE REF TO DATA,
        L_REF_NNFP_TAB TYPE REF TO DATA.


  LWA_COMP-NAME = 'EVDAT'.
*  TRY.
  CALL METHOD CL_ABAP_ELEMDESCR=>GET_D
    RECEIVING
      P_RESULT = LWA_COMP-TYPE.
*   CATCH CX_PARAMETER_INVALID_RANGE .
*  ENDTRY.
  APPEND LWA_COMP TO LT_COMP.
  CLEAR LWA_COMP.

  LWA_COMP-NAME = 'BEGUZ'.
*  TRY.
  CALL METHOD CL_ABAP_ELEMDESCR=>GET_T
    RECEIVING
      P_RESULT = LWA_COMP-TYPE.
*   CATCH CX_PARAMETER_INVALID_RANGE .
*  ENDTRY.
  APPEND LWA_COMP TO LT_COMP.
  CLEAR LWA_COMP.

  LWA_COMP-NAME = 'ENDUZ'.
*  TRY.
  CALL METHOD CL_ABAP_ELEMDESCR=>GET_T
    RECEIVING
      P_RESULT = LWA_COMP-TYPE.
*   CATCH CX_PARAMETER_INVALID_RANGE .
*  ENDTRY.
  APPEND LWA_COMP TO LT_COMP.
  CLEAR LWA_COMP.

  LWA_COMP-NAME = 'ZSELECT'.
*  TRY.
  CALL METHOD CL_ABAP_ELEMDESCR=>GET_C
    EXPORTING
      P_LENGTH = 1
    RECEIVING
      P_RESULT = LWA_COMP-TYPE.
*   CATCH CX_PARAMETER_INVALID_RANGE .
*  ENDTRY.
  APPEND LWA_COMP TO LT_COMP.
  CLEAR LWA_COMP.

* Create Line Type
  LO_LINE_TYPE = CL_ABAP_STRUCTDESCR=>CREATE( LT_COMP ).

* Create Table Type
*TRY.
  CALL METHOD CL_ABAP_TABLEDESCR=>CREATE
    EXPORTING
      P_LINE_TYPE  = LO_LINE_TYPE
    P_TABLE_KIND = 'S'
*    P_UNIQUE     = ABAP_FALSE
*    P_KEY        =
    P_KEY_KIND   = 'D'
    RECEIVING
      P_RESULT     = LO_TABLE_TYPE
      .
* CATCH CX_SY_TABLE_CREATION .
*ENDTRY.

* Assign Line Type
  CREATE DATA L_REF_NNFP TYPE HANDLE LO_LINE_TYPE.
  ASSIGN L_REF_NNFP->* TO <GWA_NNFP_ALV>.

* Assign Table Type
  CREATE DATA L_REF_NNFP_TAB TYPE HANDLE LO_TABLE_TYPE.
  ASSIGN L_REF_NNFP_TAB->* TO <GT_NNFP_ALV>.

  REFRESH GT_COMP.
  APPEND LINES OF LT_COMP TO GT_COMP.
  IF GV_INIT_7000 IS INITIAL.
    REFRESH GT_COMP_BAK.
    APPEND LINES OF LT_COMP TO GT_COMP_BAK.
    CREATE DATA L_REF_NNFP_TAB TYPE HANDLE LO_TABLE_TYPE.
    ASSIGN L_REF_NNFP_TAB->* TO <GT_NNFP_ALV_BAK>.
  ENDIF.
Read only

Former Member
0 Likes
484

Thank you for your excellent suggestions. This question is now resolved.