Welchen TYPE hat den die Komponente die du erzeugen willst?baldanders hat geschrieben: Wie kann ich denn die Länge der Komponenten beinflüßen?
Code: Alles auswählen.
CALL FUNCTION 'DD_DOMA_GET'
EXPORTING
domain_name = iv_domname
IMPORTING
dd01v_wa_a = ls_domheader
TABLES
dd07v_tab_a = et_valuetab
dd07v_tab_n = lt_dd07v_tab_n
EXCEPTIONS
illegal_value = 1
op_failure = 2
OTHERS = 3.
Code: Alles auswählen.
method CREATE_GENERIC_RANGETAB.
* Imports:
* IV_TYPE TYPE TYPENAME
* IV_INTERNAL_LENGTH TYPE LVC_OUTLEN
* Exports:
* EP_S_RANGE TYPE REF TO DATA
* EP_T_RANGE TYPE REF TO DATA
DATA:
lt_components TYPE abap_component_tab,
ls_component LIKE LINE OF lt_components,
lp_typedescr TYPE REF TO cl_abap_datadescr,
lp_rangedescr TYPE REF TO cl_abap_structdescr,
lp_rangetabdescr TYPE REF TO cl_abap_tabledescr.
CLEAR: ep_s_range, ep_t_range.
ls_component-name = 'SIGN'.
lp_typedescr ?= cl_abap_typedescr=>describe_by_name( 'SIGN_RANGE' ).
ls_component-type = lp_typedescr.
APPEND ls_component TO lt_components.
ls_component-name = 'OPTION'.
lp_typedescr ?= cl_abap_typedescr=>describe_by_name( 'SDOPTRANGE' ).
ls_component-type = lp_typedescr.
APPEND ls_component TO lt_components.
ls_component-name = 'LOW'.
lp_typedescr ?= cl_abap_typedescr=>describe_by_name( lv_type ).
ls_component-type = lp_typedescr.
APPEND ls_component TO lt_components.
ls_component-name = 'HIGH'.
ls_component-type = lp_typedescr.
APPEND ls_component TO lt_components.
TRY.
CALL METHOD cl_abap_structdescr=>create
EXPORTING
p_components = lt_components
RECEIVING
p_result = lp_rangedescr.
CATCH cx_sy_struct_creation .
RAISE EXCEPTION TYPE zcx_re_exception.
ENDTRY.
TRY.
CALL METHOD cl_abap_tabledescr=>create
EXPORTING
p_line_type = lp_rangedescr
RECEIVING
p_result = lp_rangetabdescr.
CATCH cx_sy_table_creation .
RAISE EXCEPTION TYPE zcx_re_exception.
ENDTRY.
CREATE DATA ep_s_range TYPE HANDLE lp_rangedescr.
CREATE DATA ep_t_range TYPE HANDLE lp_rangetabdescr.
ENDMETHOD.Ich bekomme den Typ aus einer Domäne (mit FB 'DD_DOMA_GET'), also ein DDIC-Typ.JHM hat geschrieben:Jeden Typ?baldanders hat geschrieben:Die Komponente kann jeden Typ haben, ich erfahre es erst zur Laufzeit.
elementare und aus dem DDIC?
Mehr Infos bitte.