Ausgangsfunktionsbaustein erweitern  

Den Erweiterungssegmenten entspricht eine Kundenerweiterung im Coding des Ausgangsfunktionsbausteins, der die Erweiterungssegmente mit Anwendungsdaten füllt.

Voraussetzungen

Voraussetzungen sind die vorangegangenen notwendigen Schritte aus Erweiterung eines IDoc-Typs.

Vorgehensweise

  1. Die Kundenerweiterung der entsprechenden Funktionsbausteine schreiben Sie über einen Funktions- oder User-Exit in der Projektverwaltung: Wählen Sie im Einstiegsbild der ABAP Workbench Hilfsmittel ® Erweiterungen ® Projektverwaltung. Geben Sie einen Projektnamen an (Kundennamensraum beachten!) und wählen Sie Attribute (Auswahlknopf) und Anlegen. Geben Sie einen Kurztext ein und sichern Sie.
  2. Genaueres zu Erweiterungsprojekten finden Sie in der R/3 Bibliothek unter Basis ® ABAP Workbench ® Erweiterungen des SAP-Standards ® Das R/3 Erweiterungskonzept.

  3. Gehen Sie ins Einstiegsbild der Projektverwaltung zurück und wählen Sie die Teilobjekte Zuordnung Erweiterungen. Wählen Sie Ändern, um Ihrem Projekt SAP-Erweiterungen zuzuordnen. Um SAP-Erweiterungen zu finden, benutzen Sie die F4-Hilfe. Sichern Sie Ihre Angaben.
  4. Eine SAP-Erweiterung beinhaltet als Komponenten Funktions-Exits (Funktionsbausteine), aus denen Sie im nächsten Schritt die richtigen aussuchen werden.

  5. Im Einstiegsbild der Projektverwaltung wählen Sie jetzt die Teilobjekte Komponenten. Wählen Sie Ändern.
  6. Sie erhalten eine Liste aller Funktions-Exits. Über Erweiterung gelangen Sie zur Dokumentation zu den einzelnen Exits.

  7. Per Doppelklick auf den gewünschten Funktions-Exit gelangen Sie in den ABAP Editor.
  8. Der Funktions-Exit enthält die Zeile include <Kunden-Include>. Durch Doppelklick auf den Namen legen Sie dies Include an (Systemabfragen bestätigen). Geben Sie Ihren Quelltext ein und sichern Sie anschließend.
  9. Beachten Sie, daß Sie die Felder HLEVEL (Hierarchieebene des Segments) und PSGNUM (Nummer des Elternsegments) im IDoc-Datensatz nicht zu füllen brauchen. Das erledigt die IDoc-Schnittstelle, die ja aus der Definition der Erweiterung um die Stellung des Segments im IDoc-Typ weiß.

  10. Sie müssen jetzt noch Ihre neuen Erweiterungssegmente als globale Strukturen im kundeneigenen TOP-include definieren. Dazu wählen Sie im ABAP-Editor Springen ® Globale Daten
  11. Sie gelangen in das TOP-Programm.

  12. Legen Sie das Kunden-TOP-Include durch Doppelklick auf dessen Namen an (Systemabfragen bestätigen!). Geben Sie Ihre Erweiterungssegmente als TABLES-Datendeklarationen an.
  13. Wenn Sie Ihr Segment zuvor aktiviert hatten, sollte es beim Syntaxcheck ( ) keine Schwierigkeiten geben. Auf keinen Fall sollten Sie das Segment direkt im Dictionary direkt anlegen! Benutzen Sie dazu immer den Segmenteditor!

  14. Aktivieren Sie nun Ihr gesamtes Projekt. Dazu gehen Sie wieder ins Einstiegsbild der Projektverwaltung und wählen .

 

Im Fallbeispiel erweitern Sie den Funktionsbaustein IDOC_OUTPUT_ORDERS im Zusatzprojekt ZM06E001.

SAP-Erweiterung

MM06E001

Funktions-Exit

EXIT_SAPLEINM_002 (Kundenerweiterung der Datensegmente bei Einkaufsbeleg Ausgang)

Include

ZXM06U02

Segment

Z1TEST1

Rahmenprogramm

SAPLXM06

TOP-Programm

LXM06TOP

Kunden-Top-Include

ZXM06TOP

 

Der Quelltext lautet:

DATA segnam(27).

segnam = int_edidd-segnam.

CASE segnam.

WHEN 'E1EDP19'.

CLEAR int_edidd. "Arbeitsbereich leeren

int_edidd-segnam = 'Z1TEST1'. "Name des Kundensegmentes

z1test1-kontinent = 'Europa'.

int_edidd-sdata = z1test1. "Übrige Felder von int_edidd

"können übernommen werden

APPEND int_edidd.

ENDCASE .

Die CASE-Anweisung im Coding ist notwendig, weil bei jedem Segment im Funktionsbaustein IDOC_OUTPUT_ORDERS derselbe Customer-Exit aufgerufen wird. Daher muß das neu angelegte include erst feststellen, ob es beim richtigen Elternsegment aufgerufen wurde.