40
Datenstrukturen und Datendefinitionen 5.3 185 R: Rechtsbündige Darstellung F: Füllzeichen einfügen Anwendung auf Zeichenfelder Als Voreinstellung wird der Inhalt eines Feldes in seiner vollen Länge aus- gegeben, nur Leerzeichen am Ende der Zeichenkette werden abgeschnit- ten. Es gilt die folgende Auswertungsreihenfolge der Aufbereitungsoptio- nen: C: Leerzeichen unterdrücken <Länge> und <offset> R: Rechtsbündige Darstellung F: Füllzeichen einfügen 5.3 Datenstrukturen und Datendefinitionen Im vorangegangenen Abschnitt haben wir gezeigt, wie Sie Felder in Text- Knoten oder als Attribut in beliebigen anderen Knoten verwenden. Bevor Sie ein Feld jedoch als Platzhalter für Daten nutzen können, muss es im Formu- lar bekannt sein. Bei diesem Vorgang spricht man von der Definition oder auch von der Deklaration der Daten. Entsprechend den bisher beschriebenen Anwendungen stellt Smart Forms die folgenden drei Möglichkeiten zur Ver- fügung, um Daten im Formular bekannt zu machen und dann einzufügen: Systemfelder sind immer vorhanden und in ihrer Bedeutung fest vorbe- legt (z.B. Datum, Seitenzahl). Eine Definition im Formular ist nicht erfor- derlich. Angaben in der Formularschnittstelle definieren die Daten, die mit dem Rahmenprogramm ausgetauscht werden. Über Angaben bei den Globalen Definitionen werden Daten definiert, deren Inhalte im Formular zugewiesen werden sollen (z.B. als Ergebnis von Berechnungen). Innerhalb eines Programm-Knotens können Sie darüber hinaus lokale Daten definieren, die dann aber nur im jeweiligen Knoten bekannt sind (z.B. für die Speicherung von Zwischenwerten). Diese Daten deklarieren Sie dann auch direkt über entsprechende ABAP-Anweisungen (siehe Kapitel 7, »ABAP- Programme im Formular«). Im Folgenden wollen wir die Kenntnisse vermitteln, die erforderlich sind, damit Sie mit Daten und deren Definition unter Smart Forms umgehen kön- nen.

5.3 Datenstrukturen und Datendefinitionen - thali.ch · Formular (oder über ABAP) angesprochen werden können. Ein weiteres Kri-terium ist die Frage, ob die Daten änderbar sein

  • Upload
    hadieu

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

Datenstrukturen und Datendefinitionen 5.3

185

� R: Rechtsbündige Darstellung

� F: Füllzeichen einfügen

� Anwendung auf ZeichenfelderAls Voreinstellung wird der Inhalt eines Feldes in seiner vollen Länge aus-gegeben, nur Leerzeichen am Ende der Zeichenkette werden abgeschnit-ten. Es gilt die folgende Auswertungsreihenfolge der Aufbereitungsoptio-nen:

� C: Leerzeichen unterdrücken <Länge> und <offset>

� R: Rechtsbündige Darstellung

� F: Füllzeichen einfügen

5.3 Datenstrukturen und Datendefinitionen

Im vorangegangenen Abschnitt haben wir gezeigt, wie Sie Felder in Text-Knoten oder als Attribut in beliebigen anderen Knoten verwenden. Bevor Sieein Feld jedoch als Platzhalter für Daten nutzen können, muss es im Formu-lar bekannt sein. Bei diesem Vorgang spricht man von der Definition oderauch von der Deklaration der Daten. Entsprechend den bisher beschriebenenAnwendungen stellt Smart Forms die folgenden drei Möglichkeiten zur Ver-fügung, um Daten im Formular bekannt zu machen und dann einzufügen:

� Systemfelder sind immer vorhanden und in ihrer Bedeutung fest vorbe-legt (z.B. Datum, Seitenzahl). Eine Definition im Formular ist nicht erfor-derlich.

� Angaben in der Formularschnittstelle definieren die Daten, die mit demRahmenprogramm ausgetauscht werden.

� Über Angaben bei den Globalen Definitionen werden Daten definiert,deren Inhalte im Formular zugewiesen werden sollen (z.B. als Ergebnisvon Berechnungen).

Innerhalb eines Programm-Knotens können Sie darüber hinaus lokale Datendefinieren, die dann aber nur im jeweiligen Knoten bekannt sind (z.B. fürdie Speicherung von Zwischenwerten). Diese Daten deklarieren Sie dannauch direkt über entsprechende ABAP-Anweisungen (siehe Kapitel 7, »ABAP-Programme im Formular«).

Im Folgenden wollen wir die Kenntnisse vermitteln, die erforderlich sind,damit Sie mit Daten und deren Definition unter Smart Forms umgehen kön-nen.

Daten im Formular5

186

5.3.1 Übersicht über die Datenstrukturen

Alle Daten des SAP-Systems sind im Datenbanksystem des Zentralrechnersabgelegt. Für die Ausgabe mittels Smart Forms müssen diese Daten zunächstin den Arbeitsspeicher geladen werden.

Im Datenbanksystem sind die Daten in transparenten Tabellen abgelegt. DieÜbertragung in den Arbeitsspeicher erfolgt normalerweise im Datenbereit-stellungsteil des Rahmenprogramms, über das ein Formular aufgerufenwird. Diese Daten gelangen dann über die Formularschnittstelle in das For-mular und können dort über ihre Feldnamen eingefügt werden.

Der Entwickler eines Formulars muss natürlich wissen, welche Daten vomRahmenprogramm über die Formularschnittstelle zur Verfügung gestelltwerden. Dazu benötigt er z.B. die Namen der Schnittstellenparameter. DemFormularentwickler muss aber auch bekannt sein, dass die Daten mit unter-schiedlichem Typ vorliegen können. Nur mit einem Verständnis für dieDatentypen, die im SAP-System vorkommen können, ist eine sinnvolle Ein-bindung der Daten ins Formular möglich.

Abbildung 5.6 Grundtypen der Datenhaltung

Um die weiteren Erläuterungen zu verstehen, reicht es an dieser Stelle aus,die Daten zu betrachten, die sich im Arbeitsspeicher des Systems befinden(auf Datenbankebene können die im Folgenden genannten Begriffe abwei-

Hinweis zur folgenden Darstellung

Bei Anwendern mit Erfahrungen im Customizing oder im Umgang mit ABAP dürfteein solches Verständnis zu Datentypen vermutlich schon vorhanden sein. Vieles indiesem Abschnitt wird Ihnen daher vermutlich bekannt vorkommen.

NAME1KUNDE_WA

NAME2 STRAS ORT UMSATZMeier Klaus Im Felde 7 7900 Freiburg 1.123,00

NAMEMeier

NAME1KUNDEN

NAME2 STRAS ORT UMSATZMeier Klaus Im Felde 7 79000 Freiburg 1.123,00Müller Petra Burgstr. 8 79100 Freiburg 2.234,00Müller Hans Bergstr. 7 79200 Freiburg 1.323,00

123

1. (elementares) Feld

2. Feldleiste

3. interne Tabelle

Datenstrukturen und Datendefinitionen 5.3

187

chen). Abbildung 5.6 zeigt drei grundlegende Fälle, zunächst anhand von all-gemeinen Kundendaten.

Die Unterschiede zwischen den drei Grundtypen der Datenhaltung sind aufden ersten Blick erkennbar, betrachten wir also gleich die Konsequenzen fürdie Ausgabe der enthaltenen Informationen.

(1) (Elementares) Feld

Das einfache Feld besteht aus nur einer Information; das ist hier z.B. an derBezeichnung NAME erkennbar. Bei dem gewählten Kunden lautet der Inhaltder Variablen »Meier«. Ist ein solches Feld im Formular definiert, kann dieAusgabe direkt über einen Text-Knoten erfolgen (hier im Beispiel also über&NAME&).

Da ein Feld nur eine einzige Information enthalten kann, wird es auch als ele-mentares Datenobjekt bezeichnet.

(2) Feldleiste

Die Feldleiste enthält gleichzeitig mehrere Informationen zum gewähltenKunden, sie besteht folglich aus einer Aneinanderreihung mehrerer Felder(daher auch der Begriff Feldleiste). In diesem Zusammenhang spricht manauch häufig von den beteiligten Datenkomponenten.

In unserem Beispiel sind fünf Angaben enthalten: Jede Datenkomponentebesitzt eine Bezeichnung (NAME1, STRAS etc.), außerdem hat die Feldleisteselbst einen Namen (hier KUNDE_WA).

Die Bezeichnungen der Datenkomponenten sind nur innerhalb einer einzi-gen Feldleiste eindeutig. Es könnte also auch noch eine weitere FeldleisteLIEFER_WA mit gleichem Aufbau existieren, um Adressen von Lieferanten zuverwalten. Folglich kann das System eine Teilinformation zum Kunden nurfinden, wenn auch der Name der betreffenden Feldleiste bekannt ist.

Das hat auch Auswirkungen auf die Darstellung im Formular: Um eine Teil-information zu lesen und auszugeben, ist eine zusammengesetzte Schreib-weise für das Feld erforderlich (in unserem Fall z.B. &KUNDE_WA-STRAS&). DieVerbindung der beiden Ebenen erfolgt immer über einen Bindestrich. DieseSchreibweise gilt ganz allgemein bei der Programmierung in ABAP.

Setzen Sie die Angaben zur Feldleiste in Abbildung 5.6 auch in Bezug zu denenthaltenen Daten: Sie sehen einerseits Zeichenfolgen mit den Inhalten zurAdresse (STRAS, ORT), andererseits aber auch ein numerisches Feld mit einer

Daten im Formular5

188

Umsatzzahl. Auch diese Unterschiede im Typ der Komponente muss das Sys-tem kennen.

(3) Interne Tabelle

Das letzte Datenobjekt in Abbildung 5.6 ist die interne Tabelle: Sie bietet alsweitere Funktion die Möglichkeit, Informationen zu mehreren Kundengleichzeitig unterzubringen. Die einzelnen Datensätze sind über einen Zei-lenindex durchnummeriert, vergleichbar mit dem Arbeitsblatt einer Tabel-lenkalkulation. Nur durch zusätzliche Angabe der Zeilennummer ist einDatensatz eindeutig identifiziert. Die Teilinformation in der Spalte wird wie-der über den Namen der jeweiligen Datenkomponente identifiziert.

Die Kombination aus Zeilen- und Spaltenangabe beschreibt eine Zelle mitder relevanten Teilinformation eindeutig. Statt von einer Zelle sprechen wirallerdings hier wieder vom Feld als dem Platz, an dem die Information abge-legt ist.

Um den Inhalt eines Feldes bei einer internen Tabelle anzusprechen, mussneben der Datenkomponente immer auch der gewünschte Datensatzgenannt sein. Deshalb lassen sich die Felder einer internen Tabelle nichtdirekt im Formular ansprechen (z.B. über einen Text-Knoten). Das prakti-sche Vorgehen beinhaltet stattdessen zwei Schritte:

1. Vor der eigentlichen Ausgabe wird zunächst der gewünschte Datensatz(als Zeile) in eine zusätzliche Feldleiste mit gleichem Aufbau kopiert.

2. Im zweiten Schritt erfolgt dann die Ausgabe der gesuchten Informationüber das betreffende Feld in dieser Feldleiste wie im vorangegangenenAbschnitt dargestellt.

Feldleisten und interne Tabellen werden gemeinsam auch als nichtelementareDatenobjekte bezeichnet.

