Den Erweiterungssegmenten entspricht eine Kundenerweiterung im Coding des Ausgangsfunktionsbausteins, der die Erweiterungssegmente mit Anwendungsdaten füllt.
Voraussetzungen sind die vorangegangenen notwendigen Schritte aus Erweiterung eines IDoc-Typs.
...
1. Die Kundenerweiterung der entsprechenden Funktionsbausteine schreiben Sie über einen Funktions- oderUser-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.
Weitere Informationen zu Erweiterungsprojekten finden Sie in der SAP-Bibliothek unter Änderungen des SAP-Standards.
2. 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.
Eine SAP-Erweiterung beinhaltet als Komponenten Funktions-Exits (Funktionsbausteine), aus denen Sie im nächsten Schritt die richtigen aussuchen werden.
3. Im Einstiegsbild der Projektverwaltung wählen Sie jetzt die Teilobjekte Komponenten. Wählen Sie Ändern.
Sie erhalten eine Liste aller Funktions-Exits. Über Erweiterung gelangen Sie zur Dokumentation zu den einzelnen Exits.
4. Per Doppelklick auf den gewünschten Funktions-Exit gelangen Sie in den ABAP Editor.
5. 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.
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ß.
6. 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
Sie gelangen in das TOP-Programm.
7. Legen Sie das Kunden-TOP-Include durch Doppelklick auf dessen Namen an (Systemabfragen bestätigen!). Geben Sie Ihre Erweiterungssegmente als TABLES-Datendeklarationen an.
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!
8. 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 Quelltext 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.