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

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


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

Vergleichbare Themen

3
Antw.
2689
Views
ein Feld mit IDOC befüllen
von HH_ABAP » 10.08.2018 16:50 • Verfasst in ABAP® für Anfänger
4
Antw.
1258
Views
User Exits fü IDoc Segment befüllen
von Armin93 » 01.10.2020 15:16 • Verfasst in ABAP® für Anfänger
0
Antw.
1648
Views
IDoc - Erzeugte IDoc-Datei entspricht nicht der Byteanzahl
von genua » 09.01.2008 13:19 • Verfasst in ABAP® Core
3
Antw.
2008
Views
Anzeige von Strukturen
von -hawkeye- » 29.08.2007 08:18 • Verfasst in Financials
1
Antw.
1122
Views
Auswahlliste der Strukturen
von nkuhn » 22.05.2007 11:13 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

ABAP unter GUI und FIORI
vor 23 Stunden von wreichelt 3 / 48
MaLo-Checker in ABAP
vor einer Woche von ewx 5 / 128

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.