Hinweis: Begriffe »Feldleiste« und »Struktur«

Der gewählte Begriff Feldleiste entspricht eher einer traditionellen Wortwahl;heute sind auch die Begriffe strukturiertes Datenobjekt oder auch einfach nurStruktur üblich.

Hinweis: Begriff »Feld«

Der Begriff Feld wird heute teilweise mit erweiterten Bedeutungen belegt, wir wol-len uns aber innerhalb des Buches noch am eher traditionellen Verständnis orien-tieren, wie wir es soeben beschrieben haben.

Datenstrukturen und Datendefinitionen 5.3

189

Variable

Sie haben nun die Grundvarianten kennengelernt, in denen die Daten imProgrammspeicher abgelegt sein können. Natürlich muss das zugehörigeProgramm (bzw. das Formular) auch »wissen«, wie die jeweiligen Datenbeschafft werden können – also z.B. über ein einfaches Feld oder eineinterne Tabelle. Aus diesem Grund muss im ersten Schritt immer eine Defi-nition der erforderlichen Daten erfolgen.

Das Ergebnis einer Definition sind die konkreten Datenobjekte, die dann imFormular (oder über ABAP) angesprochen werden können. Ein weiteres Kri-terium ist die Frage, ob die Daten änderbar sein sollen oder nicht. Manspricht daher von Variablen oder Konstanten.

Die Definition der Variablen beinhaltet neben der Namensvergabe immerauch eine Typisierung. Auf diesem Wege erhält das System Informationenüber den Aufbau der Variablen, die mit dem neuen Namen angelegt wurde.

Mit den bisherigen Informationen sind Sie eigentlich schon ausreichendgerüstet, um im nächsten Schritt mit der Definition von Daten fortzufahren(siehe Abschnitt 5.3.2, »Datendefinition«).

In Spezialfällen der Formularentwicklung werden Sie jedoch auf Variabletreffen, die weit komplexer sind, als wir es bisher betrachtet haben. Zu die-sen komplexen Strukturen geben wir im Folgenden noch einige Hinweise.

Komplex strukturierte Variable

Wir haben in der bisherigen Darstellung bewusst ein einfaches Beispiel ver-wendet, damit die Unterschiede zwischen den verschiedenen Typen vonVariablen sofort erkennbar sind (Feld, Feldleiste etc.). In der Praxis werdenSie jedoch gelegentlich auch auf Datenstrukturen treffen, die um einiges

Hinweis: Begriff »Variable«

Auch wenn ein Formular überwiegend nur Daten ausgibt und diese dabei nichtändert, werden wir Definitionen doch immer so vornehmen, als wären die zugehö-rigen Daten änderbar. Aus diesem Grunde sprechen wir im Weiteren nur noch vonVariablen statt von Datenobjekten (was dem heutigen Sprachgebrauch wohl näherkommt).

Die Variable ist damit der Überbegriff zu allen Typen von Daten, die wir soebenbeispielhaft beschrieben haben. Wir sprechen hier aber häufig auch einfach vonDaten als den Inhalten der Variablen.

Daten im Formular5

190

komplexer sind. Mithilfe der folgenden Schritte werden Sie aber auch dieseHürde meistern.

Wir haben festgestellt, dass das Feld als besondere Eigenschaft nur eine ein-zige Information enthält, die nicht weiter aufgegliedert werden kann. Wegendieser Eigenschaft haben wir teilweise auch von einem elementaren Feldgesprochen. Wir sind in unserem Beispiel bisher auch davon ausgegangen,dass bei der Feldleiste jede Teilinformation äquivalent dazu in den zugeord-neten Datenkomponenten abgelegt ist. Dazu gehören z.B. die Namensteile»Klaus« und »Meier«, also ebenfalls elementare Felder (siehe Abbildung 5.6und Abbildung 5.7).

Eine solche Einschränkung gilt aber eigentlich gar nicht: Vielmehr kannjedes Feld in einer strukturierten Variablen selbst wieder eine eigenständigeDatenkomponente sein.

Dass Strukturierung recht nützlich ist, wollen wir im Folgenden an zwei Bei-spielen zeigen:

� Beispiel 1Im ersten Fall (siehe Abbildung 5.7) ist eine Datenkomponente (Teilinfor-mation) der Feldleiste als Verweis/Link auf eine andere Feldleiste ange-legt. Im Beispiel wird unter dem Namen ADR eine Struktur angesprochen,die alle Angaben zur Adresse des Kunden zusammenfasst (hier STRAS undORT). Um von dort eine Teilinformation abzurufen, muss der Feldnameunter Smart Forms auch die neue Zwischenstufe enthalten, also z.B.&KUNDE_WA-ADR-STRAS&. Die bisherigen Komponenten STRAS und ORT kön-nen damit in KUNDE_WA entfallen.

Vorteil dieser Lösung ist, dass bei Feldleisten, die aus vielen einzelnenDatenkomponenten aufgebaut sind, eine größere Übersichtlichkeiterreicht wird. Bei der Einbindung mehrerer untergeordneter Strukturenkönnen diese gegebenenfalls auch Komponenten mit gleichem Namenenthalten.

Abbildung 5.7 Erweiterung 1 zur Feldleiste

NAME1KUNDE_WA

NAME2 ADR UMSATZMeier Klaus 1.123,00

STRAS ORTIm Felde 7 79000 Freiburg

&KUNDE_WA-ADR-ORT&

Datenstrukturen und Datendefinitionen 5.3

191

� Beispiel 2Alternativ kann eine Datenkomponente in der Feldleiste aber auch wieein Verweis auf eine interne Tabelle angelegt sein (siehe Abbildung 5.8).In diesem Beispiel gehen wir von dem Fall aus, dass ein Kunde auch meh-rere Wohnsitze und damit mehrere Adressen haben kann: Die übergeord-nete Feldleiste KUNDE_WA enthält auch weiterhin immer nur einen Daten-satz (mit den Daten eines Kunden). In der zusätzlichen Komponente ADRals interner Tabelle können dazu aber beliebig viele Adressen hinterlegtsein.

Da der Name des Kunden nicht von der Anschrift abhängt, ist er auch wei-terhin in KUNDE_WA geführt. Er lässt sich also wie bisher mit dem zusam-mengesetzten Feldnamen im Formular ansprechen. Für die Ausgabe derAdresse (oder gegebenenfalls mehrerer Adressen) muss dagegen wiedereine individuelle Logik hinterlegt sein, die jeden Datensatz einzeln abfragt(wie oben bei der Behandlung von internen Tabellen bereits erläutert).

Abbildung 5.8 Erweiterung 2 zur Feldleiste

Dieses Verfahren ist auch bei den Komponenten innerhalb interner Tabel-len anwendbar; auch dort können wieder beliebige Verweise auf andereDatenstrukturen hinterlegt sein (gegebenenfalls können sogar interneTabellen ineinandergeschachtelt sein).

Aus dieser Logik ergeben sich unzählige Kombinationsmöglichkeiten, dieaber immer nach dem gleichen Schema aufgebaut werden, sodass Über-sichtlichkeit gewährleistet ist.

Hinweis: Daten in der Formularschnittstelle

Auch bei der Erläuterung der Formularschnittstelle werden Sie einzelne Parameterkennenlernen, die als komplex strukturierte Daten im genannten Sinne zu verste-hen sind (siehe Abschnitt 5.4.1, »Formularschnittstelle«).

NAME1Kunde_WA

NAME2 ADR UMSATZMeier Klaus 1.123,00

STRAS ORTIm Felde 7 79000 FreiburgBergweg 3 34555 NeustadtRosenweg 5 45444 Altstadt

Daten im Formular5

192

5.3.2 Datendefinition

Daten können im System mit unterschiedlichen Eigenschaften vorkommen.Um mit Daten arbeiten zu können, müssen Variable definiert werden, dieeinen Bereich des Programmspeichers reservieren und die dann mit Datengefüllt werden können. Mit der Definition der Variablen wird gleichzeitigauch ein Datentyp für die Variable festgelegt (Typisierung). Damit kennt dasSystem die Eigenschaften der Variablen und kann passenden Speicherplatzreservieren.

Abbildung 5.9 Definition auf der Registerkarte »Globale Daten«

Abbildung 5.9 zeigt einzelne Datendefinitionen (in diesem Fall bei den Glo-

balen Definitionen, Registerkarte Globale daten). Wir erläutern die ein-zelnen Zeilen in den folgenden Abschnitten nacheinander.

Jede Datendefinition muss mindestens drei Angaben enthalten:

� VariablennameSie müssen gewisse Einschränkungen für die Namensvergabe bei Variablenbeachten. Das erste Zeichen muss z.B. immer ein Buchstabe sein, und es dür-fen keine Sonderzeichen außer dem Unterstrich (_) verwendet werden. DieseRegeln werden auch bei der Gesamtprüfung des Formulars kontrolliert.

� TypisierungHier wird festgelegt, wie der folgende Bezugstyp interpretiert werden soll.In der (F4)-Wertehilfe stehen folgende Möglichkeiten zur Auswahl:

� TYPEBezieht sich auf Datentypen, die im System hinterlegt sind: ABAP-Typen oder Einträge aus dem ABAP Dictionary.

Hinweis zur folgenden Darstellung

Die Einträge selbst haben keinen direkten Bezug zur Flugrechnung, unseremÜbungsformular. Sie können die Typisierungen aber problemlos auch dort einge-ben, um die Beispiele nachzuvollziehen.

Datenstrukturen und Datendefinitionen 5.3

193

� TYPE REFBezieht sich auf Referenzdatentypen, wie sie in der objektorientiertenProgrammentwicklung verwendet werden.

Wir werden im Folgenden allein auf die Typisierungen über TYPE einge-hen und nicht auf die objektorientierten Definitionen. Diese Entschei-dung haben wir auch im Hinblick darauf getroffen, dass Ihnen die TYPE-Variante in existierenden Formularen weitaus häufiger begegnen wird.

� BezugstypAuf diese Angaben beziehen sich die eingetragenen Variablen. Je nachVorgabe in der Spalte Typisierung können dies im System hinterlegteDatentypen sein oder andere, im Formular bereits angelegte Daten.

� VorschlagswertBei Feldern (elementaren Variablen) können Sie in der Spalte Vor-

schlagswert den Inhalt vorbelegen. Die Eingabe des Wertes erfolgt beiZeichenfeldern als Text, eingeschlossen in Hochkommata, bei numeri-schen Feldern wahlweise auch ohne Hochkommata.

� KonstanteIst das Attribut Konstante gesetzt, kann das Datenelement im Formularnicht mehr mit einem neuen Inhalt versehen werden. Eine Konstantewird z.B. dann gesetzt, wenn Felder immer einen bestimmten vorgegebe-nen Wert enthalten sollen, um sie im Text über den Namen besser anspre-chen zu können.

In den folgenden Abschnitten zeigen wir einige Möglichkeiten, die sich beider Typisierung über TYPE und die zugehörigen Datentypen ergeben.

Hinweis: Verwendung von LIKE

Vor allem aus Gründen der Kompatibilität zu früheren Versionen von Smart Formsist auch noch die Typisierung über LIKE möglich. Damit können Sie einen Bezug zueiner bereits existierenden Variablen herstellen, die dann in der Spalte Bezugstypeinzutragen ist. Da die Verwendung von LIKE aber seitens SAP nicht mehr empfoh-len wird (sie fehlt auch in der (F4)-Wertehilfe), wollen auch wir nicht weiter daraufeingehen.

Hinweis zur folgenden Darstellung

