Eingangsfunktionsbaustein erweitern  

Den Erweiterungssegmenten entspricht eine Kundenerweiterung im Coding des Eingangsfunktionsbausteins, der Daten aus den Erweiterungssegmenten in Anwendungstabellen stellt.

Voraussetzungen

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

Vorgehensweise

Die Kundenerweiterung der entsprechenden Funktionsbausteine schreiben Sie über die Transaktion CMOD. Sie gehen analog vor wie für den Ausgang beschrieben.

Im Fallbeispiel erweitern Sie den Funktionsbaustein IDOC_INPUT_ORDERS im Zusatzprojekt ZEDA0001: Die Erweiterung schreibt den Wert aus dem Segmentfeld Z1TEST1-KONTINENT in das Feld IHREZ (Zeichen des Kunden) der Struktur XVBAK. Der Inhalt dieser Struktur wird beim Aufbau der Batch-Input-Tabelle BDCDATA verwendet, die der Transaktion VA01 (Terminauftrag anlegen) übergeben wird.

IHREZ wird eigentlich schon aus dem Feld E1EDKA1-IHREZ des Basistyps ORDERS01 versorgt, so daß eine Erweiterung hier gar nicht notwendig ist. Das Beispiel soll nur zur Veranschaulichung des Prinzips dienen.

SAP-Erweiterung

VEDA0001

Funktions-Exit

EXIT_SAPLVEDA_001 (Kundenerweiterung der Datensegmente bei Auftragsbeleg Eingang)

Include

ZXVEDU03

Segment

Z1TEST1

Rahmenprogramm

SAPLXVED

TOP-Programm

LXVEDTOP

Kunden-Top-Include

ZXVEDTOP

 

Der Quelltext lautet:

DATA segnam(27).

DATA: BEGIN OF hxvbak.

INCLUDE STRUCTURE vbak.

DATA END OF hxvbak.

segnam = segment-segnam.

CASE segnam.

WHEN 'Z1TEST1'. "Name des Kundensegmentes

z1test1 = segment-sdata. "Daten bekommen Struktur

hxvbak-ihrez = z1test1-kontinent. "Hilfsstruktur füllen

MOVE hxvbak TO dxvbak. "CHANGING-Parameter versorgen

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.