IDOC - Strukturen befüllen

Getting started ... Alles für einen gelungenen Start.
5 Beiträge • Seite 1 von 1
5 Beiträge Seite 1 von 1

IDOC - Strukturen befüllen

Beitrag von sp89 (ForumUser / 37 / 0 / 0 ) »
Hallo zusammen,

ich möchte gern ein IDOC versenden, allerdings muss ich hierzu erst einmal die Strukturen mit Daten füllen.

Mein IDOC sieht wie folgt aus:
Z_EPOS - ist mein Basistyp

dieser enthält:
ZEPOS_HEAD - Kopfsegment // hiervon kann es min. 1 max. 5000 geben (Segmentdefinition ZEPOS_HEAD000)

Felder:
- Z_MATNR
- Z_MAKTX
- Z_WERK

ZEPOS_ITEM - Positionssegment // hiervon kann es min. 1 max. 30 geben (Segmentdefinition ZEPOS_ITEM000)

Felder:
- Z_ROHSTOFF
- Z_PROZENT

wie befülle ich nun die Strukturen bzw. den IDOC, so das ich ihn dann verarbeiten kann?

Gruß,
Sp89


Re: IDOC - Strukturen befüllen

Beitrag von Ratazong (Specialist / 144 / 1 / 14 ) »
Hi,

schau Dir mal den FB MASTER_IDOC_DISTRIBUTE und die Doku dazu an.

MfG

Rata
Normale Menschen wundern sich, warum in der Welt so viel schief läuft.
Programmierer wundern sich, warum alles so gut funktioniert.

Re: IDOC - Strukturen befüllen

Beitrag von sp89 (ForumUser / 37 / 0 / 0 ) »
aaalso ich hab mir den FB mal angeschaut & auch über Verwendungsanachweis andre Reports überflogen, ABER ich hab noch nie vorher was mit IDOC´s gemacht und bin leicht aufgeschmissen :D

ich werd´s jetzt mal weiter probieren & dann evtl noch´n Coding posten, falls aber jemand Zeit / Lust hast hier vll n kurzes Beispiel/Lösung zu obengenannten Problem zu posten wäre ich natürlich auch dankbar :)

gruß,
sp89

Re: IDOC - Strukturen befüllen

Beitrag von sp89 (ForumUser / 37 / 0 / 0 ) »
sooo ich mal wieder ...

Code: Alles auswählen.

  CONSTANTS: c_idctyp_epos   LIKE edbas-idoctyp VALUE 'Z_EPOS',
             c_msgtyp_epos   LIKE edmsg-msgtyp  VALUE 'ZEPOS',
             c_segnam_header LIKE edidd-segnam  VALUE 'ZEPOS_HEAD',
             c_segnam_link   LIKE edidd-segnam  VALUE 'ZEPOS_ITEM'.

  DATA: fl_zepos_head TYPE zepos_head,
        fl_zepos_item TYPE zepos_item.

  TYPES: table_segment TYPE TABLE OF edidd.

  DATA: i_segment TYPE table_segment.

  DATA: f_control_record TYPE edidc,
        f_segment        TYPE edidd.

  DATA: il_edidc TYPE TABLE OF edidc.

*   Create control record
  CLEAR f_control_record.
  f_control_record-idoctp = c_idctyp_epos.
  f_control_record-mestyp = c_msgtyp_epos.
*    IF NOT recvr IS INITIAL.
*      f_control_record-rcvprt = c_rcvprt_ls.
*      f_control_record-rcvprn = recvr.
*    ENDIF.

  LOOP AT gt_output INTO gs_out.
    CASE gs_out-comid.
      WHEN 'Head'.
*   Create header segment
        fl_zepos_head-z_matnr = gs_out-compn.
        fl_zepos_head-z_maktx = gs_out-compp.
        fl_zepos_head-z_werk  = gs_werks-werks.
        f_segment-sdata        = fl_zepos_head.
        APPEND f_segment TO i_segment.
      WHEN 'Position'.
*     Create item segment
        fl_zepos_item-z_rohstoff = gs_out-compn..
        fl_zepos_item-z_prozent  = gs_out-compp..
        f_segment-sdata        = fl_zepos_item.
        APPEND f_segment TO i_segment.
      WHEN OTHERS.
    ENDCASE.
  ENDLOOP.

  CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
    EXPORTING
      master_idoc_control            = f_control_record
    TABLES
      communication_idoc_control     = il_edidc
      master_idoc_data               = i_segment
    EXCEPTIONS
      error_in_idoc_control          = 1
      error_writing_idoc_status      = 2
      error_in_idoc_data             = 3
      sending_logical_system_unknown = 4
      OTHERS                         = 5.
  IF sy-subrc <> 0.
    EXIT.
  ENDIF.

** Dequeue idoc
*  LOOP AT il_edidc INTO f_control_record.
*    APPEND f_control_record TO i_edidc.
*    CALL FUNCTION 'EDI_DOCUMENT_DEQUEUE_LATER'
*      EXPORTING
*        docnum                 = f_control_record-docnum
*      EXCEPTIONS
*        idoc_is_not_to_dequeue = 0.
*  ENDLOOP.
*
*  IF no_commit IS INITIAL.
*    ADD 1 TO commit_count.
*    IF commit_count >= c_commit_size.
*      COMMIT WORK.
*      CLEAR commit_count.
*    ENDIF.
*  ENDIF.
so sieht mein Coding jetzt aus, funktioniert das so, oder fehlt noch was? ich bin total planlos ... danke schonmal

Re: IDOC - Strukturen befüllen

Beitrag von sp89 (ForumUser / 37 / 0 / 0 ) »
wo pflege ich den die Logische Nachrichtenart, Partnerrolle / Port ... usw für meine IDOC Verarbeitung?

Code: Alles auswählen.

      f_control_record-rcvprt = c_rcvprt_ls.
      f_control_record-rcvprn = recvr.
....

Seite 1 von 1

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und besseren Inhalt:

Vergleichbare Themen

ein Feld mit IDOC befüllen
von HH_ABAP » 10.08.2018 16:50
User Exits fü IDoc Segment befüllen
von Armin93 » 01.10.2020 15:16
IDoc - Erzeugte IDoc-Datei entspricht nicht der Byteanzahl
von genua » 09.01.2008 13:19
Anzeige von Strukturen
von -hawkeye- » 29.08.2007 08:18
Schachtelung von Strukturen
von Nichtskönner » 04.12.2002 14:59