Diese Einführung erhebt keinerlei Anspruch auf Vollständigkeit. Für umfassendeInformationen verweisen wir insbesondere auch auf die ausführlichen Beschrei-bungen in der SAP-Bibliothek oder entsprechende Literatur.

Daten im Formular5

194

5.3.3 ABAP-Datentypen verwenden

Die erste Zeile in Abbildung 5.9 typisiert die Variable GF_ZAHL als I (= Inte-ger): Sie kann zur Laufzeit also nur die Werte ganzer Zahlen annehmen. Die-ser grundlegende Typ wird vom ABAP-Entwicklungssystem zur Verfügunggestellt. Folgende sind weitere grundlegende ABAP-Typen:

� C: Zeichenfolge

� I: Integer (ganze Zahl)

� D: Datum

� T: Zeit (Time)

� F: Float (Gleitkommazahl)

� STRING: Zeichenfolge mit beliebiger Länge

Die Datendefinitionen innerhalb des Formulars werden bei der Generierungdes zugehörigen Funktionsbausteins automatisch in passende DATA-Anwei-sungen der ABAP-Programmiersprache übersetzt. Entsprechend können Siedie genaue Anwendung der Typisierungen über ABAP-Typen auch in derSAP-Bibliothek nachlesen (Begriff TYPE oder DATA).

Bei der Übersetzung in ABAP-Anweisungen wird für alle genannten ABAP-Typen die im System hinterlegte Standardlänge verwendet (z.B. ein Zeichenbei Typ 'C'). Auf andere Längenangaben, wie sie in ABAP z.B. über NAME(25)erfolgen, müssen Sie im Formular verzichten, diese werden von der Formu-larprüfung abgewiesen. Die direkten Anwendungsmöglichkeiten der ABAP-Typen sind also etwas eingeschränkt.

Andererseits ist die Typisierung über eingebaute ABAP-Typen auch kaumerforderlich, denn fast immer können Sie die Typisierung auch über einenBezug auf andere Komponenten vornehmen, die im SAP-System bereits vor-handen sind (über das zentrale ABAP Dictionary oder Variable im Formularselbst).

5.3.4 Bezug auf ABAP Dictionary

Das ABAP Dictionary im SAP-System beschreibt u.a. die Eigenschaften allerim System verwendeten Datenbanktabellen (üblich ist auch der Begriff DataDictionary oder einfach Dictionary).

Neben Beschreibungen zu echten (transparenten) Datenbanktabellen findensich im ABAP Dictionary auch Einträge, die nur für die Definition der Daten-objekte verwendet werden (Datentypen). Diese Datentypen sind wie Muster

Datenstrukturen und Datendefinitionen 5.3

195

zu verstehen und bieten für Software-Entwickler die Möglichkeit, Variablemit einheitlichen Eigenschaften anzulegen. Ein Beispiel hierfür ist die ein-heitliche Länge eines Namensfeldes in allen Programmen, ohne dass bekanntsein muss, wie viele Zeichen der Name in der Datenbank tatsächlich besitzt.

Der Bezug auf das ABAP Dictionary erfolgt wie bei den ABAP-Datentypenüber den Zusatz TYPE. Wird kein passender ABAP-Datentyp gefunden, suchtdas System automatisch im ABAP Dictionary. Abbildung 5.10 zeigt einigeBeispiele.

Abbildung 5.10 Typisierung über ABAP Dictionary

In der ersten Zeile des Beispiels wird die Variable GF_NAME als Textfeld defi-niert. Für diese Typisierung haben wir den Bezugstyp CHAR20 verwendet, wieer im ABAP Dictionary hinterlegt ist. Über diesen Eintrag weiß das System,dass ein Textfeld mit 20 Zeichen angelegt werden soll.

Leider existiert in der Spalte zum Bezugstyp keine Suchfunktion (Werte-hilfe), mithilfe derer Sie sich passende Einträge zum Datentyp vorschlagenlassen könnten. Wechseln Sie bei Bedarf also in die direkte Anzeige desABAP Dictionarys über Transaktion SE11. In vielen Anwendungsfällenergibt sich der Datentyp aber auch aus anderen Zusammenhängen, wie wirspäter noch sehen werden.

Ein Datentyp im ABAP Dictionary kann auch mehrere Felder gleichzeitigbeschreiben oder auch wieder andere Datentypen zusammenfassen. Anhandsolcher zentralen Definitionen können Sie komplette Feldleisten oder

Tipp: Bezugstyp aus dem ABAP Dictionary

Wenn der Bezugstyp aus dem ABAP Dictionary stammt, können Sie sich übereinen Mausdoppelklick in der Zelle zum Bezugstyp den jeweiligen Eintrag im ABAPDictionary direkt anzeigen lassen (siehe das Beispiel in Abbildung 5.11).

Daten im Formular5

196

interne Tabellen mit einer Typzuweisung definieren (noch weiter gehendeVerschachtelungsmöglichkeiten lassen wir zunächst außer Acht).

Die Definition der Variablen GS_KUNDE in unserem Beispiel zeigt in diesemFall Folgendes: Die Feldleiste wird über einen Datentyp SADR definiert. Erenthält zwar etwas andere Feldbezeichnungen als im einleitenden Adressbei-spiel, die Systematik ist aber erkennbar. Ein Doppelklick auf den DatentypSADR liefert einen Eintrag im ABAP Dictionary (siehe Abbildung 5.11). Hiersind die enthaltenen Felder als Komponenten mit ihrer Einzeltypisierungaufgelistet.

Vor SADR, dem Namen des Datentyps, steht als Bezeichnung Transp.Tabelle.Das ist ein Hinweis darauf, dass die hier gezeigte Struktur auch zum Spei-chern von Daten auf Datenbankebene genutzt werden kann. Ohne dieseZusatzfunktion hätten wir die Bezeichnung Struktur vorgefunden. Damitsind wir wieder bei unserer anfänglichen Klassifikation nach Variablen, Feld-leisten und internen Tabellen angekommen. Die Unterteilung der Datenty-pen findet sich ähnlich auch im ABAP Dictionary wieder, hier allerdings mitden Begriffen Datenelement, Struktur und Tabellentyp.

Für die Typisierung im Formular bietet der Weg über das ABAP Dictionaryeinen unschätzbaren Vorteil: Komplexe Variable wie Feldleisten oderinterne Tabellen müssen häufig in einem ähnlichen Aufbau angelegt werden.Diesen Aufbau können Sie als Datentyp komplett im ABAP Dictionary hin-terlegen. Bei Typisierung mit Bezug auf diesen Eintrag zum Datentyp wirddie komplette Feldleiste bzw. interne Tabelle dann auch im Formular ange-legt.

Wir kommen auf das Beispiel in Abbildung 5.10 zurück und betrachten diedritte Zeile: Über eine Erweiterung zu TYPE wird dort eine interne TabelleGT_KUNDE angelegt, deren Zeilenstruktur wieder durch den Datentyp SADRvorgegeben ist (also wie bei GS_KUNDE). Der Zusatz TABLE OF erzeugt dabeiautomatisch diese interne Tabelle.

Alternativ könnten Sie statt TABLE OF auch einen Datentyp im ABAP Dictio-nary verwenden, der speziell für die Definition einer Tabelle vorgesehen ist,den sogenannten Tabellentyp. In Abbildung 5.10 ist die Variable GT_LIEFE-RANT so definiert. Der hinterlegte Datentyp MMPR_SADR ist als Tabellentypangelegt, deshalb reicht TYPE für die Typisierung aus. Gehen Sie zur Kon-trolle einfach über einen Doppelklick wieder ins ABAP Dictionary. Sie wer-den sehen, dass dort zum Tabellentyp MMPR_SADR der Zeilentyp SADR zuge-ordnet ist (siehe Abbildung 5.11).

Datenstrukturen und Datendefinitionen 5.3

197

Abbildung 5.11 Datentyp im ABAP Dictionary

Datenbanktabellen

Wir sind bisher davon ausgegangen, dass die Variablen in Smart Forms überspezielle Datentypen im System definiert werden, entweder über Einträgeim ABAP Dictionary oder über Elemente der Programmiersprache ABAP.

Häufig werden Feldleisten oder interne Tabellen aber mit Daten gefüllt, diedirekt aus vorhandenen Datenbanktabellen gelesen werden. Quelle und Zielsollten in diesen Fällen natürlich die gleiche Feldstruktur aufweisen.

Es liegt also nahe, die Definition einer Variablen mit Bezug auf eine solcheDatenbanktabelle vorzunehmen und dann die benötigten Daten dort einzu-lesen. Für diese Anwendung steht wieder das ABAP Dictionary zur Verfü-gung, denn hier sind auch alle Datenbanktabellen (als transparente Tabellen)mit ihren Eigenschaften eingetragen. Auch in diesem Fall erfolgt der Bezugwieder über TYPE, auch wenn es sich streng genommen nicht um Datenty-pen handelt.

Daten im Formular5

198

Betrachten Sie die letzten Zeilen in Abbildung 5.10:

� Die definierte Feldleiste GS_MATERIAL entspricht in ihrer Struktur derDatenbanktabelle MARA für Materialdaten im ERP-System. Dorthin könnenSie folglich immer nur einen Materialstammsatz übertragen.

� Um eine interne Tabelle zu erzeugen, können Sie wieder den Weg überden Zusatz TABLE OF wählen. Die Variable GT_MATERIAL kann folglich meh-rere Datensätze zum Materialstamm aufnehmen.

� Die Typisierung ist auch auf einzelne Felder der Datenbanktabelleanwendbar: In der letzten Zeile wird eine Variable GF_GEWICHT definiert,die genauso angelegt ist wie das Datenbankfeld zum Bruttogewicht imMaterialstamm. Wie bei der Ausgabe von Feldern im Formular wird dieKomponente BRGEW in der Datenbanktabelle MARA wieder über den mehr-stufigen Feldnamen gefunden.

Ergebnis

Es lohnt sich, das Ergebnis der Definitionen in der Feldliste des Form Buil-ders zu betrachten. Die Einträge befinden sich unter der Gruppe Globale

Daten (siehe Abbildung 5.12).

Abbildung 5.12 Feldliste in Bildschirmdarstellung

Eine Variable wie GF_NAME könnten Sie direkt als Feld in einen Text einfügen;dies ist an dem Textsymbol vor diesem Eintrag erkennbar. Für die Feldleis-ten GS_MATERIAL und GS_KUNDE wurde vom System ein Ordner angelegt; dar-unter sind die einzelnen Felder gelistet. Wenn Sie ein solches Feld in denText übernehmen, wird automatisch der komplette Feldname kombiniert,also z.B. &GS_KUNDE-NAME1&.

Datenstrukturen und Datendefinitionen 5.3

199

5.3.5 Individuelle Datentypen im Formular

In den meisten Fällen sind Datendefinitionen für die Formularentwicklungüber das ABAP Dictionary oder über eingebaute ABAP-Datentypen ausrei-chend. In speziellen Fällen kann es jedoch sinnvoll sein, eigene Datentypenanzulegen, die dann auch nur im jeweiligen Formular zur Anwendung kom-men. Die Zuweisung zu einer Variablen erfolgt auch in diesem Fall wiederüber die Typisierung mit TYPE.

Diese formularinternen Datentypen erstellen Sie über die RegisterkarteTypen in den Globalen Definitionen (siehe Abbildung 5.13).

Abbildung 5.13 Datentypen in den globalen Definitionen

Hinweis: Tabellen in der Feldliste

