[ABAP] IDoc: Basistyp lesen

TYPES: ty_it_pt_syntax TYPE STANDARD TABLE OF edi_iapi02 WITH DEFAULT KEY.
TYPES: ty_it_pt_extensions TYPE STANDARD TABLE OF edi_iapi04 WITH DEFAULT KEY.

* Segmenttyp
PARAMETERS: p_ityp TYPE edbas-idoctyp.

DATA(lv_pe_attributes) = VALUE edi_iapi01( ).
DATA(it_pt_syntax) = VALUE ty_it_pt_syntax( ).
DATA(it_pt_pre_syntax) = VALUE ty_it_pt_syntax( ).
DATA(it_pt_extensions) = VALUE ty_it_pt_extensions( ).

CALL FUNCTION 'IDOCTYPE_READ'
  EXPORTING
    pi_idoctyp       = p_ityp
  IMPORTING
    pe_attributes    = lv_pe_attributes
  TABLES
    pt_syntax        = it_pt_syntax
    pt_pre_syntax    = it_pt_pre_syntax
    pt_extensions    = it_pt_extensions
  EXCEPTIONS
    object_not_found = 1
    db_error         = 2
    no_authority     = 3
    OTHERS           = 4.

IF sy-subrc = 0.
  cl_demo_output=>write( lv_pe_attributes ).
  cl_demo_output=>write( it_pt_syntax ).
  cl_demo_output=>write( it_pt_pre_syntax ).
  cl_demo_output=>write( it_pt_extensions ).
  cl_demo_output=>display( ).
ENDIF.

[ABAP] IDoc: Infos zu IDoc-Typ lesen (Segmente, Felder)

* Tabelle EDBAS
PARAMETERS: p_btype TYPE edbas-idoctyp DEFAULT 'ORDERS05'.

START-OF-SELECTION.

  DATA: lv_pe_header TYPE edi_iapi10.

  DATA: it_pt_segments TYPE STANDARD TABLE OF edi_iapi11 WITH DEFAULT KEY.
  DATA: it_pt_fields TYPE STANDARD TABLE OF edi_iapi12 WITH DEFAULT KEY.
  DATA: it_pt_fvalues TYPE STANDARD TABLE OF edi_iapi14 WITH DEFAULT KEY.
  DATA: it_pt_messages TYPE STANDARD TABLE OF edi_iapi17 WITH DEFAULT KEY.

* IDoctyp mit Segmenten lesen (RFC-fähig)
  CALL FUNCTION 'IDOCTYPE_READ_COMPLETE'
    EXPORTING
      pi_idoctyp         = p_btype
    IMPORTING
      pe_header          = lv_pe_header
    TABLES
      pt_segments        = it_pt_segments
      pt_fields          = it_pt_fields
      pt_fvalues         = it_pt_fvalues
      pt_messages        = it_pt_messages
    EXCEPTIONS
      object_unknown     = 1
      segment_unknown    = 2
      relation_not_found = 3.

  IF sy-subrc = 0.
    cl_demo_output=>write_data( lv_pe_header ).
    cl_demo_output=>write_data( it_pt_segments ).
    cl_demo_output=>write_data( it_pt_fields ).
    cl_demo_output=>write_data( it_pt_fvalues ).
    cl_demo_output=>write_data( it_pt_messages ).
    cl_demo_output=>display( ).
  ENDIF.