61
Bonn Boston Werner Hertleif, Christoph Wachter, Rinaldo Heck, Thomas Karas, Tobias Trapp, Efstratios Tsantilis SAP ® Smart Forms Das umfassende Handbuch

SAP Smart Forms€¦ · SAP Smart Forms Author: Werner Hertleif, Christoph Wachter, Rinaldo Heck, Thomas Karas, Tobias Trapp, Efstratios Tsantilis Subject: SAP Smart Forms Keywords:

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

  • Bonn � Boston

    Werner Hertleif, Christoph Wachter, Rinaldo Heck,Thomas Karas, Tobias Trapp, Efstratios Tsantilis

    SAP® Smart FormsDas umfassende Handbuch

    1793-4.book Seite 3 Dienstag, 6. Dezember 2011 10:25 10

  • Auf einen Blick

    TEIL I Basiswissen

    1 Schnelleinstieg ................................................................... 29

    2 Werkzeuge ......................................................................... 63

    3 Layout des Formulars ......................................................... 107

    4 Elementare Knotentypen .................................................... 137

    5 Daten im Formular ............................................................. 173

    6 Ablauflogik des Formulars .................................................. 221

    TEIL II Fortgeschrittene Anwendung

    7 ABAP-Programme im Formular ........................................... 275

    8 Rahmenprogramm, Datenbeschaffung und Formularausgabe ................................................................ 327

    9 Druck-Workbench und Korrespondenz-Tool ...................... 393

    TEIL III Bewährte Methoden

    10 Most Wanted ..................................................................... 451

    11 SAP Smart Forms in dokumentorientierten Prozessen ......... 577

    12 Migration zu SAP Interactive Forms by Adobe .................... 617

    Anhang

    A Weitere Informationen ....................................................... 637

    B Das SAP-Flugdatenmodell .................................................. 638

    C Beispielformulare zur Flugrechnung .................................... 642

    D SAP Smart Forms und E-Mail-Versand ................................ 646

    E Transaktionslandkarte ........................................................ 660

    F Musterformulare Automotive ............................................. 664

    G Die Autoren ....................................................................... 667

    1793-4.book Seite 5 Dienstag, 6. Dezember 2011 10:25 10

  • 7

    Inhalt

    Einleitung ................................................................................................. 17

    TEIL I BasiswissenAnwender, die sich erstmals mit Formularen und deren Erstellung über Smart Forms befassen, erhalten in diesem Kapitel einen kompakten Einstieg in das Thema. Zu Beginn vermitteln wir etwas Theorie in Sachen Formularlayout, und dann geben wir kleine nachvollziehbare Übungsbeispiele: Wir hoffen, Sie werden gleich vertraut mit dem Tool. 29

    1 Schnelleinstieg .................................................................... 29

    1.1 Generelles zur Formularentwicklung ...................................... 291.1.1 Layout des Formulars ............................................... 301.1.2 Ablauflogik des Formulars ........................................ 321.1.3 Daten im Formular ................................................... 331.1.4 Ausgabe ................................................................... 351.1.5 Werkzeuge ............................................................... 351.1.6 Weitere Schritte ....................................................... 36

    1.2 Übungsbeispiel ...................................................................... 361.2.1 Voraussetzungen ...................................................... 361.2.2 Ausgabe des Musterformulars .................................. 381.2.3 Eigenes Formular als Arbeitskopie erstellen .............. 451.2.4 Änderungen am eigenen Formular ........................... 471.2.5 Eigenes Rahmenprogramm erstellen ......................... 56

    1.3 Knotentypen in der Übersicht ................................................ 59

    Um Formulare unter Verwendung der Smart-Forms-Technologie zu entwickeln, müssen Sie die entsprechenden Werkzeuge kennen. Auch wenn die meisten davon auf den ersten Blick intuitiv bedienbar sind, gibt es doch verschiedene Tipps und Tricks, die Ihnen das Leben erleichtern. Werfen Sie einen Blick in die Werkzeugkiste. 63

    2 Werkzeuge .......................................................................... 63

    2.1 Übersicht ............................................................................... 632.2 Style Builder .......................................................................... 66

    2.2.1 Übersicht ................................................................. 662.2.2 Funktionen ............................................................. 672.2.3 Eigenen Stil durch Kopie erstellen ............................ 682.2.4 Kopfdaten des Stils .................................................. 712.2.5 Absatzformate pflegen ............................................. 722.2.6 Übungsbeispiel: Gliederung ..................................... 772.2.7 Zeichenformate ........................................................ 802.2.8 Übungsbeispiel: Inhalt des Stils ................................ 83

    2.3 Form Builder ......................................................................... 842.3.1 Bearbeitungsfunktionen ........................................... 842.3.2 Form Painter ............................................................ 922.3.3 Table Painter ............................................................ 95

    2.4 Formularinfo und Suche ........................................................ 98

    1793-4.book Seite 7 Dienstag, 6. Dezember 2011 10:25 10

  • Inhalt

    8

    2.5 Formulare prüfen, testen, aktivieren ...................................... 992.5.1 Formular aktivieren .................................................. 1002.5.2 Formular testen ........................................................ 1032.5.3 Formular generieren ................................................. 103

    2.6 Formulardokumentation ........................................................ 104

    Nachdem Sie im vorherigen Kapitel die Werkzeuge der Formularbearbeitung kennengelernt haben, zeigen wir in diesem Kapitel, wie das Layout eines Formulars festgelegt wird. Dazu werden die einzelnen Seiten eines Formulars über die Ausgabebereiche beschrieben. 107

    3 Layout des Formulars .......................................................... 107

    3.1 Grundlagen ........................................................................... 1073.2 Generelle Layoutvorgaben ..................................................... 109

    3.2.1 Globale Einstellungen .............................................. 1093.2.2 Rahmen und Schattierungen .................................... 112

    3.3 Seite-Knoten ......................................................................... 1133.3.1 Entwurfsseite neu anlegen ....................................... 1143.3.2 Attribute zum Seite-Knoten ..................................... 115

    3.4 Fenster-Knoten ...................................................................... 1163.4.1 Eigenschaften der Haupt-/Nebenfenster ................... 1173.4.2 Fenster neu anlegen ................................................. 1193.4.3 Übungsbeispiel: Fenster erzeugen ............................ 1203.4.4 Kopienfenster .......................................................... 1213.4.5 Abschlussfenster ...................................................... 121

    3.5 Schablonen und Ausgabetabellen .......................................... 1223.5.1 Unterschiede von Schablonen und Tabellen ............. 1223.5.2 Gemeinsamkeiten von Schablonen und Tabellen ...... 1243.5.3 Anwendungsbereich von Ausgabetabellen ............... 1243.5.4 Schablone anlegen ................................................... 1243.5.5 Übungsbeispiel: Schablone-Knoten einrichten .......... 1253.5.6 Ausgabeoptionen zur Schablone .............................. 1333.5.7 Mehrere Schablonen kombinieren ............................ 1333.5.8 Ausgabetabelle ohne direkten Datenzugriff .............. 134

    Bisher haben Sie die Werkzeuge der Formularbearbeitung kennengelernt und z.B.gesehen, wie man über Ausgabebereiche das Layout definiert. Wir können also jetzt zu den Funktionen übergehen, die für die eigentliche Ausgabe der Inhalte verantwortlich sind. 137

    4 Elementare Knotentypen .................................................... 137

    4.1 Text-Knoten .......................................................................... 1374.1.1 Allgemeine Eigenschaften ........................................ 1374.1.2 Textelement ............................................................. 1424.1.3 Übungsbeispiel: Text-Knoten anlegen ...................... 1444.1.4 Include-Text (SAPscript-Text) ................................... 1454.1.5 Dynamischer Text .................................................... 1504.1.6 Textbausteine einbinden .......................................... 1514.1.7 Übungsbeispiel: Textbaustein einbinden .................. 1524.1.8 Textbausteine anlegen und pflegen .......................... 154

    1793-4.book Seite 8 Dienstag, 6. Dezember 2011 10:25 10

  • Inhalt

    9

    4.1.9 Übungsbeispiel: Textbaustein anlegen ...................... 1564.1.10 Web-Eigenschaften .................................................. 156

    4.2 Adresse-Knoten ..................................................................... 1574.2.1 Adresse-Knoten anlegen .......................................... 1584.2.2 Adresstyp ................................................................. 1594.2.3 Adressnummer und Personennummer ...................... 1594.2.4 Gestaltung der Adressen .......................................... 1604.2.5 Adressaufbereitung (Customizing) ............................ 162

    4.3 Grafiken und Hintergrundbild ................................................ 1624.3.1 Grafiken in das Formular einbinden .......................... 1634.3.2 Grafiken in Fenster, Schablone oder

    Ausgabetabelle ........................................................ 1654.3.3 Hintergrundbild zur Seite ......................................... 1664.3.4 Optimierung der Druckausgabe ............................... 167

    4.4 Ordner-Knoten ...................................................................... 1674.4.1 Registerkarte »Ausgabeoptionen« ............................ 1694.4.2 Registerkarte »Zeitpunkte« ....................................... 1694.4.3 Registerkarte »Bedingungen« ................................... 1704.4.4 Übungsbeispiel: Ordner anlegen .............................. 171

    4.5 Sprache im Formular .............................................................. 1714.5.1 Sprache bei Formularausgabe ................................... 1724.5.2 Datumsausgabe ....................................................... 172

    Nahezu jedes Formular hat die Aufgabe, variable Daten auszugeben, die noch nicht bei der Erstellung des Formulars bekannt sind, sondern erst bei seiner Ausgabe (d.h. zur Laufzeit). Diese Daten werden über ein Rahmenprogramm zur Verfügung gestellt. Für das Design des Formulars ist es unabdingbar, die Struktur der übergebenen Daten zu verstehen. 173

    5 Daten im Formular .............................................................. 173

    5.1 Übersicht ............................................................................... 1735.2 Felder als Platzhalter ............................................................. 175

    5.2.1 Feldliste ................................................................... 1755.2.2 Felder im Text-Knoten ............................................. 1765.2.3 Felder als Knotenattribute ........................................ 1795.2.4 Format für Datum, Uhrzeit und numerische Felder ... 1805.2.5 Felder mit Aufbereitungsoptionen ............................ 181

    5.3 Datenstrukturen und Datendefinitionen ................................ 1855.3.1 Übersicht über die Datenstrukturen ......................... 1865.3.2 Datendefinition ........................................................ 1925.3.3 ABAP-Datentypen verwenden .................................. 1945.3.4 Bezug auf ABAP Dictionary ...................................... 1945.3.5 Individuelle Datentypen im Formular ....................... 1995.3.6 Syntax der Felder ..................................................... 201

    5.4 Quelle der Daten ................................................................... 2015.4.1 Formularschnittstelle ................................................ 202

    1793-4.book Seite 9 Dienstag, 6. Dezember 2011 10:25 10

  • Inhalt

    10

    5.4.2 Globale Definitionen ................................................ 2105.4.3 Systemfelder ............................................................ 212

    5.5 Ausgabe von Feldern mit Währungs- oder Mengenbezug ...... 214

    Wir haben uns bisher nur am Rande damit befasst, in welcher Reihenfolge die Knoten bei der Ausgabe abgearbeitet (prozessiert) werden, wie Ausgaben über mehrere Seiten erfolgen und wie man diese Abläufe steuern kann. Diese Funktionen sind Teil der Ablauflogik des Formulars und werden hier erläutert. 221

    6 Ablauflogik des Formulars .................................................. 221

    6.1 Übersicht ............................................................................... 2216.2 Dynamische Datenausgabe .................................................... 225

    6.2.1 Übersicht ................................................................. 2256.2.2 Knotentypen zur Ausgabe von internen Tabellen ..... 2276.2.3 Schleife durchlaufen ................................................. 2296.2.4 Schleife mit Berechnungen ....................................... 2366.2.5 Einzelnen Datensatz über Schleife lesen ................... 2396.2.6 Übungsbeispiel: Schleife ........................................... 2416.2.7 Ausgabetabelle ........................................................ 2426.2.8 Übungsbeispiel: Sortierstufe mit Anzeige der

    Flugverbindungen .................................................... 2476.2.9 Übungsbeispiel: INFO-Fenster auf

    Tabelle umstellen ..................................................... 2486.2.10 Übungsbeispiel: Gewicht im Abschlussfenster .......... 253

    6.3 Logische Abfragen ................................................................. 2546.3.1 Bedingungen ............................................................ 2556.3.2 Verzweigungen über Alternative-Knoten .................. 258

    6.4 Abfolge und Nummerierung der Ausgabeseiten ..................... 2596.4.1 Reihenfolge der Seiten ............................................. 2596.4.2 Seitenzähler ............................................................. 2616.4.3 Sonderfall: Kopienfenster ......................................... 263

    6.5 Kommando-Knoten ............................................................... 2646.5.1 Schritte in der Ausgabesteuerung ............................. 2656.5.2 Print Controls ........................................................... 2666.5.3 Attribute zum Spoolauftrag ...................................... 268

    6.6 Komplexer Abschnitt ............................................................. 2706.7 Zusammenfassung der Formularprozessierung ....................... 270

    TEIL II Fortgeschrittene AnwendungABAP-Programme im Formular sind eine Möglichkeit, gleichbleibende Datenermittlungen am Formular zu zentralisieren und somit die Komplexität des Rahmenprogramms zu reduzieren. 275

    7 ABAP-Programme im Formular ........................................... 275

    7.1 Wozu Programmcode im Formular? ....................................... 2757.1.1 Datenbeschaffung .................................................... 2767.1.2 Eingabe von Programmcode im Formular ................. 277

    1793-4.book Seite 10 Dienstag, 6. Dezember 2011 10:25 10

  • Inhalt

    11

    7.2 Entwicklungswerkzeuge ......................................................... 2807.2.1 Object Navigator ..................................................... 2807.2.2 ABAP Editor ............................................................. 2837.2.3 Function Builder ...................................................... 2877.2.4 ABAP Debugger ....................................................... 2937.2.5 ABAP Dictionary ...................................................... 303

    7.3 Bearbeitungsfunktionen im Programm-Knoten ...................... 3107.4 Besonderheiten im Programm-Knoten ................................... 3147.5 Übungsbeispiel: Geschäftskorrespondenz zum

    Geschäftspartner ................................................................... 3167.5.1 Formular erstellen .................................................... 3177.5.2 Geschäftspartner für den Test anlegen ...................... 3227.5.3 Formular testen ....................................................... 323

    8 Rahmenprogramm, Datenbeschaffung und Formularausgabe .......................................................... 327

    8.1 Rahmenprogramm ................................................................. 3278.2 Schlüsselfelder für Datenbeschaffung übergeben ................... 329

    8.2.1 Übungsbeispiel »Flugrechnung«: Selektionsbild zur Dateneingabe ..................................................... 330

    8.2.2 Schlüsselfelder über die Nachrichtensteuerung befüllen ................................................................... 333

    8.3 Datenbeschaffung .................................................................. 3388.3.1 Übungsbeispiel: Datenbanktabellen lesen

    (Flugrechnung) ......................................................... 3388.3.2 Übungsbeispiel: Lieferungsdaten beschaffen ............ 340

    8.4 Formularausgabe über den Aufruf des Funktionsbausteins ..... 3418.4.1 Name des Funktionsbausteins ermitteln ................... 3418.4.2 Funktionsbaustein für die Formularausgabe

    aufrufen ................................................................... 3428.5 Übungsbeispiel: Flugrechnung an mehrere Kunden

    ausgeben ............................................................................... 3458.5.1 Umsetzung ............................................................... 3458.5.2 Schritt 1: Erweiterte Kundennummernabfrage .......... 3468.5.3 Schritt 2: Erweiterte Datenselektion ......................... 3468.5.4 Schritt 3: Schleife anlegen ........................................ 3478.5.5 Schritt 4: Formular anpassen .................................... 3498.5.6 Schritt 5: Abschlusstest ............................................ 350

    8.6 Welche Daten verwendet das Formular? ................................ 3508.6.1 Übungsbeispiel: Reduzierte Datenbereitstellung

    für den Lieferschein ................................................. 353

    1793-4.book Seite 11 Dienstag, 6. Dezember 2011 10:25 10

  • Inhalt

    12

    8.7 BAdIs für die kundeneigene Datenbeschaffung nutzen ........... 3568.7.1 Architektur des Enhancement Frameworks ............... 3568.7.2 Was sind BAdIs? ...................................................... 3588.7.3 Verfügbarkeit von BAdIs .......................................... 3598.7.4 Übungsbeispiel: Mit BAdIs zusätzliche Daten

    für den Lieferschein bereitstellen ............................. 3598.7.5 Wie kommen die Daten ins Formular? ..................... 362

    8.8 Standardparameter der Formularschnittstelle ......................... 3648.8.1 Import-Standardparameter ....................................... 3658.8.2 Übungsbeispiel: Import-Standardparameter ............. 3718.8.3 Export-Standardparameter ....................................... 3758.8.4 Übungsbeispiel: Export-Standardparameter .............. 378

    8.9 Laufzeitfehler/Ausnahmen ..................................................... 3798.9.1 Fehlerbehandlung im Rahmenprogramm .................. 3828.9.2 Individuelle Fehlerbehandlung im Formular ............. 3868.9.3 Überwachung der Formularausführung per

    Trace-Funktion ......................................................... 391

    Die Druck-Workbench und das Korrespondenz-Tool bilden zusammen eine zentrale Entwicklungs- und Konfigurationsumgebung für die Erstellung und Steuerung standardisierter ausgehender Korrespondenzen. Sie lernen in diesem Kapitel, wie Druck-Workbench und Korrespondenz-Tool aufgebaut sind und was sie im Einzelnen leisten. 393

    9 Druck-Workbench und Korrespondenz-Tool ...................... 393

    9.1 Druck-Workbench ................................................................. 3949.2 Formularklassen – SAP-seitiges Bezugs-Customizing .............. 3969.3 Anwendungsformulare – Kundenseitiges Customizing

    und User-Exit-Programmierung .............................................. 4009.3.1 Globale Eigenschaften von

    Anwendungsformularen ........................................... 4009.3.2 Anwendungsformular anlegen (Transaktion EFRM) .... 4019.3.3 SAP Smart Forms-Formular bearbeiten und

    Anwendungsformular aktivieren ............................... 4039.3.4 Testdruck eines Anwendungsformulars ..................... 4059.3.5 User-Exit-Programmierung: Summierung

    von Beträgen ........................................................... 4069.3.6 Anwendungsformulare vom Typ »Collection« ........... 412

    9.4 Druckprozess und Ausgabesteuerung ..................................... 4159.4.1 Systemübergreifende Komponentenübersicht .......... 4169.4.2 Rohdatenformate ..................................................... 4179.4.3 Versandsteuerung .................................................... 418

    9.5 Korrespondenzmanagement .................................................. 4219.6 Korrespondenz-Tool – Anwendersicht ................................... 424

    9.6.1 Korrespondenzdruck-Transaktion FPCOPARA .......... 4259.6.2 Korrespondenzhistorie anzeigen ............................... 4279.6.3 Archivierung im Korrespondenzumfeld .................... 427

    1793-4.book Seite 12 Dienstag, 6. Dezember 2011 10:25 10

  • Inhalt

    13

    9.7 Korrespondenz-Tool – Architektur ......................................... 4289.7.1 Datenmodell des Korrespondenzcontainers ............. 4289.7.2 Customizing ............................................................. 4299.7.3 Zeitpunktverarbeitung ............................................. 431

    9.8 Druckprozess implementieren ............................................... 4339.8.1 Druckschnittstelle definieren .................................... 4349.8.2 Druckschnittstelle implementieren ........................... 4419.8.3 Druckschnittstelle aufrufen ...................................... 4459.8.4 Vorgehen unter SAP NetWeaver 7.3 ........................ 447

    TEIL III Bewährte MethodenIn diesem Kapitel stellen wir Ihnen die meistverwendeten Techniken und Vorgehensweisen im Umfeld von Smart Forms vor, ergänzt durch viele Tipps aus der Berufspraxis der Autoren. 451

    10 Most Wanted ...................................................................... 451

    10.1 Grafikverwaltung ................................................................... 45110.2 Textbearbeitung und -ablage ................................................. 455

    10.2.1 Überblick ................................................................. 45510.2.2 Microsoft Office Word als Editor ............................. 45610.2.3 Inline-Editor ............................................................ 45810.2.4 SAPscript-Editor (Ganzseiteneditor) ......................... 46210.2.5 Sonderzeichen im Text ............................................. 46410.2.6 Textverwaltung ........................................................ 470

    10.3 Nachrichtenfindung und -steuerung ...................................... 47610.3.1 Übersicht ................................................................. 47610.3.2 Nachrichtenfindung über Konditionstechnik ............ 47810.3.3 Übungsbeispiel: Nachrichtenfindung über

    Konditionstechnik .................................................... 47910.3.4 Formulare des Finanzwesens einbinden ................... 48910.3.5 QM-Formulare einbinden ........................................ 490

    10.4 Post Processing Framework ................................................... 49210.4.1 Architektur des Post Processing Frameworks ............ 49310.4.2 Customizing Buchdatenbank .................................... 49410.4.3 Demoanwendung Buchdatenbank ............................ 498

    10.5 Übungsbeispiel: Ein Formular mehrmals nutzen ..................... 50010.5.1 Schritt 1: DDIC-Objekte für die

    Formularschnittstelle anlegen .................................. 50110.5.2 Schritt 2: Formular anlegen ...................................... 50410.5.3 Schritt 3: Formular testen ......................................... 510

    10.6 Übungsbeispiel: Etikettendruck ............................................. 51110.6.1 Basisformular anlegen und einbinden ....................... 51310.6.2 Etikettendruck im Formular einrichten ..................... 514

    1793-4.book Seite 13 Dienstag, 6. Dezember 2011 10:25 10

  • Inhalt

    14

    10.6.3 Ergebnis der Formularausgabe ................................. 52010.6.4 Vorschlag für den Ausbau des Formulars .................. 521

    10.7 Übungsbeispiel: Versand per E-Mail/Telefax .......................... 52210.7.1 Übersicht zum Business Communication Interface .... 52210.7.2 E-Mail-Versand ........................................................ 52510.7.3 Faxversand ............................................................... 529

    10.8 Transport und Übersetzung ................................................... 53110.8.1 Transport ................................................................. 53110.8.2 Übersetzung von Texten ........................................... 53210.8.3 Sprache der Formularbearbeitung ............................ 534

    10.9 Druck- und Spoolsystem ........................................................ 53510.9.1 Übersicht ................................................................. 53510.9.2 Vorgaben im Spooldialogbild ................................... 53810.9.3 Spoolsteuerung (Ausgabesteuerung) ........................ 54010.9.4 Spoolverwaltung ...................................................... 54410.9.5 Gerätetypen (Print Controls) .................................... 54810.9.6 Fonts und Barcodes im SAP-System ......................... 551

    10.10 Ausgabe in XML/XSF-Format ................................................. 55610.10.1 Übersicht zu XML-basierten Formaten ..................... 55710.10.2 Übergabeformen der XML-basierten Ausgabe .......... 55810.10.3 XSF-Ausgabe statisch aktivieren ............................... 55910.10.4 XML-basierte Ausgabe dynamisch steuern ............... 56010.10.5 Übungsbeispiel: Download XSF-Ausgabe ................. 56210.10.6 Formatierte HTML-Ausgabe ..................................... 56410.10.7 Formular elektronisch versenden .............................. 565

    10.11 Anbindung externer Systeme mit XSF- und XDF-Formaten .... 56610.11.1 Überblick ................................................................. 56710.11.2 Datenstromformate .................................................. 56810.11.3 Weiterführende Aspekte .......................................... 574

    Die Anwendung zur Dokumentenerstellung von Smart Forms basiert auf einem Zeitpunkt im Geschäftsprozess. SAPoffice, SAP Business Workflow, SAP ArchiveLink und SAP NetWeaver Folders Management spielen vor und nach diesem Zeitpunkt eine wichtige Rolle. 577

    11 SAP Smart Forms in dokumentorientierten Prozessen ...... 577

    11.1 SAP Business Workflow ......................................................... 57711.1.1 Grundlegende Arbeitsweise von

    SAP Business Workflow ............................................ 57811.1.2 Definition von Workflows ........................................ 58011.1.3 Bearbeiterfindung .................................................... 58211.1.4 Programmatische Ansteuerung ................................. 58411.1.5 SAP Smart Forms in SAP Business Workflow

    nutzen ..................................................................... 58611.2 SAP ArchiveLink .................................................................... 590

    11.2.1 Was ist ein »Dokument« im SAP-System? ................ 590

    1793-4.book Seite 14 Dienstag, 6. Dezember 2011 10:25 10

  • Inhalt

    15

    11.2.2 Technische Abbildung des Dokuments im SAP-System ............................................................. 593

    11.2.3 Grundprinzip von SAP ArchiveLink ........................... 59611.2.4 Grund-Customizing von SAP ArchiveLink ................. 59711.2.5 Business-Szenarien im Umfeld von Smart Forms ....... 598

    11.3 SAP NetWeaver Folders Management ................................... 60511.3.1 Architektur .............................................................. 60511.3.2 Identifikation eines Objekts ..................................... 60811.3.3 Aktenmanagement ................................................... 60811.3.4 Im Einklang: SAP NetWeaver Folders

    Management und Smart Forms ................................ 60911.4 Übungsbeispiel: Trainingstyp in SAP ERP HCM erstellen ........ 611

    11.4.1 Fachliche Prozesse und Anforderungen .................... 61111.4.2 Herausforderung ...................................................... 61111.4.3 Realisierung ............................................................. 61211.4.4 Technik .................................................................... 61311.4.5 Fazit/Ausblick des Projekts ....................................... 615

    Dieses Kapitel zeigt die Unterschiede und Gemeinsamkeiten zwischen Smart Forms und SAP Interactive Forms by Adobe, dem neuen Formularstandard von SAP. Sie erfahren, wie Smart-Forms-Formulare migriert werden, und Sie erhalten Empfehlungen für die Entwicklung von Smart-Forms-Formularen, um die Kompatibilität mit SAP Interactive Forms by Adobezu gewährleisten. 617

    12 Migration zu SAP Interactive Forms by Adobe ................... 617

    12.1 Migrationspfad ...................................................................... 61812.2 Beispielmigration ................................................................... 619

    12.2.1 Migration durchführen ............................................. 62012.2.2 Migrationsergebnis .................................................. 62412.2.3 Formular nachbearbeiten ......................................... 62412.2.4 Ausgabe des migrierten Formulars ........................... 627

    12.3 Technologiekompatibilität ..................................................... 63212.3.1 Allgemeine Einschränkungen ................................... 63212.3.2 OTF-Ausgabeformat ................................................. 63312.3.3 Weitere Hinweise zur Kompatibilität ........................ 633

    635

    Anhang ...................................................................................... 635

    A Weitere Informationen ..................................................................... 637A.1 SAP-Hinweise zu SAP Smart Forms ........................................ 637A.2 SAP-Schulungen .................................................................... 637

    B Das SAP-Flugdatenmodell ................................................................ 638C Beispielformulare zur Flugrechnung .................................................. 642

    C.1 Ausgelieferte Musterformulare .............................................. 642C.2 Musterausdruck zur Flugrechnung (SF_EXAMPLE_01) ........... 643C.3 Musterausdruck zur Flugrechnung nach Anpassungen

    bis Kapitel 6 .......................................................................... 643

    1793-4.book Seite 15 Dienstag, 6. Dezember 2011 10:25 10

  • Inhalt

    16

    D SAP Smart Forms und E-Mail-Versand .............................................. 646D.1 Formular als PDF-Anhang in einer E-Mail .............................. 647D.2 Programmerstellung für E-Mail über BCI-Interface ................. 652D.3 Beispiel zum E-Mail-Versand über SAP Smart Forms .............. 654

    E Transaktionslandkarte ..................................................................... 660F Musterformulare Automotive ........................................................... 664

    F.1 Warenanhänger nach VDA 4902 (KLT-Label) ......................... 664F.2 Lieferschein nach DIN 4994/4992 ......................................... 664F.3 Frachtauftrag nach VDA 4992 ................................................ 666

    G Die Autoren ..................................................................................... 667

    Index....................................................................................................... 671

    1793-4.book Seite 16 Dienstag, 6. Dezember 2011 10:25 10

  • 17

    Einleitung

    Für jedes Unternehmen spielen Dokumente mit einheitlichem Design (For-mulare) eine zentrale Rolle:

    � als verbindendes Glied zwischen Geschäftspartnern (z.B. in der gesamtenAuftragsabwicklung von der Bestellung über die Rechnung bis hin zurMahnung)

    � im innerbetrieblichen Geschäftsablauf (z.B. im Rahmen der Lohn- undGehaltsabrechnung oder bei Qualitätsberichten)

    Formulare verbessern durch ihren immer gleichen und reproduzierbaren Auf-bau die Erkennbarkeit der enthaltenen Informationen. Damit sind sie einwichtiger Grundstock einer funktionierenden Kommunikation. So gleichartigdie Ausgabe eines Formulars über die Zeit auch ist (z.B. bei einer Rechnung),so unterschiedlich können aber die verschiedenen Arten von Formularensein, die für den Ablauf des Geschäftsbetriebs erforderlich sind. Die Ausgabeund damit die Verteilung der Formulare kann traditionell über Drucker erfol-gen oder über elektronische Medien wie Fax, E-Mail und das Internet.

    SAP-Tools zur Formulargestaltung

    Für eine betriebswirtschaftliche Organisationssoftware ist es ein wichtigesKriterium, wie sie den oben genannten Anforderungen an das Formularwe-sen gewachsen ist. Entsprechend viel hat sich auch bei SAP in den letztenJahren entwickelt:

    � Über lange Zeit (bis SAP-Basis-Release 4.6B) war SAPscript die allumfas-sende Lösung zur Formulargestaltung innerhalb des SAP-Systems, ent-sprechend viele Formulare sind auch noch bei den Anwendern im Einsatz.

    � Mit Release 4.6C präsentierte SAP einen würdigen Nachfolger mit derBezeichnung SAP Smart Forms. Mit seiner grafischen Oberfläche botSmart Forms auch weniger geübten Anwendern einen leichten Zugang.Dadurch verringerte sich zum einen der Aufwand für die Erstellung undPflege von Formularen. Zum anderen konnten auch erstmals Anwenderohne Programmierkenntnisse Formulare anpassen.

    1793-4.book Seite 17 Dienstag, 6. Dezember 2011 10:25 10

  • Einleitung

    18

    � Kurz nach der Einführung von Smart Forms entschloss sich SAP zu einerstrategischen Partnerschaft mit Adobe im Bereich der Formularverarbei-tung. Es entstand das Produkt SAP Interactive Forms by Adobe als Zusam-menspiel zwischen der SAP-Technologieplattform SAP NetWeaver unddem Adobe LiveCycle Designer. Inzwischen ist auch die KurzbezeichnungSAP Interactive Forms üblich (die wir auch im Weiteren verwenden).

    Die beiden letztgenannten Technologien sind sicher erste Wahl, wenn esheute darum geht, neue Formulare für SAP-Anwendungen zu erstellen.

    Von Seiten der SAP werden SAP Interactive Forms heute als die priorisierteLösung angesehen (mit Ausnahme von Anforderungen im Massenausdruck).Fragt sich also, warum Smart Forms sich trotzdem so großer Beliebtheiterfreut. Schon deshalb ist es reizvoll, die beiden Lösungen miteinander zuvergleichen; möglicherweise auch als kleine Hilfestellung, um für Ihr nächs-tes Projekt das passende Tool zu wählen.

    Abgrenzung zu interaktiven Anwendungen

    Wir kümmern uns in diesem Buch um das eher klassische Verständnis vonFormularen, also um Funktionen, die mittelbar oder unmittelbar mit einemgedruckten Ergebnis der Ausgabe zu tun haben.

    In Ergänzung dazu bieten insbesondere SAP Interactive Forms weitergehende Funktionen, die für interaktive Prozesse gedacht sind. Hierbei kannder Anwender innerhalb einer Prozesskette die Inhalte eines Formulars imDialog bearbeiten. Im Falle einer solchen interaktiven Bearbeitung im Dialogwird das Formular mit zusätzlichen, eingabefähigen Elementen versehenund dann z.B. über eine Webanwendung zur Verfügung gestellt. DerAnwender ergänzt den Inhalt und sendet die Informationen automatisch andas SAP-System zurück. Es sind folgende Beispiele für mögliche Anwen-dungsfälle zu nennen: Lieferbestätigung durch Kunden, formalisierte Rück-meldungen im Rahmen der Qualitätssicherung oder auch die Datenerfassungüber mobile Endgeräte.

    SAP sieht für SAP Interactive Forms eine große Zukunft bei solchen interak-tiven Prozessen. Es gibt auch Assistenten, um z.B. passende Web-Dynpro-Schnittstellen zu erstellen.

    Auch Smart Forms enthält Techniken zur (interaktiven) Web-Einbindung. Dasie in den vergangenen Jahren aber keine überzeugende Verbreitung gefun-den haben, sind sie auch nicht Inhalt des Buches. Aber natürlich stehen auchunter Smart Forms die gängigen elektronischen Ausgabeformate zur Verfü-

    1793-4.book Seite 18 Dienstag, 6. Dezember 2011 10:25 10

  • Einleitung

    19

    gung (wie XML, PDF), gegebenenfalls auch über passende Konvertierungs-routinen.

    SAP Smart Forms versus SAP Interactive Forms by Adobe

    Beginnen wir mit wichtigen Gemeinsamkeiten:

    � In beiden Lösungen erfolgt das Formulardesign mit einer grafischen Ober-fläche, die den heute üblichen Standards entspricht. Natürlich gibt esUnterschiede in der Leistungsfähigkeit und im Bedienungskomfort.

    � Beide Systeme trennen zwischen Datenbeschaffung und Formulardesign.Auch die Schnittstelle zur Übergabe von Daten aus der Anwendung an dasFormular ist sehr ähnlich aufgebaut (was gegebenenfalls auch eine Migra-tion erleichtert).

    � Diese Ähnlichkeit geht so weit, dass ein Datenbeschaffungsteil zu SmartForms auch für SAP Interactive Forms verwendet werden kann. Oderauch umgekehrt: Über minimale Anpassungen können Smart-Forms-Ent-wickler auch auf die Programme zurückgreifen, die SAP für die Datenbe-schaffung von SAP Interactive Forms ausgeliefert hat.

    � Letztendlich ist für die SAP-Anwendung, in der das Formular eingebun-den wird, kaum erkennbar, welches Tool gerade die Ausgabe übernimmt.Die Anwendung entscheidet über das Ausgabemedium (Druck, E-Mail,Fax etc.) und übergibt die erforderlichen Daten. Technisch betrachtet istin beiden Fällen ein ABAP-Funktionsbaustein das Bindeglied.

    Kommen wir zu den Unterschieden zwischen beiden Systemen. Diese erge-ben sich in erster Linie aus der Tatsache, dass bei SAP Interactive Forms einseparates PC-Programm für das Formulardesign eingesetzt wird, währendSmart Forms auf eine Integration mit SAP NetWeaver setzt.

    Beginnen wir mit Eigenschaften, die SAP Interactive Forms auszeichnen:

    � Als Design-Tool kommt der Adobe LiveCycle Designer zum Einsatz. Das isteine leistungsfähige Windows-Anwendung, die auf dem lokalen PC desFormularentwicklers läuft. Das Tool bietet umfangreiche grafische Gestal-tungsmöglichkeiten wie z.B. Kästen mit abgerundeten Ecken, Farbver-läufe, erweiterte Schriftgestaltung oder auch Funktionen, um Text inbeliebigem Winkel zu drehen.

    � SAP Interactive Forms bieten eine Reihe von Zusatzfunktionen aus derprofessionellen Formularentwicklung, wie z.B. digitale Signierung undVersionshistorie.

    1793-4.book Seite 19 Dienstag, 6. Dezember 2011 10:25 10

  • Einleitung

    20

    � Mit FormCalc und JavaScript stehen gleich zwei formularinterne Program-miersprachen zur Verfügung. Hiervon werden sich also auch Entwicklerangesprochen fühlen, die nicht direkt aus dem ABAP-Umfeld kommen.

    � Daten werden immer über die definierte Schnittstelle ausgetauscht, sie istdie einzige Verbindung zwischen Design-Tool und dem SAP NetWeaver-Backend. Ein saubereres Design der Schnittstellen ist also Grundlage derFormularentwicklung.

    � Die starke Unterstützung durch SAP zeigt sich nicht zuletzt in der Vielzahlder vorbereiteten Formulare, die mit den SAP-Anwendungen ausgeliefertwerden. Das erleichtert natürlich die Anpassung an firmenspezifischeBelange: Wenn die vom Endanwender gewünschte Funktionalität schonin den Vorlagen zu finden ist, ist das eine nicht zu unterschätzendeArbeitserleichterung.

    Auf Seiten von Smart Forms zählt vor allem die Tatsache, dass die Lösungkomplett in SAP NetWeaver integriert ist:

    � Es sind keine Zusatzinstallationen auf dem lokalen PC erforderlich. AlleFormularentwicklungen sind direkt an das SAP-Entwicklungs- und Trans-portsystem angeschlossen.

    � Die grafische Oberfläche der Design-Tools entspricht dem gängigen Look& Feel von SAP. Die angebotenen Gestaltungsmöglichkeiten sind auf dieAnforderungen üblicher Geschäftskorrespondenz ausgerichtet.

    � Alle Prozessschritte zur Ausgabe eines Formulars laufen vollständig überden ABAP-Teil von SAP NetWeaver, ohne besondere Konfiguration (ins-besondere ein Java-Stack ist nicht erforderlich). Daraus folgt eine hohePerformance und Eignung für Massenverarbeitung.

    � ABAP steht auch innerhalb des Formulars als Programmiersprache zurVerfügung, hier dürften sich also bisherige ABAP-Entwickler schnellzuhause fühlen. Alle SAP-Backend-Funktionalitäten können direkt ausdem Formular angesprochen werden, z.B. zur Definition interner Varia-blen oder auch zum Lesen zusätzlicher Daten, die in der Schnittstelle mög-licherweise nicht zur Verfügung stehen. Ein Mausdoppelklick führt wieüblich auf die jeweils nächste Detailebene.

    Beide Lösungen zur Formularentwicklung haben ihren Charme. Freuen wiruns, dass SAP die Wahlmöglichkeit zwischen zwei so leistungsstarken Tech-nologien bietet. Und wir hoffen, die kleine Übersicht hat Sie darin bestärkt,Smart Forms noch näher kennenzulernen.

    1793-4.book Seite 20 Dienstag, 6. Dezember 2011 10:25 10

  • Einleitung

    21

    Inhalt der dritten Auflage

    Den neueren und von SAP priorisierten SAP Interactive Forms zum Trotz:Smart Forms ist eine anwenderfreundliche und beliebte Lösung zur Erstel-lung von Formularen. Das zeigt nicht zuletzt das breite und langjährige Inte-resse an diesem Fachbuch. Die erste Auflage erschien im Frühjahr 2002, diezweite im Herbst 2003.

    Durch diesen großen zeitlichen Abstand zu den Vorauflagen wurde die vor-liegende, vollständig überarbeitete, dritte Auflage zu einer echten Herausfor-derung:

    � Auch wenn es seitens SAP keine überragenden Neuerungen bei SmartForms gibt, wurden im Laufe der Jahre doch viele Funktionen der Toolsüberarbeitet und verbessert. Deshalb haben wir alle Kapitel komplettüberarbeitet, die aus früheren Ausgaben übernommen wurden. Die abge-bildeten Screenshots sind auf SAP-Systemen mit NetWeaver 7.0 und SAPGUI 7.2 entstanden.

    � Wir haben weitere Co-Autoren hinzugezogen, die auf Basis ihres Praxis-wissens zu Smart Forms völlig neue Themen abdecken. Denn was ist einFormular ohne ein funktionierendes Umfeld? Neu hinzugekommen sindz.B. Abschnitte zur SAP-Druck-Workbench, zur Anwendung von SmartForms in dokumentenorientierten Prozessen, aber auch der Abschnitt zurMigration zu SAP Interactive Forms.

    � In dieser Auflage sind dagegen die Themen entfallen, die heute nicht mehrso relevant sind wie vor einigen Jahren. Hier sind z.B. die Migration vonSAPscript-Formularen oder auch die Liste der Preconfigured Smart Formszu nennen. Auch auf das Kapitel zum Einsatz von Smart Forms in (interak-tiven) Webanwendungen haben wir verzichtet. Zum einen hat SmartForms da keine große Verbreitung gefunden; zum anderen sind SAP Inter-active Forms hier auch eindeutig besser aufgestellt. Leser, die trotzdemInteresse an den genannten Themen haben, möchten wir auf die SAP-Bibliothek verweisen oder auf unsere vorherigen Buchauflagen. Entspre-chende Teile der Vorauflage stehen als PDF-Download auf der Homepagedes Verlags zur Verfügung. Unter www.sap-press.de/bonus-seite können Sie

    Hinweis: Weitere Informationen

    Weitere Details zu den Unterschieden zwischen den beiden Technologien findenSie auch am Ende von Kapitel 12, »Migration zu SAP Interactive Forms by Adobe«,in dem wir ansonsten auf die Migration zwischen den beiden Tools eingehen.

    1793-4.book Seite 21 Dienstag, 6. Dezember 2011 10:25 10

  • Einleitung

    22

    auf dieses Material zugreifen. Sie benötigen dazu nur den Zugangscode,den Sie auf der blauen Umschlagseite vorn im Buch finden.

    Den überarbeiteten und gewachsenen Inhalt finden Sie eingeteilt in folgendedrei Themenschwerpunkte:

    � Teil I: Basiswissen

    � Teil II: Fortgeschrittene Anwendung

    � Teil III: Bewährte Methoden

    Natürlich wollen wir in allen Bereichen die notwendigen Kenntnisse vermit-teln, und das kann zum Teil nur schrittweise erfolgen. Nutzen Sie also dieeinzelnen Kapitel des Buches, um Ihre Kenntnisse kontinuierlich und anwen-dungsbezogen zu erweitern. Alle Kapitel enthalten nachvollziehbareÜbungsbeispiele, sodass Sie eigenständig das gebotene Wissen umsetzenkönnen.

    Zielgruppen des Buches

    Das Buch richtet sich an Entwickler, technische Berater, Projektleiter oderauch Administratoren, die bei zukünftigen Arbeiten Wissen zu Smart Formsbenötigen. Mit dem Buch erhalten Sie das technische Basiswissen zur Formu-larerstellung mit Smart Forms.

    Handhabung des Buches: Der richtige Einstieg

    Mit Smart Forms sind SAP-Anwender in der Lage, Formulare selbstständigzu erstellen bzw. anzupassen, dies bleibt also nicht mehr nur Aufgabe vonExperten. Insbesondere diesen Anwendern wollen wir in den einführendenKapiteln 1 bis 6 mit dem notwendigen Basiswissen zur Seite stehen:

    � Neueinsteigern wollen wir zu Beginn natürlich einen einfachen Einstieg inSmart Forms vermitteln: Beginnen Sie also mit dem Schnelleinstieg inKapitel 1. Nehmen Sie sich hierfür einen halben Tag Zeit.

    � Auch wenn die meisten Werkzeuge zu Smart Forms in hohem Maße intu-itiv zu bedienen sind, lohnt es sich doch, Kapitel 2 durchzuarbeiten (umz.B. auch den einen oder anderen Tipp mitzunehmen). Natürlich könnenSie dieses Kapitel zunächst auch überspringen und erst bei Bedarf daraufzurückkommen.

    � Wenn Sie schon etwas mit den Werkzeugen von Smart Forms experimen-tiert haben, werden Sie vermutlich gleich mit dem Design von Formula-

    1793-4.book Seite 22 Dienstag, 6. Dezember 2011 10:25 10

  • Einleitung

    23

    ren beginnen wollen. In Kapitel 3 finden Sie alle Grundlagen zum Formu-larlayout.

    � In Kapitel 4 zeigen wir dann, wie Sie die gewünschten Texte und Grafikenüber passende Knotentypen ausgeben.

    � Nahezu jedes Formular hat die Aufgabe, variable Daten auszugeben,deren Inhalt erst bei der Ausführung des Formulars bekannt ist. Den Wegdorthin finden Sie in Kapitel 5. Auch Anwender ohne Datenbankerfah-rungen/Programmierkenntnisse können anhand dieses Kapitels die not-wendigen Zusammenhänge erlernen.

    � Ein Formular besteht aus einzelnen Textelementen, Datenfeldern etc. InKapitel 6 sorgen wir für die richtige Ablauflogik, damit sowohl die Seitendes Formulars als auch die darin enthaltenen Daten in der richtigen Rei-henfolge ausgegeben werden (z.B. Rechnungspositionen vor der Rech-nungssumme).

    So leistungsfähig die Grundbausteine in Smart Forms auch sind, sind damitnoch längst nicht alle Möglichkeiten ausgeschöpft. An fortgeschritteneAnwender richten sich die Kapitel im Teil II:

    � Sie können direkt im Formular Programmcode einfügen, um z.B. Sum-men zu ermitteln oder auch zusätzliche Daten direkt aus der SAP-Daten-bank zu lesen. Das erfolgt mithilfe von ABAP-Code. Für Kapitel 7 solltenSie also bereit sein, sich mit dieser SAP-spezifischen Programmiersprachezu befassen, bzw. Grundkenntnisse der Programmierung mitbringen.Erfahrene ABAP-Entwickler finden dazu den einen oder anderen Hinweiszu Besonderheiten, die im Umfeld von Smart Forms gelten.

    � Für die Ausgabe eines Formulars ist ein Rahmenprogramm erforderlich,das im Wesentlichen zwei Aufgaben erfüllt: die Daten für das Formular zubeschaffen sowie die Formularausgabe anzustoßen und zu steuern. SolltenSie als Programmentwickler zur Erstellung eines solchen Rahmenpro-gramms hinzugezogen werden, bietet Ihnen Kapitel 8 alle notwendigenGrundlagen.

    � Fragt sich noch, wie sich Smart-Forms-Formulare in die sonstigen SAP-Anwendungen einbinden lassen. Der Weg über die Druck-Workbench istein Beispiel dafür. In Kapitel 9 sehen Sie, welche Einstellungen dort not-wendig sind, um Druckvorgänge zu steuern bzw. komplexe Ausgabedoku-mente zur erstellen (wie z.B. eine E-Mail mit Anschreiben).

    Der letzte Teil III bietet bewährte Methoden, um Smart Forms praxisorientierteinzusetzen. Es handelt sich hier um eine Sammlung eigenständiger, in sich

    1793-4.book Seite 23 Dienstag, 6. Dezember 2011 10:25 10

  • Einleitung

    24

    geschlossener Themen, die Sie nach Bedarf erarbeiten können. Das für SmartForms relevante Basiswissen aus Teil I wird aber vorausgesetzt.

    � In Kapitel 10 sind häufig benötigte Technologien und Vorgehensweisenaus der Projektarbeit zusammengefasst, z.B. die Verwaltung von Grafikenund Texten oder SAP-Technologien wie Nachrichtensteuerung und PostProcessing Framework. Es folgen Umsetzungsbeispiele, z.B. das Erstelleneines Formulars für viele Zwecke, Etikettendruck, Versand per Fax oderE-Mail. Als Abschluss werden Themen der Produktivsetzung beschrieben,wie Transport und Übersetzung sowie Druck und Spoolsystem.

    Durch den Einsatz externer Output-Management-Systeme bietet sich dieMöglichkeit, das Layout und den Druck von Smart Forms aus dem SAP-Backend-System zu verlagern. Smart Forms unterstützt dieses Szenarioüber XML-Datenströme, und wir erläutern, was dabei zu beachten ist.

    � Technologien für die Einbindung von Smart Forms bei dokumentenorien-tierten Prozessen wollen wir in Kapitel 11 beschreiben. Besonders inter-essant ist hierbei die Nutzung der verschiedenen Technologien zur Ablagevon Dokumenten und deren Integration in Geschäftsprozesse. Hier sollein Beispiel (diesmal aus der Personalentwicklung) die Verstrickung mitanderen Technologien und deren einfache Anwendung verdeutlichen.

    � Auf die Unterschiede zwischen Smart Forms und SAP Interactive Formssind wir ja weiter oben schon eingegangen. Trotzdem mag es Gründegeben, ein vorhandenes Formular zu migrieren. Im letzten Kapitel, Kapi-tel 12, zeigen wir, was auf dem Weg zu SAP Interactive Forms zu beachtenist und wie Sie weitgehende Kompatibilität erreichen können.

    Im Anhang finden Sie Ausdrucke zu den verwendeten Formularen bzw. Pro-grammen sowie eine kurze Einführung in das Flugdatenmodell, auf demviele Beispiele im Buch basieren. Nützlich ist sicher dort auch die Auswahl anSAP-Hinweisen aus dem SAPnet.

    Generelle Hinweise

    Folgende Hinweise sollten Sie bei der Arbeit mit dem Buch beachten:

    � Der eigentliche Name der Lösung, die wir hier vorstellen, ist SAP SmartForms oder kurz Smart Forms. Wir verstehen darunter bewusst eineBezeichnung für die gesamte Lösung zur Formularerstellung im SAP-Sys-tem. Innerhalb von Smart Forms werden u.a. Formulare und Stile erstellt.Smart Forms ist also aus dieser Sichtweise nicht das einzelne Formular. ImRahmen der Gesamtlösung stehen verschiedene Teilwerkzeuge zur Verfü-

    1793-4.book Seite 24 Dienstag, 6. Dezember 2011 10:25 10

  • Einleitung

    25

    gung, die wir Ihnen im Zuge des Buches vorstellen werden (z.B. den FormBuilder und den Style Builder).

    � Mit Smart Forms entwerfen Sie u.a. Formulare und Stile. Diese allgemei-nen Begriffe haben natürlich auch in anderen Zusammenhängen eineBedeutung. Um solche abweichenden Anwendungsfälle kenntlich zumachen, werden wir jeweils erweiterte Begriffe verwenden und dann z.B.von Webformularen oder auch von Formularvordrucken sprechen.

    � Die Funktionen innerhalb von Smart Forms sind auf verschiedenenWegen erreichbar: Über den Menüweg, über die Funktionstasten oder perMaus über entsprechende Tasten oder Symbole am Bildschirm.

    Häufig werden wir auch Begriffe im Zusammenhang mit Auswählen benut-zen. Damit kann je nach Situation ein Menüweg, ein Symbol oder ein But-ton auf dem Bildschirmbild oder auch ein Mausdoppelklick gemeint sein.Die Bedeutung ergibt sich jeweils aus dem Zusammenhang.

    � Wir beschränken uns vorzugsweise auf die Nennung des jeweiligenMenüpfades. Aus diesem Menüeintrag ergibt sich häufig auch dieBelegung der Funktionstasten. Auf das passende Symbol werden Siemeist intuitiv stoßen.

    � Beim Aufruf zentraler Transaktionen nennen wir beides, den Eintragim SAP Easy Access-Menü und den Transaktionscode.

    � Menüwege, die sich nicht auf das SAP Easy Access-Menü, sondern aufden Einführungsleitfaden beziehen, kennzeichnen wir durch den Vor-satz »IMG:«.

    � Smart Forms ist eine grafisch orientierte Lösung zur Formularerstellung,in der insbesondere auch die Maus als nützliches Eingabeinstrument vor-gesehen ist. Bei Hinweisen auf Aktivitäten mit der Maus sprechen wir teil-weise von linker bzw. rechter Maustaste und gehen dabei von der gängigenMaustastenbelegung aus. Wir wissen jedoch, dass die Bedeutung derMaustasten für Linkshänder umgekehrt sein kann: Wir bitten um Ver-ständnis, dass wir darauf im Text nicht gesondert hinweisen.

    1793-4.book Seite 25 Dienstag, 6. Dezember 2011 10:25 10

  • 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 und

    � 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.

    1793-4.book Seite 185 Dienstag, 6. Dezember 2011 10:25 10

  • 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

    1793-4.book Seite 186 Dienstag, 6. Dezember 2011 10:25 10

  • 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

    1793-4.book Seite 187 Dienstag, 6. Dezember 2011 10:25 10

  • 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.

    1793-4.book Seite 188 Dienstag, 6. Dezember 2011 10:25 10

  • 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.

    1793-4.book Seite 189 Dienstag, 6. Dezember 2011 10:25 10

  • 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&

    1793-4.book Seite 190 Dienstag, 6. Dezember 2011 10:25 10

  • 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

    1793-4.book Seite 191 Dienstag, 6. Dezember 2011 10:25 10

  • 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.

    1793-4.book Seite 192 Dienstag, 6. Dezember 2011 10:25 10

  • 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.

    1793-4.book Seite 193 Dienstag, 6. Dezember 2011 10:25 10

  • 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

    1793-4.book Seite 194 Dienstag, 6. Dezember 2011 10:25 10

  • 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).

    1793-4.book Seite 195 Dienstag, 6. Dezember 2011 10:25 10

  • 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).

    1793-4.book Seite 196 Dienstag, 6. Dezember 2011 10:25 10

  • 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.

    1793-4.book Seite 197 Dienstag, 6. Dezember 2011 10:25 10

  • 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 GlobaleDaten (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&.

    1793-4.book Seite 198 Dienstag, 6. Dezember 2011 10:25 10

  • 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«).

    1793-4.book Seite 199 Dienstag, 6. Dezember 2011 10:25 10

  • 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.

    1793-4.book Seite 200 Dienstag, 6. Dezember 2011 10:25 10

  • 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).

    1793-4.book Seite 201 Dienstag, 6. Dezember 2011 10:25 10

  • 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 zeige