An dieser Stelle könnte man versucht sein, auch aus der Tabelle GT_KUNDE oderGT_LIEFERANT ein Feld in einen Text-Knoten zu übernehmen – an der Darstellungin der Feldliste ist ja nicht erkennbar, ob es sich um eine Feldleiste oder eineinterne Tabelle handelt. Das Einfügen ist aber nicht sinnvoll, denn die Ausgabemuss ja über eine Feldleiste erfolgen, wie wir weiter oben beschrieben haben.

Hilfreich ist in diesem Fall eine Namenskonvention: Wie Sie sicher bemerkt haben,beginnen die Namen der Variablen mit Tabelleninhalt in unserem Beispiel immermit GT:

� G = Globale Daten (zur Unterscheidung von lokalen Daten, die Sie später kennenlernen)

� T = Tabelle

Arbeiten Sie mit zusätzlichen Feldleisten, die Sie als Arbeitsbereiche für dieseinternen Tabellen einsetzen und die Sie vorher über Schleife- oder Programm-Kno-ten mit den entsprechenden Daten füllen. Das verhindert Irrtümer (mehr dazu inKapitel 6, »Ablauflogik des Formulars«).

Daten im Formular5

200

Auch wenn es sich hierbei schon um eine erste ABAP-Codierung handelt,wirkt die Definition eines Datentyps noch recht übersichtlich: Sie wirdimmer eingeleitet durch die Anweisung TYPES. Es folgt der Name des Daten-typs, gefolgt vom Zusatz TYPE für die Festlegung des Aufbaus.

Zum Inhalt der Beispiele in Abbildung 5.13:

� (A) Text mit 33 ZeichenHier wird ein Datentyp TYF_ZEICHEN erstellt, der eine Folge von 33alphanumerischen Zeichen aufnehmen kann. Eine Vielzahl solcher Daten-typen ist im ABAP Dictionary bereits hinterlegt; in unserem Beispiel wei-ter oben (siehe Abbildung 5.10) haben wir z.B. CHAR20 verwendet. EinenEintrag CHAR33 gibt es im Dictionary allerdings noch nicht; im Formularkönnte man jetzt also TYF_ZEICHEN als Bezugstyp verwenden.

� (B) Eigene Tabelle für SADRDieser Eintrag erzeugt einen Tabellentyp TYT_SADR entsprechend dem Auf-bau des Datentyps SADR und tut das Gleiche wie der ABAP Dictionary-Tabellentyp MMPR_SADR, auf den wir oben schon referenziert haben. In derDatendefinition könnten Sie jetzt also gleichwertig den neuen Typ TYT_SADR verwenden, in beiden Fällen entfällt der Zusatz TABLE OF bei derDatendefinition.

� (C) Individuelle Struktur mit drei KomponentenDieses Beispiel erzeugt zunächst eine individuelle Struktur TYS_CONNECTmit drei Feldern: Dadurch wird es möglich, zu einer Flugverbindung auchgleichzeitig Kürzel und Name der Fluggesellschaft zu speichern. Über einezweite TYPES-Anweisung wird anschließend ein dazu passender Tabellen-typ TYT_CONNECT angelegt, um gegebenenfalls mehrere Datensätze spei-chern zu können.

Natürlich stellt die Erstellung individueller Datentypen über ABAP-Codie-rung weitere mächtige Optionen zur Verfügung, die in der ABAP-Schlüssel-wortdokumentation ausführlich beschrieben sind (Aufruf mit der (F1)-Tasteauf TYPES im ABAP Editor).

Hinweis: Möglichst Datentypen aus dem ABAP Dictionary verwenden

Verwenden Sie so weit wie möglich Typen aus dem ABAP Dictionary. Das erhöhtganz allgemein die Übersichtlichkeit und erleichtert die Pflege.

Quelle der Daten 5.4

201

5.3.6 Syntax der Felder

Aus den bisherigen Beschreibungen und sonstigen Vorgaben des Systemsergeben sich einige Regeln, die bei der Eingabe eines Feldnamens zu beach-ten sind. Hier eine Zusammenfassung dieser Regeln:

� Der Feldname darf keine Leerzeichen enthalten. Außerdem dürfen dieSonderzeichen ', + und () nicht verwendet werden, da sie für die Angabevon Aufbereitungsoptionen vorbelegt sind.

� Der Feldname kann maximal 30 Zeichen enthalten.

� Es werden keine Unterschiede zwischen Groß- bzw. Kleinschreibung imFeldnamen gemacht (d.h., die Angaben &myfield&, &MYfield& und&MYFIELD& sind identisch).

� Die Namen der vorgegebenen Systemfelder können nicht für eigene Feld-namen verwendet werden.

Bei der Ausgabe im Text ist zusätzlich Folgendes zu beachten:

� Das Feld muss am Anfang und am Ende durch das &-Sonderzeichen einge-klammert werden.

� Für die Ausgabe der Spalte einer Feldleiste werden die beteiligten Kompo-nenten zweistufig über einen Bindestrich (Minus-Zeichen) verbunden. Indieser Form können auch Strukturen mit noch mehr Stufen abgebildetwerden.

5.4 Quelle der Daten

Kurz zusammengefasst gibt es die folgenden Wege, wie Daten in ein Formu-lar gelangen können:

� Systemfelder enthalten Daten, die in ihrer Bedeutung vorbelegt sind undbei der Ausgabe automatisch gefüllt werden (Datum, Seitenzahl).

� Angaben in der Formularschnittstelle definieren die Daten, die mit demRahmenprogramm ausgetauscht werden.

� Durch Einträge bei den globalen Definitionen werden die Variablen ange-legt, die innerhalb des Formulars für eigene Berechnungen etc. verwendetwerden sollen (z.B. auch Arbeitsbereiche, um interne Tabellen aus derFormularschnittstelle individuell auszulesen).

Nachrichtenfindung und -steuerung 10.3

479

Ausführlicher als mit dieser Übersicht wollen wir das grundsätzliche Verfah-ren der Konditionstechnik auch nicht erläutern. Hierzu existieren detaillierteBeschreibungen, nicht zuletzt auch in der SAP-Hilfe, die über http://help.sap.com zu finden ist.

Stattdessen möchten wir an einem praktischen Beispiel zeigen, wie Sie einneues Formular in die Nachrichtenfindung mit Konditionstechnik einbin-den.

10.3.3 Übungsbeispiel: Nachrichtenfindung über Konditionstechnik

Als Beispiel wählen wir wieder die Lieferung. Die beiden folgenden grundle-genden Schritte sind mindestens erforderlich, um ein neues Formular in dieNachrichtenfindung mit Konditionstechnik einzubinden:

1. Pflege einer Nachrichtenart mit den Angaben zum Formular

2. Nachrichtenart in das passende Nachrichtenschema einbinden, falls dieNachrichtenart vorher nicht existierte

Diese Einstellungen erfolgen im Customizing. Weitere Einstellungen sindnötig, wenn die erzeugten Nachrichten später automatisch ausgegeben wer-den sollen (z.B. Konditionssätze mit passenden Ausgabegeräten).

Wir wollen die Ausgabe des Lieferscheins hier allerdings immer manuellanstoßen. Dies dürfte zumindest für die Dauer der Formularentwicklungauch der sinnvollste Weg sein.

Die Nachrichtenfindung über Konditionstechnik wird im Customizing derjeweiligen Applikation eingerichtet. Für den Vertrieb wählen Sie z.B. Ver-

trieb � Grundfunktionen � Nachrichtenfindung. Alternativ dazu existierteine zentrale Transaktion NACE, in der alle Applikationen mit ihren Einstel-lungen zur Nachrichtenfindung zusammengefasst sind. Im Folgenden grei-fen wir immer auf die Transaktion NACE zurück (dazu existiert im Customi-zing allerdings kein Menüpfad).

Nachdem Sie die Transaktion NACE aufgerufen haben, öffnet sich eine Listealler vertretenen Applikationen (siehe Abbildung 10.12). Ausgehend vondiesem Einstiegsbild finden Sie unter dem Menü Bearbeiten alle Einzelbear-beitungsfenster der Nachrichtenfindung. Markieren Sie zuvor die relevanteApplikation (beim Lieferbeleg ist dies V2 – Versand).

Most Wanted10

480

Abbildung 10.12 Customizing der Nachrichtenfindung über Konditionstechnik

Schritt 1: Nachrichtenart pflegen

Unter der Überschrift »Nachrichtenart pflegen« werden in diesem Schritt fol-gende Einzeltätigkeiten zusammengefasst:

1. Nachricht kopieren

2. Formular zuweisen

3. Zeitpunkt der Ausgabe kontrollieren

Öffnen Sie im Menü in Abbildung 10.12 das Bearbeitungsbild zur Nachrich-tenart. Es erscheint eine Liste aller angelegten Nachrichtenarten (siehe Abbil-dung 10.13).

Wir gehen davon aus, dass Sie für ein neues Formular auch eine neue Nach-richtenart verwenden möchten. Erzeugen Sie diese durch Kopie einer vor-handenen Nachrichtenart. Am besten kopieren Sie die Nachrichtenart, diebisher für eine entsprechende Ausgabe zuständig war. In unserem Fall wäredas z.B. die Nachrichtenart LD00 für Standard-Lieferscheine.

Nachrichtenfindung und -steuerung 10.3

481

Abbildung 10.13 Nachrichtenarten

Gehen Sie folgendermaßen vor, um diese Nachrichtenart zu kopieren:

1. Erzeugen Sie die Kopie über den Menüpfad Bearbeiten � Kopieren als

(wechseln Sie gegebenenfalls vorher in den Bearbeitungsmodus).

2. Vergeben Sie danach ein Kürzel für die neue Nachrichtenart – es muss demAnwendernamensraum zugeordnet werden (also mit Y oder Z beginnen) –,und vergeben Sie eine aussagekräftige Bezeichnung.

3. Bestätigen Sie die Eingaben mit der Taste (¢).

4. Das System fragt nun, ob auch untergeordnete Tabelleneinträge mitko-piert werden sollen. Wählen Sie die Option Alle kopieren.

5. Sichern Sie dann die neue Nachrichtenart. Das System fragt nach einemTransportauftrag, den Sie gegebenenfalls auch neu anlegen können.

Nun müssen Sie das Formular zuweisen. Wählen Sie zur neuen Nachrichten-art den Themenbereich Verarbeitungsroutinen innerhalb der Dialogstruk-tur am linken Bildschirmrand.

Most Wanted10

482

Abbildung 10.14 Verarbeitungsroutinen zur Nachrichtenart

Der Arbeitsbereich im rechten Bildschirmbereich erscheint jetzt, wie es inAbbildung 10.14 zu sehen ist. Hier sind alle Programme und Formulare hin-terlegt, die abhängig vom jeweiligen Ausgabemedium verwendet werdensollen. Bei den Ausgaben im Zuge des elektronischen Datenaustauschs kön-nen diese gegebenenfalls auch komplett ohne Formular erfolgen (dann exis-tiert nur ein Eintrag in der Spalte Programm).

Um die Druckausgabe auf Formulare unter Smart Forms einzurichten, müs-sen Sie die Einträge in der zugehörigen Zeile ändern:

1. Die Spalte Formular enthält Verweise auf bisherige SAPscript-Formulare.Dahinter folgt die Spalte PDF/SmartForm Formular für das Formularunter Smart Forms. Löschen Sie also für das Medium Druckausgabe denEintrag in der Spalte Formular, und erzeugen Sie einen neuen Eintrag inder Spalte SmartForm. Um Schreibfehler zu vermeiden, sollten Sie diehinterlegte Wertehilfe nutzen. (Das Standardformular für Lieferungenheißt unter Smart Forms LE_SHP_DELNOTE.)

2. Auch die Spalte Programm enthält bisher noch den Namen des Rahmen-programms zur Verarbeitung eines SAPscript-Formulars. Ändern Sie auchdiesen Eintrag. Das Standardprogramm für die Ausgabe des Lieferscheinszu Smart Forms ist RLE_DELNOTE.

3. Üblicherweise ist das Rahmenprogramm nicht direkt aufrufbar, sondernnur ein dort enthaltenes Unterprogramm. Die zugehörige Schnittstellewird auch für den Austausch von Programmparametern genutzt. InAbschnitt 8.8.1, »Import-Standardparameter«, wird dieser Aspekt aus derSicht des Rahmenprogramms dargestellt. Der bisherige Eintrag ENTRY zu

Nachrichtenfindung und -steuerung 10.3

483

dieser Formroutine wird auch vom Rahmenprogramm RLE_DELNOTE ver-wendet und kann deshalb stehen bleiben.

Nun sollten Sie noch ein weiteres Attribut zur neuen Nachrichtenart kontrol-lieren, den Zeitpunkt:

1. Wählen Sie in der Dialogstruktur per Mausdoppelklick den HaupteintragNachrichtenarten. Damit gelangen Sie zurück zur Hauptübersicht derNachrichtenarten.

2. Wechseln Sie per Mausdoppelklick auf Ihre neue Nachrichtenart in diezugehörige Detailansicht.

3. Wählen Sie dann die Registerkarte Vorschlagswerte: Dort sollte als Ver-

sandzeitpunkt der Eintrag Versenden durch anwendungseigene Trans-

aktion gewählt sein. Nur mit dieser Vorgabe können Sie bei der späterenBearbeitung eines Lieferbelegs die Ausgabe selbst anstoßen.

4. Sichern Sie Ihre Eingaben, und ordnen Sie gegebenenfalls einen Transport-auftrag zu. Sie befinden sich dann wieder in der Gesamtübersicht allerNachrichtenarten.

5. Über die Funktionstaste (F3) kehren Sie zurück zur Gesamtübersicht allerApplikationen.

Tipp: Richtiges Formular/Rahmenprogramm finden

Es kann gelegentlich etwas problematisch sein, das richtige Formular bzw. Rah-menprogramm für eine Anwendung zu finden. Für die Standardformulare der SAPexistiert eine entsprechende Aufstellung (siehe dazu die Hinweise im SAPnet bzw.im Anhang).

Hinweis: Technischer Hintergrund

Über den Eintrag im Feld Versandzeitpunkt ist je nach Nachrichtenart hinterlegt,wann eine Nachricht ausgegeben werden soll. Das kann direkt beim Speicherneines Belegs sein, beim Anstoß durch den Anwender oder automatisch über einenBatch-Prozess.

Tipp: Datenbanktabelle TNAPR

Die Angaben unter den Verarbeitungsroutinen sind in der Datenbanktabelle TNAPRgespeichert. Sie können die dortigen Einträge überprüfen (z.B. mit der TransaktionSE16), um festzustellen, in welchen Applikationen ein Formular oder Rahmenpro-gramm aktuell bereits eingesetzt ist.

Most Wanted10

484

Schritt 2: Nachricht in das Nachrichtenschema einbinden

Unter der Überschrift »Nachricht in das Nachrichtenschema einbinden« wer-den in diesem Schritt folgende Einzeltätigkeiten zusammengefasst:

1. Nachrichtenart in das Nachrichtenschema einbinden

2. Nachrichten im Beleg zuordnen

3. Nachricht hinzufügen

4. Nachrichtenausgabe anstoßen

Ein Nachrichtenschema enthält alle Nachrichtenarten, die in einem Beleganwählbar sein sollen. Dabei kann jedem Beleg immer nur ein Nachrichten-schema zugeordnet sein. Welches Schema das ist, wird vom System automa-tisch über eine Schemafindung eingestellt, auf die wir an dieser Stelle abernicht näher eingehen werden.

Wir binden zunächst die angelegte Nachrichtenart in das passende Nachrich-tenschema ein. Folgende Einzelschritte sind erforderlich, um dieses Nach-richtenschema im Customizing der Nachrichtenarten (Transaktion NACE) zuerreichen:

1. Stellen Sie sicher, dass die Applikation V2 weiterhin markiert ist.

2. Wählen Sie dann den Menüpfad Bearbeiten � Schemata.

3. Es erscheint eine Liste aller im Rahmen der Applikation verwendetenNachrichtenschemata. Markieren Sie für das Beispiel des Lieferbelegs denEintrag V10000.

4. Wählen Sie dann per Mausdoppelklick den Eintrag Steuerung in der lin-ken Dialogstruktur. Sie erhalten das Bearbeitungsbild wie in Abbildung10.15.

Tipp: Prüfen Sie, welches Schema relevant ist

Wenn Sie unsicher sind, welches Schema für Ihre Einstellungen relevant ist, solltenSie Folgendes machen: Öffnen Sie einen Beispielbeleg Ihrer Applikation, für denSie die Nachrichtenausgabe testen wollen. Im Bereich der allgemeinen Angabenzum Beleg befindet sich häufig auch ein Hinweis zum gefundenen Nachrichten-schema.

Im Bearbeitungsbild zum Lieferbeleg finden Sie den Eintrag allerdings nur über dieAnalyse der Nachrichtenfindung.

Nachrichtenfindung und -steuerung 10.3

485

Abbildung 10.15 Nachrichtenarten im Nachrichtenschema

Sie sehen alle im Nachrichtenschema enthaltenen Nachrichtenarten. Dasheißt aber nicht, dass diese Nachrichten auch später alle zu einer Lieferungausgegeben werden. Darüber entscheiden wieder andere Parameter, wiez.B. die Ausführungsbedingungen oder auch der Inhalt der Konditionssätze.Diese Parameter sind aber für unser aktuelles Ziel zur Einbindung der neuenNachrichtenart nicht weiter relevant.

Beachten Sie die bisherige Nummerierung der einzelnen Nachrichtenarten.Bei der folgenden Anlage eines neuen Eintrags sollten Sie die bisherigenNummern nicht verwenden. Wählen Sie stattdessen für den neuen Eintrageine Zahl, die so groß ist, dass der Eintrag am Ende der Liste erscheinenwird. Auch hier wieder die Einzelschritte:

1. Erzeugen Sie über die Taste Neue Einträge eine leere Eingabezeile.

2. Wählen Sie dort die neue Nummer und die neue Nachrichtenart.

3. Bestätigen Sie die Eingabe.

4. Sichern Sie Ihre Eingaben, und ordnen Sie gegebenenfalls wieder denTransportauftrag von oben zu.

5. Sie befinden sich nun wieder in der Gesamtübersicht aller Nachrichten-schemata. Mithilfe der Funktionstaste (F3) kehren Sie zur Gesamtüber-sicht der Applikationen zurück.

Most Wanted10

486

Bisher haben Sie im Customizing die Nachrichtenfindung eingerichtet.Damit besteht die Möglichkeit, dass eine Nachrichtenart für die konkreteAusgabe als Nachricht im Beleg automatisch gefunden oder manuell zuge-ordnet werden kann. Für den Testbetrieb soll die manuelle Zuordnung rei-chen, auf die wir jetzt eingehen. Erst nach dieser Zuordnung lässt sich eineNachricht erstmals ausgeben.

Jede Applikation, die auf die Nachrichtenfindung über Konditionstechnikzurückgreift, enthält in der jeweiligen Bearbeitungstransaktion eine Ver-zweigung, um die Nachrichten zu pflegen, die im jeweiligen Beleg angelegtsind. Leider gibt es dafür aber keinen einheitlichen Menüpfad, üblich ist derZugang über das Menü Springen oder das Menü Zusätze.

Unser bisheriges Beispiel der Nachrichtenfindung bezieht sich auf den Lie-ferbeleg; dessen Bearbeitungstransaktion ist VL02N (im SAP-Menü wahl-weise unter Vertrieb oder Logistic Execution zu erreichen). Wählen Sieeine beliebige Lieferung als Muster aus und dann die Taste (¢).

Im dann folgenden zentralen Bearbeitungsbild zur Lieferung wählen Sie denMenüpfad Zusätze � Liefernachrichten � Kopf, um das Bearbeitungsbild zuden Nachrichten zu erreichen (siehe Abbildung 10.16).

Abbildung 10.16 Nachrichten im Lieferbeleg

Sie sehen hier eine Liste aller Nachrichten, die bisher zum Beleg angelegtwurden. Ob die Nachrichten noch zur Ausgabe anstehen oder bereits abge-arbeitet wurden, zeigt die Statusspalte in Form einer Ampel:

Nachrichtenfindung und -steuerung 10.3

487

� RotFehler bei der Übertragung an den Spooler, die Ausgabe wurde abgebro-chen. Für diese Nachrichten existiert im Normalfall auch ein Eintrag imNachrichtenfehlerprotokoll.

� GelbNachricht wurde noch nicht an den Spooler übergeben, bereit für denAusgabeauftrag.

� GrünDie Nachricht wurde erfolgreich an den Spooler übertragen.

Sie können also nur Nachrichten in der Gelbphase über einen Ausgabeauf-trag an den Spooler übergeben.

Die neu von Ihnen angelegte Nachrichtenart ist sicher nicht in der Liste vor-handen, denn eine automatische Zuordnung (Findung) erfolgt nur bei Neu-anlage eines Lieferbelegs. Sie können eine solche Nachricht aber auch selbsthinzufügen:

1. Wählen Sie die erste freie Zeile in der Liste, und rufen Sie im Eingabefeldzur Nachrichtenart über die Funktionstaste (F4) die Wertehilfe auf. Allejetzt angezeigten Nachrichtenarten sind im aktuell gewählten Nachrich-tenschema enthalten. Dort muss also jetzt auch Ihre neue Nachrichtenartzu sehen sein – wenn nicht, wird eventuell doch ein anderes Nachrichten-schema verwendet.

2. Übernehmen Sie die neue Nachrichtenart ins Eingabefeld, und bestätigenSie den Eintrag. Die anderen Felder werden automatisch mit Defaultsgefüllt. Dieser neue Eintrag steht nun auf Gelb und zeigt damit die Bereit-schaft für die Ausgabe.

3. Ergänzen Sie wahlweise über die Taste Kommunikationsmittel noch dieVorgabe zum Ausgabegerät. Oder sichern Sie die neuen Nachrichtenein-stellungen direkt. Das System fragt gegebenenfalls automatisch nacheinem fehlenden Ausgabegerät.

4. Verlassen Sie über die Funktionstaste (F3) das Bearbeitungsbild der Liefe-rung.

Sie können die Nachricht nicht direkt aus einem Bearbeitungsbild zum Lie-ferbeleg ausgeben. Damit ist sichergestellt, dass alle Eingaben zuvor auch andie Datenbank übergeben worden sind (denn von dort werden die Daten fürdas Formular gelesen).

Starten Sie stattdessen die Ausgabe im Eröffnungsbild zum Lieferbeleg(Transaktion VL02N) über den Menüpfad Lieferung � Liefernachricht aus-

Most Wanted10

488

geben. Es folgt eine Liste aller Nachrichten, die zuvor im Beleg auf Ampel-farbe Gelb standen. Wählen Sie Ihre neue Nachricht und dann die Drucktastefür Druckvorschau. Gegebenenfalls folgt eine Abfrage zum Ausgabegerät;dann wird aber endlich das gesuchte Formular ausgegeben. Auch aus diesemFenster heraus können Sie die Ausgabe zum echten Druck an den Spoolerweiterleiten.

Ablauf der Nachrichtenverarbeitung

Wir haben soeben erfolgreich eine Nachrichtenart angelegt, auf dieser Basiseine passende Nachricht in der Lieferung erzeugt und diese dann auch aus-gegeben. Im Folgenden erläutern wir, wie diese Abläufe im SAP-Systemgesteuert sind. Diese Informationen sind vor allem dann wichtig, wenn Sieein eigenes Programm in die Nachrichtenverarbeitung einbinden wollen.

Alle zum Beleg angelegten Nachrichten werden einheitlich mit den jeweilsaktuellen Einstellungen (wie Drucker, Partner etc.) in der DatenbanktabelleNAST gespeichert (Nachrichten-Statussatz). Sie ist zentraler Ausgabepunkt fürdie weitere Verarbeitung: Von dort erhält z.B. auch das Rahmenprogrammzur Lieferung seine Eingangsinformationen.

In das Feld NAST-VSZTP wird bei der Anlage einer neuen Nachricht der Ver-sandzeitpunkt aus der Nachrichtenart übernommen. Er bestimmt, wann dasSystem die spezielle Nachricht ausführen soll (beim Speichern des Belegs, zueinem bestimmten Zeitpunkt etc.). Beim Produktivbetrieb wird die Daten-banktabelle NAST normalerweise über einen Report (z.B. RSNAST00) ausgewer-tet, der alle zur Ausgabe anstehenden Nachrichten selektiert, um sie dannüber passende Ausgaberoutinen (Programm und Formular) z.B. an dasSpoolsystem zu übergeben. Für unsere neue Nachrichtenart haben wir alsAusgabezeitpunkt Anwendungsspezifische Transaktion gewählt. Die soangelegten Nachrichten werden vom Report ignoriert und müssen stattdes-sen manuell angestoßen werden.

Hinweis: Statusänderung bei Druckausgabe

Sie können eine Nachricht beliebig oft in die Druckvorschau holen. Bei einer ech-ten Druckausgabe ändert sich auf jeden Fall der Status der Nachricht, je nach Erfolgentweder auf Rot oder auf Grün. Diese Nachricht kann dann nicht mehr ausgege-ben werden. Rufen Sie, um die Nachricht noch einmal auszugeben, das Nachrich-tenbearbeitungsbild gegebenenfalls erneut auf, und tragen Sie die Nachrichtenartnochmals ein (oder duplizieren Sie mit der Taste Wiederholen den bisherigenNachrichteneintrag).

Nachrichtenfindung und -steuerung 10.3

489

Über den Eintrag in die Datenbanktabelle NAST kennt das System die Nach-richtenart und kann damit auch die zugehörige Verarbeitungsroutine ermit-teln (aus der Datenbanktabelle TNAPR). Die aktuellen Einträge beider Tabellenstehen auch dem Rahmenprogramm der Formularausgabe als globale Para-meter zur Verfügung. Auf diese Weise kennt das Programm sowohl die pas-senden Ausgabeparameter (wie z.B. den Druckernamen) als auch das rele-vante Formular.

Im Gegenzug meldet das Programm den Erfolg oder Misserfolg der Ausgabezurück, beim Lieferbeleg über einen Schnittstellenparameter RETURN_CODE.Dessen Inhalt wird in die Datenbanktabelle NAST fortgeschrieben und istdann im Lieferbeleg als Ampelsignal sichtbar. Das zugehörige Tabellenfeldheißt NAST-VSTAT (z.B. mit 1 = verarbeitet), das zugehörige Verarbeitungsda-tum findet sich gegebenenfalls im Feld NAST-DATVR.

Aufgetretene Fehlermeldungen werden ebenfalls übernommen und in zweiDatenbanktabellen fortgeschrieben, CMFK für Kopfinformation und CMFP mitden einzelnen Meldungen als Positionen. Über eine interne Protokollnum-mer im Feld CMFPNR sind alle Meldungen zu einer einzelnen Nachricht iden-tifiziert.

Den Inhalt der Fehlertabellen können Sie im Rahmen der Applikation alsFehlerprotokoll zur Nachricht abrufen.

10.3.4 Formulare des Finanzwesens einbinden

Die bisher beschriebene Nachrichtenfindung über Konditionstechnik wirdheute bereits in vielen Modulen der Logistik eingesetzt. In anderen Berei-chen existieren darüber hinaus aber noch weitere individuelle Verfahren.Wir wollen hier beispielhaft die Einbindung eines neuen Mahnformularserläutern.

Zunächst ist die Einbindung in das Rahmenprogramm erforderlich. Für dasMahnwesen über Smart Forms ist das Standardformular F150_DUNN_SF vorge-sehen, von dem Sie zur Anpassung wieder Kopien anlegen sollten. Andersals in den bisherigen Betrachtungen ist das Rahmenprogramm, das dieses

Hinweis: Fehlermeldungen

Fehlermeldungen werden nur bei einer echten Ausgabe der Nachricht erzeugt (z.B.beim Ausdruck); Meldungen zur Druckvorschau werden nicht in die Datenbank-tabelle übernommen und sind deshalb auch nicht auf diesem Wege auswertbar.

671

Index

A

ABAP Debugger 293ABAP Dictionary 194, 195, 205, 278ABAP Editor 56, 283, 284

Anweisungsmuster 312, 343Bearbeitungsfunktionen 310Besonderheiten unter Smart Forms 314eingebaute Hilfen 313Syntaxcheck 311

ABAP-AnweisungPARAMETER 331SELECTION-SCREEN 330SELECT-OPTION 331

ABAP-Datentyp 194ABAP-Grundlagen, Selektionsbild 346ABAP-Klasse 361, 495

CL_SAMPLE_PROCESSING_CLASS_PPF 421

Klassenerweiterung 358zentrale 279

ABAP-Knoten 634ABAP-Listenformat 546ABAP-Paket FS_CORR 428ABAP-Programmierung 34Ablagemodus 531

Drucken und Ablegen 603, 605, 610Nur Ablegen 603, 605Nur Drucken 603

Ablagesystem 498Ablauflogik 30Absatzformat 67, 83, 459

Absatznummerierung zurücksetzen 265Namenskürzel 72Pflegen 72Ränder und Abstände 73

Absatzzeichen 459aconso 614Adobe 617Adobe Document Services 617Adobe LiveCycle Designer 617, 623Adressart 422Adresse 157, 511

Adresse-Knoten 158ZAV-Customizing 162

Akte 606, 607Akte, elektronische 613

Aktenmanagement 608Aktenmodell 607, 609Aktion 494Aktionsdefinition 496Aktionsprofil 494Alternative-Knoten 225, 258Anbindung externer Systeme 557, 566Änderungsmanagement 104Anmeldesprache 534Anweisungsmuster 312Anwendungs-Customizing 604Anwendungsformular 395, 401, 421,

430, 433, 437, 440, 441Anwendungsoberfläche 613Anwendungsobjekt 523Anwendungsprogramm 327, 336Arbeitsbereich 226Arbeitsvorrat 286Archivierung 422, 568Archivierung, optische 426, 427Archivierungsmodus 603Archivierungsparameter 437Archivmodus 498AREA POID 608ASCII 546ASSIGNED 610Aufbereitungsoption 181Aufzählung 76Ausbildungslandschaft 611Ausgabe

Attribute 547auf Drucker 468Auftrag 268, 487, 536, 544BAPI_BARCODE_SENDLIST 595, 600Bereich 30, 108, 116, 125, 139, 165Gerät 545, 546, 547in XML/XSF-Format 556Kanal 333Medium 482Parameter 343, 351Protokoll 542Seite 32Steuerung 536, 540

AusgabeformatPCL 634PostScript 546, 634ZPL 634

672

Index

Ausgabeoptionen 40, 61, 66, 112, 131, 169, 559Rahmung und Schattierung 141Zeile und Spalte 132

Ausgabesteuerung 540Ausgabetabelle 114, 122, 242

Layout 243Registerkarte »Tabelle« 242Schutz vor Umbruch 244, 245Zeilentypen 243

Ausgangsdokument 602, 609Auskunftsmenü, dynamisches 613Ausnahme 209, 380

B

Backend 606BAdI 356, 358, 624, 632

klassisches 358, 447Verfügbarkeit von 359

BAdI-Schnittstelle 435Barcode 81, 548, 551, 555, 599Barcodeerfassung 600Barcodetabelle 600Barcodetyp 600, 601Basisformular 513BC-CCM-PRN � SAP-Druckhandbuch

567BCI-Schnittstelle 523BCI-Schnittstelle-Schnittstelle 523, 525,

528BC-XOM-Schnittstelle 568Bearbeiterfindung

ausgeschlossene Bearbeiter 582mögliche Bearbeiter 582zuständige Bearbeiter 582

Bedingungen 40, 62, 225, 255, 494Beispielformular 36, 46Benutzerparameter 539Berechnung 279Bereichsmenü 63

Administration 64SAPscript 64

Bereichsmenü CORRTOOL 424Bewerbermanagement 592Bezugstyp 193Binärformat bei XSF-Ausgabe 559Block drucken 312

BMAP 451BMP 452BOR-Objekt 523BSP-Seite 560Buchverwaltung 494Business Document Service 451, 452Business Transaction Event 431, 432,

490BTE-Applikationskennzeichen 437, 439BTE-Event 431, 432

Business Workflow 607

C

Client 606Collection 412Composer 222, 546Content Repository 597Customizing 613

D

Daten 33ABAP-Datentyp 194Arbeitsbereich 226, 230, 239, 349Archivierung 422, 424Ausgeben 275Bezugstyp 193, 205Datenbanksystem 186Datenbanktabelle 194, 197, 225Datendefinition 192Datenobjekt 189Datentyp 186, 192Datentyp, formularinterner 199Dictionary 194Feld 187Feldleiste 187, 354Feldsymbole 211, 231interne Tabelle 188, 225, 230komplex strukturierte 189, 196Quelle 174, 201Strukturen 175, 186transparente Tabellen 186, 197

Datenbankabfrage 277Datenbanktabelle 303, 470, 474

NAST 333, 489

673

Index

Datenbeschaffung 34, 225, 275, 327, 338, 569Entscheidungsfaktoren 276Wege 276zentrale 279

Datendefinition 174, 185globale Daten 211Konstante 211mit TYPE 192Typisierung 189Variable 189, 211Vorschlagswert 211

Datenelement 196, 304Datenstand 500Datenstrom 568Datenstruktur 397Datentyp 303Datentyp, eigenen anlegen 306Datum 180, 212Datum, Formatierung 172DDIC-Datentyp, generierter 399DDIC-Struktur 362Debugger 284

Aktivieren 294Funktionsübersicht 294im Formular 300

Debugging 427Deckblatt 632Defaultimplementierung 435Document Finder 597Dokument 590, 593, 611

Ablegen 597archiviertes 605Aufbau 590Basisbegriff 591Content 591Infrastruktur 593Komponenten 591KPRO CMS 594KPRO DMS 594logisches 590physisches 590Scannen und Ablegen 600Übergabe an Spool 600

Dokumentarchivierung 576Dokumentart 598, 600Dokumentation 104Dokumentenmanagementsystem 428Dokumentenserver 452Dokumenterzeugung 586, 599

Dokumentfreigabe 587Dokumentinfrastruktur 593Dokumentprozess 566Dokumenttyp 598Download 562Druck 603

Modus 116Parameter 447Programm 327System 535Vorschau 428, 489, 541

Drucken 523Drucken, in SAP 470, 535, 567Drucker 488, 512

Barcode 556Font 548, 552Kommando 266Name 539Speicher 453Steuerzeichen 265

Drucker-/Gerätetreiber 547Druckertreiber 266, 469, 546, 547

HPL2 469POST 469, 546PRES 469, 546SWIN 469

Druck-Workbench 393, 394, 421, 437, 441

Duplexdruck 634

E

Editor 462Editor, Microsoft Office Word 456Ein- und Ausgabeparameter 315Einstellungsprozess 588Elementart 606E-Mail mit Anhang 412E-Mail-Objekt 526End-to-End-Kontrolle 568Enhancement Builder 357Enhancement Framework 356, 447, 448Entwicklerregistrierung 38Entwicklungsklasse 46, 531Entwicklungsobjekt 532Entwicklungswerkzeuge 280Ereignisknoten 86, 89, 169Erweiterung, modifikationsfreie 356Erweiterungsoption 358

674

Index

Erweiterungstechnologie 357Etikettenausgabe 514Etikettendruck 511, 512, 514Exit-Before-Loop 408Exit-During-Loop 408Expressdokument 527

F

Farbdrucker 80Farbinformationen 454Fax 523Fax- und Telexverkehr 546Fehlerbehandlung 379

Ausnahmen 209, 382Ausnahmen im Formular 387Fehlermeldung 381interne Fehlerkonstanten 386internes Protokoll 380, 384Laufzeitfehler 379Rahmenprogramm 382Standardmeldungen 381Systemfelder 380

Fehlerklasse 387Fehlerliste 101Fehlermeldung 101Feld 102, 224, 456, 463

als Knotenattribut 179elementares 187Leiste 187Liste 85mit Aufbereitungsoptionen 181Symbole 211Syntax 201Systemfelder 212

Fenster 30Fenster-Knoten

Anlegen 119auf mehreren Seiten 119Hauptfenster 118Nebenfenster 118

Firmenlogo 451, 453Flugdatenmodell 36Flugkundennummer S_CUSTOMER 436Flugrechnung 37, 338Flugrechnung, Arbeitskopie 45Folgeprozess 493Folgeseite 222Font 64, 80, 551

Familie 552, 553, 555Metrik 548

Pflege 551, 554TrueType-Font 554Verwaltung 551, 555

Fontpflege 551Form Builder 39, 84, 171, 290, 535, 559

Drag & Drop 55, 224, 310Grundeinstellungen 91Navigationsbaum 221, 258Teilwerkzeuge 84

Form Painter 39, 85, 92, 119, 462Formatleiste 459Formroutine 278, 483

ENTRY 336Formular 29, 512

Ablauflogik 30, 32, 221, 259Aktivieren 47, 99, 287Anlegen 38, 504Attribute 42, 47, 109, 459, 558, 559Ausgabe 327Ausgeben 35, 43Bearbeitung 534Datenflussanalyse 102Design 37, 549Dokumentation 104dynamische Ausgabe 225Ebene 397Einbinden 478Entwicklung 525Erstellung 451Erstseite 31Folgeseite 31, 222, 259Generieren 39, 65, 103Gesamtprüfung 47, 101, 240, 316Grafik 452Klasse 394, 396, 435Klassenbibliothek 395, 396Kopieren 45Layout 30, 107Name 65, 477, 498Prozessierung 223, 270Prozessor 222Prüfen 99Seite 277Seitenränder 547Seitenumbruch 259Sichern 99Status 42, 47, 99Testen 42, 47, 99, 103Texte 476Vorgabe 459zurück zu aktiver Version 99

675

Index

Formularschnittstelle 42, 202, 276, 303, 306, 504, 523, 526, 534, 558Ausnahmen 209Exportparameter 206, 375Feldsymbole 211Importparameter 203, 365obligatorische Parameter 203Standardparameter 203, 207, 345, 364Tabellen 208Typen 211Wertübergabe 207zentrale Datenübergabestruktur 204

Freigabe 613Freigabe-Workflow 568Fremdformat 476Frontend-Druck 559FS-CD 447FS-CM 424, 447Function Builder 42, 103Funktionsbaustein 34, 39, 65, 103, 104,

287, 525BC-CCM-PRN 567EFG_PRINT 432EFG_PRINT_EXPANDED 395, 420,

432, 443Eigenschaften 288FKK_GET_CORR_CUSTOMIZING 443FKK_WRITE_CORR 429, 432, 441FKKCORR_DFKKCOH_SELECT 427FKKCORR_LOG_SYMSG 443FKKCORR_PRINT_DFKKCOH_SET 446FKKCORR_STD_PRINT_44011000

438, 446Name feststellen 341SAP_WAPI_START_WORKFLOW 587SSF_FIELD_LIST 352

Funktionsgruppe 290Funktionsgruppe, FKK_HIST2 427Funktionsgruppenerweiterung 358Funktionstasten 25

G

Genehmigungsverfahren 492generischer Objektdienst 603, 609Gerätetyp 467, 547, 548, 550, 555Gesamtprozess 613Gesamtprüfung 47Geschäftspartnernummer 443

Geschäftsprozess 577, 586Gliederung 76globale Daten 211globale Definitionen 210, 278

Formroutinen 278globale Daten 211Initialisierung 277Typen 199, 278

globale Einstellungen 41, 59, 85, 109Grafik 64, 305, 452, 532

Auflösung 48im Form Painter 93Performance Druckausgabe 167Selektieren 48, 164

Grafik-Knoten 48, 162, 453Grafik-Knoten, Ausgabebereich 165Grafikverwaltung 452Grundkonzepte 451

H

Haltepunkt 294Hauptfenster 33, 117, 123, 223, 226Hauptfenster, Breite 118HE-S Process Suite (HCM) 612, 613, 615High-Volume-Szenarien 567, 569Hilfe 284Hintergrundbild 95, 97, 163, 166HP 546HTML 566, 569HTML-Ausgabe 557, 563, 565HTML-Ausgabe, formatierte 564HTML-E-Mail 415Hyperlink 143

I

Implementierung 359Implementierungsprojekt 575Include-Baustein

INCLUDE .../...F01 291INCLUDE .../...TOP 291INCLUDE .../...UXX 291

Includes 549Include-Text 145

dynamischer Textname 148Objekttyp 149Standardtext 151

676

Index

Text-ID 149Textschlüssel 146

Include-Text-Knoten 456, 470Infotyp 613Inline-Editor 51, 85, 142, 456, 463, 472Interface 358, 361

IF_EFG_LOG 437, 443IF_FKK_CORR_EXP_CREATE_REQUEST

436IF_FKK_CORR_OUTPUT_REQUEST

448interne Tabelle 188interne Tabelle mit Kopfzeile 209Internet 523ITF-Format 475, 619

K

Key 304Klassenrolle 606Klassifikation 455, 606Knoten 35, 40

des Formulars 292Einzelprüfung 101Inhalt anzeigen 291Kopieren 55, 88Kurzbezeichnung 88Löschen 89Nachfolgerknoten 86über mehrere Seiten 88Verschieben 55, 88Verwalten 54Vorgängerknoten 86

Knotenattribut 40, 61, 89Knotenattribut, statisches/dynamisches

90Knotentyp

elementarer 60, 137grafische Symbole im Navigationsbaum

86mit Layouteigenschaften 139Übersicht 59zur Ablaufsteuerung 60

Knowledge Provider 594Kommando-Knoten 225, 264, 632

Absatznummerierung 265Druckersteuerzeichen 265dynamischer Seitenumbruch 260Spoolattribute 265, 268

Kommentieren 313Kommunikationsarten 523Kommunikationsmittel 487komplexer Abschnitt 228, 270Konditionssatz 485Konditionstechnik 355, 478Konstante 211Kontext 622Kontextklasse 495Kontextmenü 55, 87Konvertierung 529Koppelart 567Korrespondenz 421Korrespondenzanforderung 422Korrespondenzart 421, 436, 439, 440,

447, 570Korrespondenzcontainer 423, 428, 435Korrespondenzcontainer, Schlüssel 429Korrespondenzempfänger 422

abweichender 442zusätzlicher 442

Korrespondenzhistorie 422, 427Korrespondenzinfosatz 441Korrespondenzkopfdatensatz 427, 436,

441, 446, 447Korrespondenzrolle 430Korrespondenzschlüssel 429, 447Korrespondenz-Tool 393, 417, 575

Anwendungsprotokolle 426Clustertabelle 435

Korrespondenzvariante 430Kyocera 546

L

Länderschlüssel 530Laufzeitfehler 379Laufzeitumschaltung 627, 630Laufzeitumstellung 629Layout 30, 623, 626Layoutgestaltung 570Lieferbeleg 487Liefernachrichten 486Linie 113logische Abfrage 254

Alternativen 258Ausgabezeitpunkte 256Bedingungen 255logische Ausdrücke 256

lokales Objekt 46

677

Index

M

Mahnformulare 490Makro 389Maßeinheit 71, 91, 110Massenkorrespondenz 416Material 473Mediensteuerung 576Mehrfachselektion 330Meldungsprotokoll 385Mengenangabe 181, 214Menüweg 25, 63Merging-Logik 493Merkmal 454Metadaten 443Migration 617Migrationspfad 617Migrationsumfang 622Mitzeichnung 613Muster 129Musterformular 37, 45

N

Nachricht 333, 486Nachrichtenart 478, 480, 483, 485, 487Nachrichtenfehlerprotokoll 487Nachrichtenfindung 479, 486Nachrichtenschema 484, 485Nachrichtensteuerung 333, 476, 477,

604Nachrichtenverarbeitung 488Navigationsbaum 40

Bearbeitungsfunktionen 87grafische Knotensymbole 86Zweige 86

Nebenfenster 33, 117, 123, 223Neueinstellung 589Notizen 607Nummerierung und Gliederung 76

O

Objektdienste 603Objektkatalogeintrag 46, 65Objektorientierung 608, 615Objekt-Plugin 358

Objekttyp 600, 615Office-Dokument 607optische Archivierung 431, 437Ordner-Knoten 133, 167Ordner-Knoten, Übungsbeispiel 171Organisationseinheit 615Originalsprache 535OTF-Ausgabe 633OTF-Format 377, 536, 541, 546, 553,

560, 576Output-Format 568Output-Management-System 416, 417,

420, 557, 567, 576

P

Paging 523Paket 65Paket FKKCORR_EXAMPLES 448Papierfach/-einzug 115Parallelisierung 422, 426, 443Parameter

EFG_PRINTPARAMS 437MAIL_APPL_OBJ 524MAIL_RECIPIENT 524MAIL_SENDER 524

PCH 613PDF 379, 566PDF-basiertes Druckformular 618PDF-Format 375, 546Performance 569Personalabteilung 589Personalentwicklung 501Plugin 357Positionstexte 473Post Processing Framework 421, 492,

494Architektur 493Customizing 494, 500

Postlogistik 567Pretty Printer 312Print Controls 116, 265, 266, 548, 549

CI010 547COL2V 547druckerspezifische 550S 470SF 470TRY02 547

678

Index

Probedruck 436Programm 492

GET_DATA 340PROCESSING 337RFKKCO00 427RFKKCORR_DISPLAY_HISTORY 427Rohdatenschnittstelle 393RSCPSETEDITOR 456SAPLPD 546, 556

Programm bearbeiten 282Programmausführung 299Programmcode 292

im Formular 275Pflege 279

Programm-Knoten 214, 277, 302, 474, 623Datenbeschaffung 225Editorfunktionen 310Ein-/Ausgabeparameter 315Prüfen 311, 315

Programmroutine 293proportionale Schrift 553Protokollierung 381, 500Protokollnummer 489Prozessdokumentation 500, 613Prozessierung 86, 571Prozessierungslogik 570Prozesssteuerung 613Prüftabelle 217, 305

Q

Qualitätsmanagement 491, 492Qualitätsstandard 576Quellformular 621Quelltexterweiterung 357

R

Rahmen 112Rahmenprogramm 29, 327, 477, 483,

489, 513Ablauf 329Aktivieren 57Anlegen 37, 56Ausführen 43, 58Ausgabe über Schleife 347Datenbeschaffung 225, 277, 338, 346

Datenbeschaffung Lieferschein 353Formularname 338Funktionsbaustein aufrufen 342im Formular verwendete Parameter

316, 350Kopieren 57mehrere Formulare 353Name des Funktionsbausteins 341, 345Prüfen 57Spoolsteuerung 371Standardparameter und Nachrichten-

steuerung 370Übungsbeispiel 345, 353, 371

Rasterbild 454Rechnungsformular 30Recipient-Objekt 524Record Modeler 609Records Management 605Referenzen 548Referenzfeld 214Registerkarte

Formroutinen 278Initialisierung 277Typen 278

Reklamationsbericht 490, 491Reporting 43Repository Browser 359Repository-Objekt 357Ressourcenname 115Rohdatenformat 417RSTXICON 468RSTXSYMB 468

S

Sachbearbeiter 614SAP ArchiveLink 587, 590, 598, 603,

609, 610, 611, 613, 614Ablage ausgehender Dokumente 597,

602Ablage eingehender Dokumente 597Business-Szenarien 597Customizing 597Document Finder 597Dokumentrecherche 597Drucklistenablage 597Grundprinzip 596OLE 595Schnittstelle 428, 437

679

Index

Szenarien 602Verknüpfung 597, 610Zertifizierung 595

SAP ArchiveLink for Archiving Systems 6.20 595

SAP Business Workflow 523, 587, 589, 612

SAP Content Server 594SAP CRM 421SAP CRM 7.0 422SAP Document Builder 422SAP Dokumentenverwaltung 596SAP Easy Access 40SAP ERP Financials 431SAP ERP HCM 614SAP Interactive Forms 603, 613, 617SAP Learning Solution 431, 611SAP List Viewer (ALV) 541SAP NetWeaver 7.3 448SAP NetWeaver Application Server Java

617SAP NetWeaver Folders Management

605, 611SAP Solution Manager 595SAP-Architektur 590SAP-Ikonen 464, 467SAP-Personalplanung 615SAP-Prozess 576SAPscript 41, 64, 437, 549, 603SAPScript-Druckertest 468SAPscript-Editor (Ganzseiteneditor) 462SAPscript-Text 451, 619SAP-Spoolsystem 337, 378SAP-Symbole 464, 465, 467SAP-Transportauftrag 454SAP-Transportlandschaft 613SAP-Zeichensatz 464Schablone-Knoten 95, 122

Anlegen 124Breite 127, 129Kombinieren 133Layout 122Muster 129Prüfen 127, 131Übungsbeispiel 125Unterknoten 132

Schachtsteuerung 634Schattierung 112Scheduling-Logik 493Schemata 484

Schleife 226ABAP-Programmcode 240Ausgabe über Schleife 235einzelnen Datensatz lesen 239Gruppenstufe 234interne Tabelle mit Kopfzeile 231Registerkarte »Daten« 229, 239Sortieren und Gruppieren 233Sortierung 226Übungsbeispiel 241von Daten trennen 230WHERE-Bedingung 226, 232, 239Zeilennummer 232Zwischenwert 226

Schleife-Knoten 224, 227Schlüsselwort

BREAK-POINT 300Schnelleinstieg 29Schnittstelle 618, 622Schnittstellenparameter 379Schrift 74, 80Schriftgröße 458Schulungsbeispiel 36Seite-Knoten 113

Anlegen 114Attribute 115Entwurfsseite 32Hintergrundbild 163

Seiten und Fenster 40, 86Seitenformat 109, 115Seitennummer 212Seitenränder 547Seitenumbruch 118

automatische Berechnung 266dynamischer 222manueller 114, 222

Seitenzahl 179Seitenzähler 261Selektionsbild 330Sendevorgang 523Service Provider 606serviceorientierte Integrationsplattform

605Smart Forms 24, 569, 590, 609, 611,

612Ausgabeformate 426Eröffnungsbild 38, 65SF_EXAMPLE_01 45SF_XSF_DEMO 565Werkzeuge 63Z_SF_EXAMPLE_01 46

680

Index

Smart Style 29, 51, 619, 633Sonderzeichen 463, 465

Eingeben 464im Text 464

SP POID 608Speicherungsform 543Spool 560Spooladministration 568Spoolattribut 268Spoolauftrag 269, 372, 536, 539, 540,

541, 543, 558, 559, 603Administration 545Status 541

Spooldialogbild 372, 530, 538, 539Spooleintrag 542, 545Spooler 487Spoolsteuerung 536, 537, 540, 541, 544,

546Spoolsystem 488, 535, 536, 538, 567Spoolverarbeitung 559Spoolverwaltung 269, 464, 469, 537,

539, 542, 544Gerätetypen 267Print Controls 267Spoolauftrag 268

Sprache 171Sprache bei Formularausgabe 172SRM POID 608Standardabsatz 71Standard-Anwendungskomponente 455Standard-Fehlermeldungen 381Standard-Service-Provider 607Statusinformation 335Steuerung 484Steuerungsparameter 521Stil 29, 39, 51, 66, 105, 110

Absatzformat 138, 147Aktivieren 69in Formular einbinden 69Kopfdaten 67, 71Namen ändern 70Pflegen 69Standardabsatz 71Zeichenformat 138

Stilbaum 67Strichcode 81Striche 131Struktur 196

ITCPO 437XSFCMODE 561, 563

XSFFORMAT 561, 563XSFOUTDEV 561XSFOUTMODE 561

Strukturierte Variable 298Style Builder 66Systembarcode 555Systemfeld 212, 380Systemfont 552

T

Tabelle 123, 506DFFKCOHI 446DFKKCOD 429DFKKCODCLUST 429DFKKCOH 428, 443, 446DFKKCOHI 429STXB 475STXH 475STXL 475TBE31 438TFK070D 443TNAPR 335

Tabelle-Knoten 95, 227Ausgabetabelle 242Layout 122Muster 129ohne Datenzugriff 134Registerkarte »Tabelle« 242

Tabelleninhalt anzeigen 305Tabellentyp 196Table Painter 95, 128

Aufruf 95Mausfunktionen 96Raster 97Verlassen 98Vordruck und Hintergrundbild 97

Tabulatoren 76, 95Tabulatorzeichen 463Tagesendverarbeitung 426Tastatureingabe 464TemSe 543Testdruck 405Textabschnitte 458Textbaustein 39, 151, 619

dynamischer Textname 153in Formular einbinden 151Neuanlage und Pflege 154Text übernehmen 153

681

Index

Übungsbeispiel 152, 156verwendeter Stil 153

Textbearbeitungsfunktionen 458Texteditor 51Textelement 292, 518, 519, 534Textfluss 73Text-ID 471Textinhalt 471Text-Knoten 137, 455

Bezug zu Ausgabebereich 139Include-Text 145Rahmen und Schattierung 141Sprache 172Textbaustein 151Textelement 142Textfluss 140Textformatierung 138Texttypen 141Übungsbeispiel 144

Textobjekt 470Textverwaltung 470TIF 452Trace 391Training 611Trainingstyp 611, 612Transaktion 63

BF11 438BF31 438EFRM 401FIBF 432FPCOPARA 425, 427, 431, 436, 437,

438, 443, 446, 575NACE 479SCOT 415SE11 303SE37 288SE38 283, 310SE80 281, 283, 359SFP 618SMARTFORMS 317, 323, 504SP01 567SPAD 567SRMREGEDIT 605SWO1 418, 434

Transport 454Transportauftrag 65, 485, 531Transport-Organizer 531TrueType-Font 554TYPE 192

U

ÜbergabeparameterCONTROL_PARAMETERS 338, 365OUTPUT_OPTIONS 338, 365

Übersetzung 532Übersetzung in Funktionsbaustein 316Übersetzungswerkzeug 534Übungsbeispiel

Fenster-Knoten 120Flugverbindungen 353Gliederungen 77Ordner-Knoten 171Rechnung an mehrere Kunden 345Rückgabe im OTF-Format 378Schablone-Knoten 125Schleife 241Standardparameter der Formularschnitt-

stelle 371Stilinhalte 83Textbaustein 152, 156Text-Knoten 144

URL 607URL einfügen 143User-Exit-Programmierung 400, 406User-Top-Include 407

V

Variable 189LS_DLV_DELNOTE 340

Verarbeitungsarten 497, 498Verarbeitungsklasse 498Verarbeitungsroutinen 481Verbuchung 436Verknüpfung 598, 611Verknüpfungstabelle 603Versandsteuerung 418Versandzeitpunkt 483Vertragskontokorrent 424, 431, 447Verweis 400Verwendungsnachweis 285Volltextsuche 291Vordruck 122, 464Vorgang 543, 607Vorschlagswerte 483

682

Index

W

Währungsbetrag 181, 214Warnmeldung 101Werkzeuge 35Wiederverwendbarkeit 501Word 455Work Area 408Workflow

Ablaufsteuerung 581Aktivität 580Bearbeiterfindung 582Bearbeiterzuordnung 579Bedingung 580Benutzerentscheidung 580Business-Objekt 579Container 581Containerelemente 582Containeroperation 581Datenfluss 581Definition 579, 580Ereignis 578Ereignis senden 581Ereignismanager 578Funktionsbaustein 584Laufzeit 578Laufzeittabellen 578Mehrfachbedingung 581Organisationsstruktur 584paralleler Abschnitt 581Smart Forms 586UNTIL-Schleife 581Warten auf Ereignis 580WHILE-Schleife 581Workflow Builder 580Workitem 579

X

X.400 523XDF-Format 632

XFP-Format 632XHTML 619, 632XML 556, 572XML Data for Forms 560, 566, 571, 572

XDF/XDF2-Datenformat einstellen 561XDF2 557, 573, 574

XML for Smart Forms 557, 566, 569XML-basierte Ausgabe 558, 560XML-basierte Formate 556, 557XML-basierte Standards 566XML-Daten 564XML-Dokument 559XML-Repräsentation, kanonische 573XSF 35, 557, 561, 563, 566, 632XSF + HTML 560XSF- und HTML-Ausgabe 560XSF-Ausgabe 556

Download 562statisch aktivieren 559

XSF-Format 569

Z

Zahlencode 465Zeichen, darstellbare 465Zeichenformat 67, 80, 83, 460, 463Zeilenabstand 75Zeilendrucker, einfacher 546zeilenorientierter ABAP Editor 314Zeilentyp 95, 124, 127, 243zentrale Adressverwaltung 420zentrale Datenbeschaffung 279zentrale Klasse 279Zertifizierungsbaustein

BC-AL 6.20 595Zielformular 621Zielsprache 535Zugriffsfolge 478zusammengesetzter Textname 473Zusatzdatenbeschaffung 356, 362Zwischenablage (erweitert) 90