Moderne Workflow-Programmierung mit ABAP® Objects
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
Dr. Ulrich Mende ist seit 12 Jahren als selbstständiger R/3-Berater, Entwickler und Trainer im Bereich ABAP-Workbench und SAP Business Workflow tätig. Er hat in den letzten Jahren für so namhafte Firmen wie die Deutsche Börse AG, die E.ON AG, die RWE AG und die Berliner GASAG komplexe Workflow-Anwendungen entwickelt und bis zur Produktivsetzung begleitet. Das vorliegende Buch entstand direkt aus seiner Entwicklertätigkeit in diesen Projekten.
More details
Other editions
Additional editions

Content
2 - Einleitung [Seite 19]
2.1 - Wer hat das Buch geschrieben? [Seite 19]
2.2 - Dank [Seite 19]
2.3 - Worum geht es in diesem Buch? [Seite 20]
2.4 - An wen richtet sich das Buch? [Seite 21]
2.5 - Hinweise zu den einzelnen Kapiteln [Seite 22]
2.5.1 - Kapitel 1 - SAP Business Workflow im Überblick [Seite 22]
2.5.2 - Kapitel 2 - Workflow - Entwicklung Tools [Seite 22]
2.5.3 - Kapitel 3 - ABAP Objects - Grundlagen [Seite 23]
2.5.4 - Kapitel 4 - Durchgängiges Beispiel des Buches: Kreditverträge [Seite 23]
2.5.5 - Kapitel 5 - Die neue Welt: ABAP Objects im Workflow [Seite 23]
2.5.6 - Kapitel 6 - Workflow-Container und Workflow-Ereignisse [Seite 23]
2.5.7 - Kapitel 7 - Organisationsmanagement und Regeln [Seite 24]
2.5.8 - Kapitel 8 - Standardaufgaben anlegen und verwenden [Seite 24]
2.5.9 - Kapitel 9 - Workflow-Muster anlegen und verwenden [Seite 24]
2.5.10 - Kapitel 10 - Klassenbasierte Techniken im Workflow [Seite 25]
2.5.11 - Kapitel 11 - Klassenbasierte Eigenentwicklungen im Workflow [Seite 25]
2.5.12 - Kapitel 12 - Business Workplace als Userinterface [Seite 25]
2.5.13 - Kapitel 13 - Webservices im Workflow [Seite 25]
2.5.14 - Kapitel 14 - Das Workflow-Laufzeitsystem [Seite 26]
2.5.15 - Kapitel 15 - Tests und Fehlersuche [Seite 26]
2.5.16 - Kapitel 16 - Workflow-Administration [Seite 26]
2.5.17 - Anhang - Die alte Welt: BOR-Objekte im Workflow [Seite 27]
3 - 1 SAP Business Workflow im Überblick [Seite 29]
3.1 - Workflow für komplex strukturierte, arbeitsteilige Prozesse [Seite 29]
3.2 - Keine zusätzlichen Lizenzkosten für SAP Business Workflow [Seite 29]
3.3 - Workitem, Business Workplace [Seite 30]
3.4 - Workflow-Definition [Seite 30]
3.5 - Terminüberschreitung [Seite 30]
3.6 - Aufbauorganisation [Seite 30]
3.7 - 1.1 Die Architektur des SAP Business Workflow [Seite 31]
3.7.1 - Abb. 1-1 Architektur des SAP Business Workflows mit allen Komponenten [Seite 31]
3.7.2 - 1.1.1 Definitionszeit [Seite 31]
3.7.2.1 - Einzelschrittaufgabe [Seite 31]
3.7.2.2 - Tab. 1-1 Zwei wesentliche Aspekte der Einzelschrittaufgabe [Seite 32]
3.7.2.3 - Mehrschrittaufgabe = Workflow-Definition = Workflow-Muster [Seite 32]
3.7.2.4 - Schritttypen [Seite 32]
3.7.2.5 - Business Object Repository [Seite 33]
3.7.2.6 - Tab. 1-2 Übersicht über die Schritttypen in einer Workflow-Definition [Seite 33]
3.7.2.7 - Objekttyp, Objektmethode, Objektattribut [Seite 33]
3.7.3 - 1.1.2 Workflows und Workitems zur Ausführungszeit [Seite 34]
3.7.3.1 - Workflow als Ausführung einer Workflow-Definition [Seite 34]
3.7.3.2 - Workitem als Schritt eines Workflows [Seite 34]
3.7.4 - 1.1.3 Bearbeiterfindung [Seite 34]
3.7.4.1 - Organisatorische Zuordnung [Seite 34]
3.7.4.2 - Regel [Seite 34]
3.7.5 - 1.1.4 Workflow als Reaktion auf Anwendungssignale [Seite 35]
3.7.5.1 - Ereignis [Seite 35]
3.7.6 - 1.1.5 Vorkonfigurierte Workflow-Definitionen [Seite 35]
3.7.6.1 - Workflow-Muster [Seite 35]
3.7.7 - 1.1.6 Der typische Workflow-Benutzer [Seite 36]
3.7.7.1 - Sachbearbeiter [Seite 36]
3.7.7.2 - Prozessmodellierer [Seite 36]
3.7.7.3 - Programmierer [Seite 36]
3.7.7.4 - Verantwortlicher für Aufbauorganisation [Seite 37]
3.7.7.5 - Workflow-Administrator [Seite 37]
3.8 - 1.2 Ein typisches Workflow-Szenario [Seite 37]
3.8.1 - Genehmigungs- und Freigabeverfahren [Seite 37]
3.9 - 1.3 Dokumentation und Tutorial [Seite 38]
3.10 - 1.4 Business Workplace [Seite 38]
3.10.1 - 1.4.1 Mails im Business Workplace [Seite 39]
3.10.1.1 - Abb. 1-2 Business Workplace [Seite 39]
3.10.1.2 - Dokumente [Seite 39]
3.10.2 - 1.4.2 Workitems mit Benutzerdialog in der Worklist [Seite 39]
3.10.2.1 - Worklist [Seite 39]
4 - 2 Workflow-Entwicklung - Tools [Seite 41]
4.1 - 2.1 Workflow aus Entwicklersicht [Seite 41]
4.1.1 - 2.1.1 Workflow als Framework [Seite 41]
4.1.2 - 2.1.2 Schichtenmodell einer Workflow-Anwendung [Seite 41]
4.1.3 - 2.1.3 Paketorientierte Workflow-Entwicklung in der SE80 [Seite 42]
4.1.3.1 - Abb. 2-1 Schichtenmodell einer Workflow-Anwendung [Seite 42]
4.1.3.2 - Abb. 2-2 Alle Entwicklungsobjekte einer Workflow- Anwendung in der SE80 [Seite 42]
4.1.3.3 - Aufgabengruppen nicht über SE80 [Seite 43]
4.1.4 - 2.1.4 Das Workflow-Bereichsmenü SWLD [Seite 43]
4.1.4.1 - Bereichsmenü SWLD [Seite 43]
4.1.4.2 - Empfehlenswert: eigenes Favoritenmenü für Workflow [Seite 43]
4.1.4.3 - PFTC = allgemeine Aufgabenpflege PFAC = allgemeine Regelpflege [Seite 43]
4.2 - 2.2 Workflow-Beispiellösungen der SAP [Seite 44]
4.2.1 - Abb. 2-3 Favoriten mit speziellem Ordner für Workflow [Seite 44]
4.2.2 - 2.2.1 Tutorials [Seite 44]
4.2.3 - 2.2.2 Workflow-Anwendung »Urlaubsantrag« [Seite 45]
4.2.3.1 - Workflow-Muster Urlaubsantrag = WS30000015 [Seite 45]
4.2.4 - 2.2.3 Workflows der Aufgabengruppe WFUNIT [Seite 45]
4.2.4.1 - 80 Workflow-Muster in TG WFUNIT [Seite 45]
4.2.5 - 2.2.4 Workflows der Aufgabengruppe WF_Verify [Seite 46]
4.2.5.1 - Abb. 2-4 Workflow-Muster der Aufgabengruppe WFUNIT [Seite 46]
4.2.5.2 - Abb. 2-5 Workflow-Muster der Aufgabengruppe WF_Verify [Seite 46]
4.3 - 2.3 SAP Service Marketplace [Seite 47]
4.3.1 - Abb. 2-6 Startseite des SAP Service Marketplace [Seite 47]
4.3.2 - 2.3.1 SAP Support Portal mit Hinweissystem [Seite 47]
4.3.2.1 - Zugriff auf das SAP-Hinweissystem unbedingt erforderlich [Seite 47]
4.3.2.2 - Abb. 2-7 Suchmaske für Hinweissystem [Seite 48]
4.3.2.3 - Abb. 2-8 Application Area in der Suchmaske des Hinweissystems [Seite 49]
4.3.2.4 - Abb. 2-9 Zusätzliche Suchkriterien bei der Hinweissuche [Seite 49]
4.3.2.5 - Abb. 2-10 Suchergebnis des Hinweissystems [Seite 50]
4.3.3 - 2.3.2 SDN-Community [Seite 50]
4.3.3.1 - SDN-Teilnahme wertvoll für Entwickler [Seite 50]
4.3.3.2 - Abb. 2-11 Suche im SDN-Forum »SAP Business Workflow« [Seite 50]
4.3.4 - 2.3.3 SAP Help online und offline [Seite 51]
5 - 3 ABAP Objects - Grundlagen [Seite 53]
5.1 - 3.1 Objektorientierung als Abbild der realen Welt [Seite 53]
5.1.1 - Tab. 3-1 Analogie Handy-Bau - Objektorientierung [Seite 53]
5.2 - 3.2 Klassen und ihre Komponenten [Seite 54]
5.2.1 - Attribute speichern Objektdaten. [Seite 54]
5.2.2 - Methoden kapseln ABAP-Code. [Seite 54]
5.2.3 - 3.2.1 PUBLIC-, PROTECTED- und PRIVATE-Komponenten [Seite 54]
5.2.3.1 - Stufenweise Kapselung von Komponenten mit PUBLIC, PROTECTED und PRIVATE [Seite 55]
5.2.4 - 3.2.2 Statische und Instanzkomponenten [Seite 55]
5.2.4.1 - Statisches Attribut = Klassenattribut = einmal pro Klasse Statische Methode = Klassenmethode = sieht nur Klassenattribute [Seite 55]
5.2.5 - 3.2.3 Abstrakte und finale Methoden und Klassen [Seite 55]
5.2.5.1 - Abstrakte Klassen sind nicht instanziierbar. [Seite 55]
5.2.5.2 - Abstrakte Methoden müssen bei Vererbung redefiniert werden. [Seite 56]
5.2.5.3 - Finale Klassen sind nicht ableitbar. [Seite 56]
5.2.6 - 3.2.4 Lokale und globale Klassen [Seite 56]
5.2.6.1 - Listing 3-1 Programmstruktur einer lokalen Klasse [Seite 56]
5.2.6.2 - SE24 ist in SE80 integriert. [Seite 57]
5.2.6.3 - Abb. 3-1 Bearbeitung eine globalen Klasse mit der SE24 innerhalb der SE80 [Seite 58]
5.2.7 - 3.2.5 Objekte und Referenzen [Seite 58]
5.2.7.1 - Objektreferenzen sind Zeiger auf Objektinstanzen. [Seite 59]
5.2.7.2 - Listing 3-2 Test, ob Referenz gebunden ist. [Seite 59]
5.2.7.3 - CREATE OBJECT = Neuanlage Objekt + Zuweisung Referenz [Seite 59]
5.2.7.4 - Listing 3-3 Anlegen einer Objektinstanz und zuweisen einer Referenz [Seite 59]
5.2.7.5 - Regeln für Referenzen [Seite 60]
5.2.8 - 3.2.6 Zugriff auf Klassen- und Instanzkomponenten [Seite 60]
5.2.8.1 - Klassenattribute [Seite 61]
5.2.8.1.1 - Zugriff auf Klassen- komponenten ohne Objektinstanz mit => [Seite 61]
5.2.8.2 - Klassenmethoden [Seite 61]
5.2.8.3 - Instanzattribute [Seite 61]
5.2.8.3.1 - Zugriff auf Instanzkomponenten mit Objektinstanz mit -> [Seite 61]
5.2.8.4 - Instanzmethoden [Seite 61]
5.2.8.4.1 - Objektreferenz ME zeigt auf das eigene Objekt. [Seite 61]
5.2.8.4.2 - Listing 3-4 Zugriff auf Klassen- und Instanzmethoden [Seite 62]
5.2.8.4.3 - Anwendungsdaten auf der DB, Objektdaten im Hauptspeicher [Seite 62]
5.3 - 3.3 Vererbung und Casting von Referenzen [Seite 62]
5.3.1 - Vererbungsbaum durch mehrstufige Vererbung [Seite 62]
5.3.2 - Vererbung auf Klassenebene, nicht auf Instanzebene [Seite 63]
5.3.3 - Abb. 3-2 Vererbung und Referenzen [Seite 63]
5.3.4 - Vater-Referenz darf auf Sohn- und Enkel- Instanzen zeigen. [Seite 64]
5.3.5 - Statischer und dynamischer Typ von Referenzen [Seite 64]
5.3.6 - 3.3.1 Klasse CL_VATER [Seite 64]
5.3.6.1 - Listing 3-5 Lokale Klassendefinition CL_VATER [Seite 65]
5.3.7 - 3.3.2 Klasse CL_SOHN [Seite 66]
5.3.7.1 - Listing 3-6 Lokale Klassendefinition CL_SOHN [Seite 66]
5.3.8 - 3.3.3 Klasse CL_ENKEL [Seite 67]
5.3.8.1 - Pseudoreferenz SUPER [Seite 67]
5.3.8.2 - Listing 3-7 Lokale Klassendefinition CL_ENKEL [Seite 68]
5.3.9 - 3.3.4 Beispielprogramm zur Vererbung [Seite 68]
5.3.9.1 - Vererbung besteht zwischen Klassen, nicht zwischen Objekten. [Seite 68]
5.3.9.2 - Listing 3-8 Diverse Methodenaufrufe via Referenz [Seite 69]
5.3.10 - 3.3.5 Upcasting und Downcasting von Referenzen [Seite 70]
5.3.10.1 - Up- und Downcasting im natürlichen Vererbungsbaum [Seite 70]
5.3.10.2 - Upcasting ist uneingeschränkt möglich. [Seite 71]
5.3.10.3 - Downcasting nur, wenn Source-Referenz spezieller als Target-Referenz [Seite 71]
5.3.10.4 - Listing 3-9 Erlaubte und verbotene Castings [Seite 71]
5.3.10.5 - Abb. 3-3 Programmausgaben [Seite 72]
5.4 - 3.4 Events [Seite 73]
5.4.1 - 3.4.1 Prinzip Publish and Subscribe [Seite 73]
5.4.1.1 - Beispiel aus dem Bereich der Stellensuche [Seite 73]
5.4.1.1.1 - Pull-Prinzip [Seite 73]
5.4.1.1.2 - Push-Prinzip [Seite 73]
5.4.1.1.3 - Publish and Subscribe [Seite 73]
5.4.1.1.4 - Ereignisse haben nur EXPORTING-Parameter. [Seite 73]
5.4.1.1.5 - Tab. 3-2 Statischer und dynamischer Teil von Publish and Subscribe [Seite 74]
5.4.2 - 3.4.2 Event Handling [Seite 74]
5.4.2.1 - Aufruf Eventhandler [Seite 74]
5.4.2.2 - Workflow verwendet kein Shared Memory. [Seite 75]
5.4.3 - 3.4.3 Events im Workflow-Kontext [Seite 75]
5.4.3.1 - Systemweite Workflow- Events [Seite 75]
5.5 - 3.5 Interfaces [Seite 75]
5.5.1 - IF_WORLFLOW [Seite 76]
5.5.2 - IF_WORKITEM_EXIT [Seite 76]
5.5.3 - Abb. 3-4 Einbindung eines Interface über mehrere Vererbungsbäume hinweg [Seite 76]
5.5.4 - 3.5.1 Definition von Interfaces [Seite 77]
5.5.4.1 - Listing 3-10 Muster für die Definition eines Interface [Seite 77]
5.5.5 - 3.5.2 Interfaceimplementierung und -referenzen [Seite 77]
5.5.5.1 - ALIAS-Namen für Interfacekomponenten [Seite 78]
5.5.5.2 - Listing 3-11 Definition und Implementierung eines Interface [Seite 78]
5.6 - 3.6 Polymorphie [Seite 79]
5.6.1 - 3.6.1 Allgemeines [Seite 79]
5.6.1.1 - Polymorphie = Vererbung + Redefinition [Seite 79]
5.6.1.2 - Abb. 3-5 Vererbungsbaum Java AWT [Seite 80]
5.6.1.3 - Polymorphie im Workflow = IF_WORKFLOW [Seite 80]
5.6.2 - 3.6.2 Polymorphie durch Vererbung [Seite 81]
5.6.2.1 - Listing 3-12 Polymorphie in einer Liste unterschiedlicher Männer [Seite 81]
5.6.3 - 3.6.3 Polymorphie über Interfaces [Seite 82]
5.7 - 3.7 Ausnahmen und Ausnahmeklassen [Seite 82]
5.7.1 - 3.7.1 Klassische Ausnahmen ohne Ausnahmeklassen [Seite 82]
5.7.1.1 - Abb. 3-6 Klassische Exceptions an einer Methode [Seite 82]
5.7.1.2 - Listing 3-13 Methode mit klassischer Exception [Seite 83]
5.7.1.3 - Listing 3-14 Aufruf einer Methode mit klassischer Exception [Seite 83]
5.7.2 - 3.7.2 Ausnahmeklassen [Seite 84]
5.7.2.1 - Abb. 3-7 Nachricht ausgeben nach einer klassischen Exception [Seite 84]
5.7.2.2 - 3 Basisausnahmeklassen von SAP [Seite 84]
5.7.2.3 - Abb. 3-8 Teil des Vererbungs- baumes von CX_DYNAMIC_CHECK [Seite 85]
5.7.2.4 - Abb. 3-9 Nachrichtenklasse für Ausnahmeklasse [Seite 85]
5.7.2.5 - Abb. 3-10 Eigenschaften der Ausnahmeklasse [Seite 86]
5.7.2.6 - Abb. 3-11 Texte der Ausnahmeklasse [Seite 86]
5.7.2.7 - Abb. 3-12 Nachrichten- und Parameterzuordnung [Seite 87]
5.7.2.8 - Abb. 3-13 Attribute der Ausnahmeklasse [Seite 87]
5.7.2.9 - Listing 3-15 Generierte Konstante vom Typ T100 [Seite 87]
5.7.2.10 - Abb. 3-14 Eigenschaften der geerbten bzw. generierten Methoden der Ausnahmeklasse [Seite 88]
5.7.2.11 - Generierter CONSTRUCTOR [Seite 88]
5.7.2.12 - Abb. 3-15 Generierter CONSTRUCTOR der Ausnahmeklasse [Seite 89]
5.7.2.13 - Abb. 3-16 Ausnahmeklasse in der Methode angeben [Seite 89]
5.7.2.14 - Listing 3-16 Methode mit klassen- basierter Exception [Seite 90]
5.7.2.15 - Listing 3-17 Aufruf einer Methode mit klassenbasierter Exception [Seite 91]
5.7.2.16 - Abb. 3-17 Nachricht aus GET_TEXT [Seite 91]
5.7.2.17 - Abb. 3-18 Laufzeitfehler bei fehlendem TRY-CATCH-Block [Seite 92]
5.7.2.18 - CONSTRUCTOR nachgenerieren [Seite 92]
5.7.2.19 - Vorteile von Ausnahmeklassen [Seite 93]
5.7.2.20 - Exceptions und Exportparameter [Seite 93]
5.7.2.20.1 - Exceptions und Exportparameter [Seite 93]
5.7.3 - 3.7.3 Ausnahmetexte aus dem OTR [Seite 93]
5.8 - 3.8 Zugriff auf die Klassendefinition im Repository [Seite 94]
5.8.1 - Tabellen SEO_* enthalten Klassendefinitionen. [Seite 94]
5.8.2 - Abb. 3-19 Repository-Informationen zu einer Klasse [Seite 94]
5.8.3 - Listing 3-18 Zugriff auf die Klassendefinition im Repository [Seite 95]
5.9 - 3.9 Dynamischer Aufruf von Klassenmethoden [Seite 96]
5.9.1 - Abb. 3-20 Dynamischer Methodenaufruf - Parameterliste [Seite 96]
5.9.2 - Listing 3-19 Definition von Parametertabellen für dynamischen Aufruf [Seite 97]
5.9.3 - Listing 3-20 Vollständig dynamischer Aufruf einer Instanzmethode [Seite 97]
5.9.4 - 3.9.1 Parameter vom Typ REF TO dynamisch übergeben [Seite 100]
5.9.4.1 - Listing 3-21 Methode mit Ref To-Parameter [Seite 101]
5.9.4.2 - Listing 3-22 Objektreferenz als Parameter in einem dynamischen Aufruf [Seite 101]
5.9.4.3 - Objektreferenzen dynamisch erzeugen [Seite 103]
5.9.4.4 - Abb. 3-21 Parametertabelle mit Referenzparameter [Seite 103]
5.9.4.5 - Abb. 3-22 Statischen Typ über Feldsymbol dynamisch zuweisen [Seite 104]
5.10 - 3.10 Run Time Type Services [Seite 104]
5.10.1 - 3.10.1 Run Time Type Identification (RTTI) [Seite 104]
5.10.1.1 - Listing 3-23 Makros für die Typermittlung von Referenzen [Seite 104]
5.10.1.2 - Listing 3-24 Statischen und dynamischen Typ ermitteln [Seite 105]
5.10.1.3 - Abb. 3-23 Ausgabe des Programms Z_TEST_TYPEDEF [Seite 106]
5.10.2 - 3.10.2 Run Time Type Creation (RTTC) [Seite 107]
5.10.2.1 - Abb. 3-24 Klassenhierarchie des RTTI [Seite 107]
5.10.2.2 - Listing 3-25 Dynamischer Typaufbau via RTTC [Seite 107]
5.11 - 3.11 Übernehmen lokaler Klassen in das Repository [Seite 109]
5.11.1 - Abb. 3-25 Dynamisch mit RTTC erzeugte interne Tabelle im Debugger [Seite 109]
5.11.2 - Abb. 3-26 Lokale Klassen importieren aus Programm [Seite 109]
5.11.3 - Abb. 3-27 Importierte lokale Klasse CL_ENKEL [Seite 110]
6 - 4 Durchgängiges Beispiel des Buches: Kreditverträge [Seite 111]
6.1 - 4.1 Aufgabenstellung [Seite 111]
6.1.1 - Dieses Beispiel wird durchgehend verwendet. [Seite 111]
6.2 - 4.2 Tabelle ZVERTRAG [Seite 111]
6.3 - 4.3 Vertragstransaktion [Seite 112]
6.3.1 - Abb. 4-1 Tabelle ZVERTRAG [Seite 112]
6.4 - 4.4 Statusdiagramm [Seite 112]
6.5 - 4.5 Implementierung (DB und ABAP) [Seite 113]
6.5.1 - Abb. 4-2 Statusdiagramm der Beispieltransaktion [Seite 113]
6.5.2 - Listing 4-1 Interface FBS Z_VERTRAG (Vertragsbearbeitung) [Seite 113]
6.5.3 - Formeln für Monatsrate und Laufzeit [Seite 114]
6.5.4 - Abb. 4-3 FBS Z_VERTRAG - Aktion ANLEGEN [Seite 114]
6.5.5 - Abb. 4-4 FBS Z_VERTRAG - Aktion AENDERN [Seite 114]
6.5.6 - Abb. 4-5 FBS Z_VERTRAG - Aktion GENEHMIGEN [Seite 115]
6.5.7 - Abb. 4-6 Ratenplan eines Kreditvertrages (nur letzter Teil) [Seite 115]
6.6 - 4.6 Quelltext der Vertragstransaktion [Seite 116]
6.6.1 - Listing 4-2 Quelltext Vertragstransaktion [Seite 116]
6.7 - 4.7 Quelltext zur Berechnung des Ratenplans [Seite 120]
6.7.1 - Listing 4-3 Quelltext zur Berechnung des Ratenplans [Seite 121]
7 - 5 Die neue Welt: ABAP Objects im Workflow [Seite 125]
7.1 - 5.1 Problemstellung [Seite 125]
7.2 - 5.2 IF_WORKFLOW [Seite 126]
7.2.1 - Beispiel einer Vertragsbearbeitung im Workflow [Seite 126]
7.2.1.1 - Abb. 5-1 Struktur SIBFLPOR für persistente Klassenreferenzen [Seite 127]
7.2.1.2 - Abb. 5-2 Struktur SIBFLPORB für persistente BOR-Referenzen [Seite 127]
7.2.1.3 - Abb. 5-3 Interface IF_WORKFLOW im Class Builder (SE24) [Seite 128]
7.2.1.4 - Listing 5-1 Komponenten von BI_OBJECT [Seite 128]
7.2.1.5 - Listing 5-2 Komponenten von BI_PERSISTENT [Seite 128]
7.2.1.6 - Listing 5-3 Komponenten von IF_WORKFLOW [Seite 129]
7.2.2 - BI_PERSISTANT~FIND_BY_LPOR [Seite 129]
7.2.2.1 - Konvertierung Referenz DB à Hauptspeicher [Seite 129]
7.2.3 - BI_PERSISTANT~LPOR [Seite 129]
7.2.3.1 - Konvertierung Referenz Hauptspeicher à DB [Seite 129]
7.2.4 - BI_PERSISTENT~REFRESH [Seite 129]
7.2.5 - BI_OBJECT~DEFAULT_ATTRIBUTE_VALUE [Seite 130]
7.2.6 - BI_OBJECT~EXECUTE_DEFAULT_METHOD [Seite 130]
7.2.7 - BI_OBJECT~RELEASE [Seite 130]
7.3 - 5.3 Vertragsbearbeitung im Workflow - Klasse ZCL_VERTRAG [Seite 130]
7.3.1 - Listing 5-4 CONSTRUCTOR der Klasse ZCL_VERTRAG [Seite 130]
7.3.2 - 5.3.1 Attribute MV_VERNR und MS_VERTRAG [Seite 130]
7.3.2.1 - Abb. 5-4 Keine Schlüsselattribute vor IF_WORKFLOW [Seite 131]
7.3.3 - 5.3.2 Methoden ANZEIGEN, AENDERN, GENEHMIGEN [Seite 131]
7.3.3.1 - Listing 5-5 Instanzmethode ZCL_VERTRAG.ANZEIGEN [Seite 131]
7.3.3.2 - Listing 5-6 Instanzmethode ZCL_VERTRAG.AENDERN [Seite 132]
7.3.3.3 - Listing 5-7 Instanzmethode ZCL_VERTRAG.GENEHMIGEN [Seite 132]
7.3.4 - 5.3.3 Ereignisse CREATED, CHANGED und CANCELLED [Seite 133]
7.3.4.1 - Abb. 5-5 Ereignisse der Klasse ZCL_VERTRAG [Seite 133]
7.3.5 - 5.3.4 Erste Tests der Klasse ohne Interface IF_WORKFLOW [Seite 134]
7.4 - 5.4 Einfachste Ausprägung von IF_WORKFLOW [Seite 134]
7.4.1 - Abb. 5-6 Methodenliste von ZCL_VERTRAG nach Einbindung von IF_WORKFLOW [Seite 134]
7.4.2 - Listing 5-8 Methode BI_PERSISTENT~REFRESH [Seite 134]
7.4.3 - Listing 5-9 CONSTRUCTOR mit Aufruf auf BI_PERSISTENT~REFRESH [Seite 135]
7.4.4 - Abb. 5-7 Key-Flag an der Vertragsnummer [Seite 135]
7.4.5 - Listing 5-10 Methode BI_PERSISTENT~ FIND_BY_LPOR [Seite 135]
7.4.6 - Listing 5-11 Methode BI_PERSISTANT~LPOR [Seite 136]
7.4.7 - Listing 5-12 Methode BI_OBJECT~DEFAULT_ATT RIBUTE_VALUE [Seite 136]
7.4.8 - Listing 5-13 Methode BI_OBJECT~EXECUTE_DE FAULT_METHOD ruft die Anzeigemethode auf. [Seite 137]
7.4.9 - Listing 5-14 Methode BI_OBJECT~RELEASE ist leer. [Seite 137]
7.5 - 5.5 Erweiterte Ausprägung IF_WORKFLOW [Seite 137]
7.5.1 - Listing 5-15 CONSTRUCTOR bei erweitertem Interface [Seite 137]
7.5.2 - Listing 5-16 Typen und Klassendaten für Instanzverwaltung [Seite 138]
7.5.3 - Listing 5-17 Methode FIND_BY_LPOR mit Instanzpufferung [Seite 138]
7.5.4 - Listing 5-18 Methode LPOR liefert Instanzdatum GS_POR. [Seite 139]
7.5.5 - Listing 5-19 Methode REFRESH liest Vertragsdaten von der DB [Seite 139]
7.5.6 - Listing 5-20 Wert des Defaultattributes ist Vertragsnummer. [Seite 140]
7.5.7 - Listing 5-21 Defaultmethode ruft parameterlose Anzeigemethode auf. [Seite 140]
7.5.8 - Listing 5-22 Methode RELEASE bleibt leer. [Seite 140]
7.5.9 - Instanzpufferung: Performance vs. Datensicherheit [Seite 140]
7.5.9.1 - Redundanz zwischen Objekt- und DB-Daten [Seite 140]
7.5.9.2 - Listing 5-23 Statische Methode zur Instanzerzeugung [Seite 141]
7.5.9.3 - Abb. 5-8 PRIVATE- Instanzerzeugung bei Instanzverwaltung [Seite 141]
8 - 6 Workflow-Container und Workflow-Ereignisse [Seite 143]
8.1 - 6.1 Konzept [Seite 143]
8.1.1 - Tab. 6-1 Workflow-Teilobjekte mit eigenen Containern [Seite 143]
8.1.2 - CL-Methoden haben keine Methodencontainer. [Seite 144]
8.1.3 - Publish-Subscribe-Prinzip [Seite 144]
8.1.4 - Event-Condition-Action- Paradigma [Seite 144]
8.2 - 6.2 Workflow-Container [Seite 145]
8.2.1 - 6.2.1 Die Klasse CL_SWF_CNT_CONTAINER [Seite 145]
8.2.1.1 - Tab. 6-2 Interface der Klasse CL_SWF_CNT_CONTAINER [Seite 145]
8.2.1.2 - Tab. 6-3 Befreundete Klassen von CL_SWF_CNT_CONTAINER [Seite 146]
8.2.1.3 - Listing 6-1 Arbeiten mit Containern und Elementen [Seite 147]
8.2.1.4 - Abb. 6-1 Editieren eines Containerinhalts [Seite 148]
8.2.1.5 - Listing 6-2 Arbeiten mit Containerelementen [Seite 149]
8.2.1.6 - Abb. 6-2 Editieren der Elementdefinition außerhalb des Containers [Seite 150]
8.2.1.7 - Abb. 6-3 Container nach Einstellen des Elements [Seite 150]
8.2.2 - 6.2.2 Datenflüsse zwischen Containern [Seite 151]
8.2.2.1 - Listing 6-3 Arbeiten mit Datenflüssen [Seite 151]
8.2.2.2 - Abb. 6-4 Editieren einer Datenflussdefinition [Seite 153]
8.2.3 - 6.2.3 Containerpersistenz auf der Datenbank [Seite 154]
8.2.3.1 - Abb. 6-5 Target-Container vor und nach Datenfluss [Seite 154]
8.2.3.2 - Containerpersistenz einer Workflow-Definition einstellen [Seite 154]
8.2.3.2.1 - Abb. 6-6 Datenstruktur zur Untersuchung der Containerpersistenz [Seite 154]
8.2.3.3 - Containerspeicherung bei Strukturpersistenz [Seite 155]
8.2.3.3.1 - Listing 6-4 NICHT SINNVOLL: Direkter Zugriff auf Containertabellen [Seite 155]
8.2.3.3.2 - Abb. 6-7 Datenstruktur DATASTRU in der Tabelle SWW_CONT [Seite 155]
8.2.3.4 - Containerspeicherung bei XML-Persistenz [Seite 156]
8.2.3.4.1 - Abb. 6-8 Abbruch bei Containeranzeige [Seite 156]
8.2.3.4.2 - Abb. 6-9 Inhalt der Tabelle SWWCNTP0 [Seite 156]
8.2.3.4.3 - Listing 6-5 XML-Daten eines Containers anzeigen [Seite 157]
8.2.3.5 - Container eines Workitems im Programm ändern [Seite 158]
8.2.3.5.1 - Abb. 6-10 XML-Anzeige der Containerdaten eines WI [Seite 158]
8.2.3.5.2 - Listing 6-6 Container eines Workitems per FBS ändern [Seite 158]
8.3 - 6.3 Ereigniserzeugung [Seite 159]
8.3.1 - 6.3.1 Universelle Ereigniserzeugung in ABAP-Programmen [Seite 159]
8.3.1.1 - Abb. 6-11 Ereignis ZCL_VERTRAG ->CANCELLED mit zwei Parametern [Seite 159]
8.3.1.2 - Listing 6-7 Event mit Eventcontainer auslösen [Seite 159]
8.3.1.3 - Abb. 6-12 MAMETAB-Tabelle im Eventcontainer [Seite 161]
8.3.1.4 - Listing 6-8 Verbraucher zu einem ausgelösten Event ermitteln [Seite 162]
8.3.1.5 - Abb. 6-13 Ereignis mit Parametern [Seite 162]
8.3.2 - 6.3.2 Erzeugung von BOR-Events mit SWE_EVENT_CREATE [Seite 163]
8.3.3 - 6.3.3 Ereigniserzeugung über Änderungsbelege [Seite 163]
8.3.3.1 - Änderungsbelegobjekt ZVERTRAG anlegen [Seite 164]
8.3.3.1.1 - Abb. 6-14 Änderungsbelegobjekt ZVERTRAG [Seite 164]
8.3.3.1.2 - Abb. 6-15 Tabellen im Generierungsobjekt eintragen [Seite 165]
8.3.3.1.3 - Abb. 6-16 Verbucher generieren [Seite 165]
8.3.3.2 - Änderungsbelege - Workflow-Eigenschaften [Seite 166]
8.3.3.2.1 - Abb. 6-17 Änderungsbelege Workflow-Eigenschaften [Seite 166]
8.3.3.3 - Änderungsbelege - Ereigniskopplung [Seite 166]
8.3.3.3.1 - Abb. 6-18 Änderungsbelege - Ereigniskopplung (Übersicht) [Seite 166]
8.3.3.3.2 - Abb. 6-19 Änderungsbelege - Ereigniskopplung (Details) [Seite 166]
8.3.3.3.3 - Abb. 6-20 Änderungsbelege - Ereigniskopplung Feldrestriktionen [Seite 167]
8.3.3.4 - Änderungsbelege anzeigen [Seite 167]
8.3.3.4.1 - Abb. 6-21 Anzeige von Änderungsbelegen mit RSSCD100 [Seite 167]
8.3.3.4.2 - Abb. 6-22 Änderungsbelege - Ereignis-Trace anzeigen [Seite 167]
8.3.4 - 6.3.4 Weitere Methoden der Ereigniserzeugung [Seite 168]
8.3.4.1 - Ereigniserzeugung über Statusverwaltung [Seite 168]
8.3.4.2 - Ereigniserzeugung über Nachrichtensteuerung [Seite 168]
8.4 - 6.4 Ereignis-Verbraucher-Kopplungen [Seite 168]
8.4.1 - 6.4.1 Typkopplung mit Funktionsbaustein oder Methode [Seite 169]
8.4.1.1 - Abb. 6-23 Übersicht Typkopplung [Seite 169]
8.4.1.2 - Abb. 6-24 Details Typkopplung, Aufrufart Funktionsbaustein [Seite 170]
8.4.1.3 - Abb. 6-25 Details Typkopplung, Aufrufart Methode [Seite 170]
8.4.2 - 6.4.2 Verbrauchertyp [Seite 171]
8.4.2.1 - Workflow-Muster steht im Verbrauchertyp [Seite 171]
8.4.3 - 6.4.3 Verbraucher-Funktionsbaustein [Seite 171]
8.4.4 - 6.4.4 Check-Funktionsbaustein [Seite 171]
8.4.4.1 - Check-FBS prüft Startbedingungen. [Seite 171]
8.4.4.2 - Listing 6-9 Beispiel für Check-FBS [Seite 172]
8.4.5 - 6.4.5 Verbrauchertyp-Funktionsbaustein [Seite 172]
8.4.5.1 - Listing 6-10 Beispiel für Verbrauchertyp-FBS [Seite 173]
8.4.6 - 6.4.6 Typkopplung aktiv, Ereignis-Queue zulassen [Seite 173]
8.4.7 - 6.4.7 Instanzkopplung [Seite 173]
8.4.7.1 - Instanzkopplung setzt Typkopplung voraus. [Seite 174]
8.4.7.2 - Abb. 6-26 Instanzkopplungen für verschiedene Objekttypen (Übersicht) [Seite 174]
8.4.7.3 - Abb. 6-27 Instanzkopplung für einen Objekttyp (Objektdaten) [Seite 174]
8.4.8 - 6.4.8 Einträge in den Koppeltabellen durch Workflow [Seite 174]
8.4.8.1 - Startereignis Workflow über Typkopplung [Seite 175]
8.4.8.2 - Endeereignis für Workitem über Instanzkopplung [Seite 175]
8.4.9 - 6.4.9 Workflow-Startbedingungen [Seite 175]
8.4.9.1 - Start- oder Abbruchbedingung [Seite 176]
8.4.9.2 - Abb. 6-28 Workflow- Startbedingungen [Seite 176]
8.4.9.3 - De Morgan'sche Regeln für Negation komplexer logischer Ausdrücke [Seite 176]
8.4.9.4 - Listing 6-11 Abbruchbedingungen im Check-FBS [Seite 176]
8.4.9.5 - Listing 6-12 Startbedingungen in TA SWB_COND [Seite 176]
8.5 - 6.5 Ereignisverarbeitung [Seite 177]
8.5.1 - 6.5.1 Ablauf der Ereignisverarbeitung [Seite 177]
8.5.1.1 - Ereignismanager [Seite 177]
8.5.2 - 6.5.2 Erzeuger- und Verbraucherkontext [Seite 177]
8.5.2.1 - Abb. 6-29 Erzeuger- und Verbraucherkontext bei der Ereignisverarbeitung [Seite 178]
8.5.3 - 6.5.3 Ereignisfluss bei Vererbung [Seite 178]
8.5.3.1 - Abb. 6-30 Ereigniskopplung für Super- und Subklasse [Seite 179]
8.5.3.2 - Abb. 6-31 Ereignis-Trace für Ereignis CREATED der Subklasse [Seite 179]
8.6 - 6.6 Laufzeitwerkzeuge für Ereignisse [Seite 179]
8.6.1 - 6.6.1 Ereignis auslösen [Seite 179]
8.6.2 - 6.6.2 Ereignis simulieren [Seite 180]
8.6.2.1 - Abb. 6-32 Ereigniserzeugung [Seite 180]
8.6.2.2 - Ereignissimulation = Was würde bei Auslösung passieren. [Seite 180]
8.6.2.3 - Abb. 6-33 Anzeige der Simulationsergebnisse einer Ereignissimulation [Seite 180]
8.6.3 - 6.6.3 Ereignis-Trace [Seite 181]
8.6.3.1 - Abb. 6-34 Ereignis-Trace, Selektionsbild [Seite 181]
8.6.3.2 - Abb. 6-35 Ereignis-Trace, Listanzeige [Seite 182]
8.6.4 - 6.6.4 Ereignis-Queue [Seite 182]
8.6.4.1 - Abb. 6-36 Administration der Ereignis-Queue [Seite 183]
8.6.4.2 - Abb. 6-37 Ereignis-Queue-Browser [Seite 184]
8.6.4.3 - Abb. 6-38 Ereignis-Queue für Ereigniskopplung aktivieren [Seite 184]
9 - 7 Organisationsmanagement und Regeln [Seite 185]
9.1 - 7.1 Konzept [Seite 185]
9.1.1 - Tab. 7-1 Statische vs. dynamische Bearbeiterzuordnung [Seite 185]
9.2 - 7.2 Bestandteile des Organisationsmanagements [Seite 186]
9.2.1 - 7.2.1 Organisationseinheiten [Seite 186]
9.2.1.1 - Organisationsstruktur [Seite 186]
9.2.2 - 7.2.2 Besetzungsplan [Seite 186]
9.2.2.1 - Abb. 7-1 Aufbauorganisation [Seite 187]
9.2.3 - 7.2.3 Aufgabenprofil [Seite 187]
9.3 - 7.3 Einfache Pflege der Aufbauorganisation [Seite 188]
9.3.1 - Abb. 7-2 Pflege der Aufbauorganisation [Seite 189]
9.4 - 7.4 Infotypen [Seite 189]
9.4.1 - 7.4.1 OM-Typebene und OM-Objektebene [Seite 189]
9.4.1.1 - OM-Typebene [Seite 189]
9.4.1.2 - Abb. 7-3 Pflege des Organisations- managements [Seite 190]
9.4.1.3 - OM-Objektebene [Seite 190]
9.4.2 - 7.4.2 OM-Objekttypen (Infotyp 1000) [Seite 191]
9.4.2.1 - OM-Objekttypen sind keine BOR-Objekttypen und keine Klassen. [Seite 191]
9.4.2.2 - Tab. 7-2 Wichtige OM-Objekttypen [Seite 191]
9.4.3 - 7.4.3 Verknüpfungen zwischen Objekttypen (Infotyp 1001) [Seite 191]
9.4.3.1 - Abb. 7-4 Verknüpfungen pflegen [Seite 192]
9.4.4 - 7.4.4 Weitere Infotypen [Seite 193]
9.4.5 - 7.4.5 Zuständigkeiten [Seite 193]
9.4.5.1 - Zuständigkeiten sind OM-Objekte vom Typ RY. [Seite 193]
9.5 - 7.5 Regeln und Regelauflösung [Seite 194]
9.5.1 - 7.5.1 Konzept [Seite 194]
9.5.2 - 7.5.2 Regeldefinition [Seite 195]
9.5.3 - 7.5.3 Regeln mit Funktionsbausteinen [Seite 196]
9.5.3.1 - Listing 7-1 Beispiel für Regel-FBS [Seite 196]
9.5.3.2 - Spezialfall: Regel mit Auswertungswegen: RH_GET_STRUCTURE [Seite 196]
9.5.4 - 7.5.4 Regeln mit Zuständigkeiten [Seite 197]
9.5.4.1 - Abb. 7-5 Regel mit Auswertungsweg [Seite 197]
9.5.4.2 - Abb. 7-6 Definition des Auswertungsweges WF_ORGUN mit TA OOAW [Seite 197]
9.5.4.3 - Tab. 7-3 Zuständigkeiten nach Name und Kredithöhe [Seite 198]
9.5.4.4 - Abb. 7-7 Anlegen von Zuständigkeiten innerhalb der Regelpflege (Tabellensicht) [Seite 198]
9.5.4.5 - Abb. 7-8 Bearbeiterzuordnung bei Zuständigkeiten [Seite 199]
9.5.4.6 - Abb. 7-9 Test der Regelauflösung für hohe Beträge [Seite 199]
9.5.4.7 - Abb. 7-10 Datenfluss vom Workflow-Container (Vertragsreferenz) in den Regelcontainer [Seite 200]
9.6 - 7.6 Dynamische Eingangskörbe [Seite 200]
9.6.1 - 7.6.1 Aufgabenstellung [Seite 200]
9.6.2 - 7.6.2 Das Prinzip der dynamischen Eingangskörbe [Seite 201]
9.6.2.1 - Abb. 7-11 Aufbau und Funktion eines dynamischen Eingangskorbes [Seite 202]
9.6.3 - 7.6.3 Pflege der Bestandteile dynamischer Eingangskörbe [Seite 203]
9.6.3.1 - Abb. 7-12 Eingangskörbe als Org-Einheit mit Planstelle und Aufgabengruppe [Seite 203]
9.6.3.2 - Abb. 7-13 Zuordnung von Benutzern zu Planstelle über TA PPSM [Seite 203]
9.6.3.3 - Abb. 7-14 Dynamische Zuordnung Benutzer zu Planstelle [Seite 204]
9.6.3.4 - Abb. 7-15 Benutzer, die die Vertretung für die Planstelle übernehmen dürfen [Seite 204]
9.6.3.5 - Abb. 7-16 Vertretung für einen/mehrere Eingangskörbe übernehmen [Seite 205]
10 - 8 Standardaufgaben anlegen und verwenden [Seite 207]
10.1 - 8.1 Konzept Standardaufgaben [Seite 207]
10.1.1 - Abb. 8-1 Standardaufgaben mit ihren Bestandteilen [Seite 207]
10.2 - 8.2 Standardaufgaben anlegen [Seite 208]
10.2.1 - Abb. 8-2 Anlegen einer Standardaufgabe zvertr_aend [Seite 208]
10.2.2 - 8.2.1 Objekttyp und Methode [Seite 208]
10.2.2.1 - Standardaufgaben sind atomare Bestandteile des Workflows. [Seite 209]
10.2.2.2 - Synchrone Standardaufgaben rufen synchrone Methoden [Seite 209]
10.2.2.2.1 - Synchrone Aufgaben entsprechen FBS-Aufrufen. [Seite 209]
10.2.2.3 - Asynchrone Standardaufgaben rufen asynchrone Methoden [Seite 209]
10.2.3 - 8.2.2 Hintergrundaufgabe und Dialogaufgabe [Seite 210]
10.2.4 - 8.2.3 Verarbeitungsende bestätigen [Seite 211]
10.2.4.1 - Listing 8-1 Genehmigungsmethode für Verträge [Seite 212]
10.2.5 - 8.2.4 Container und Initialwerte [Seite 212]
10.2.5.1 - Abb. 8-3 Anlegen der Container- elemente auf Anfrage [Seite 213]
10.2.5.2 - Abb. 8-4 Aufgabencontainer [Seite 213]
10.2.5.3 - Abb. 8-5 Leerer (= automatischer) Datenfluss zwischen Methode und Aufgabe [Seite 214]
10.2.6 - 8.2.5 Aufgabe mit Rückgabewert [Seite 214]
10.2.6.1 - Abb. 8-6 Grunddaten der Aufgabe zvertr_gene [Seite 215]
10.2.6.2 - Abb. 8-7 Container der Aufgabe zvert_gene [Seite 216]
10.2.6.3 - Abb. 8-8 Statusfestwerte als aktivierbare Ausgänge am Genehmigungsschritt [Seite 216]
10.2.6.4 - Abb. 8-9 Anlegen von _WI_RESULT [Seite 217]
10.2.6.5 - Abb. 8-10 Container mit Rückgabeelement _WI_RESULT [Seite 217]
10.2.7 - 8.2.6 Workitem-Text [Seite 217]
10.2.7.1 - Abb. 8-11 Workitem-Text mit Parametern [Seite 218]
10.2.7.2 - Abb. 8-12 Auswahl eines Ausdruckes aus dem Aufgabencontainer [Seite 218]
10.2.8 - 8.2.7 Beschreibung [Seite 218]
10.2.8.1 - Langtext zur Beschreibung [Seite 219]
10.2.8.1.1 - Langtext zur Beschreibung [Seite 219]
10.2.8.2 - Langtext bei Terminüberschreitung [Seite 219]
10.2.8.2.1 - Langtext bei Terminüberschreitung [Seite 219]
10.2.8.3 - Langtext zur Endebenachrichtigung [Seite 219]
10.2.8.3.1 - Langtext zur Endebenachrichtigung [Seite 219]
10.2.9 - 8.2.8 Auslösende Ereignisse [Seite 219]
10.2.10 - 8.2.9 Beendende Ereignisse [Seite 220]
10.2.10.1 - Abb. 8-13 Auslösende Ereignisse einer Aufgabe [Seite 220]
10.2.10.2 - Abb. 8-14 Beendende Ereignisse einer Aufgabe [Seite 221]
10.2.11 - 8.2.10 Mögliche Bearbeiter [Seite 221]
10.2.11.1 - Abb. 8-15 Eigenschaften einer Standardaufgabe [Seite 223]
10.2.11.2 - Tab. 8-1 Unterschiedliche Arten des Weiterleitens [Seite 223]
10.2.12 - 8.2.11 Zuständige Bearbeiter - Defaultregeln [Seite 223]
10.2.12.1 - Abb. 8-16 Defaultregeln [Seite 223]
10.3 - 8.3 Standardaufgaben starten [Seite 224]
10.3.1 - 8.3.1 Start aus Workflow (Standardfall) [Seite 224]
10.3.2 - 8.3.2 Start über Ereignis [Seite 224]
10.3.3 - 8.3.3 Start aus Programm [Seite 224]
10.3.3.1 - Listing 8-2 BOR-Standardaufgabe aus Programm starten [Seite 224]
10.3.3.2 - Listing 8-3 CL-Standardaufgabe aus Programm starten [Seite 226]
11 - 9 Workflow-Muster anlegen und verwenden [Seite 227]
11.1 - 9.1 Konzept Workflow-Muster [Seite 227]
11.1.1 - Workflow-Muster bilden Geschäftsprozesse ab. [Seite 227]
11.1.2 - Grafische Workflow- Definition [Seite 228]
11.2 - 9.2 Workflow-Interface [Seite 228]
11.2.1 - Abb. 9-1 Anlegen eines Workflow- Musters - Grunddaten [Seite 228]
11.2.2 - 9.2.1 Workflow-Container [Seite 229]
11.2.2.1 - Führende Objektreferenz bestimmt die Art des Workflows. [Seite 229]
11.2.2.2 - Abb. 9-2 Anlegen eines Workflow- Musters - Container [Seite 230]
11.2.2.3 - Abb. 9-3 Führendes Objekt als CL-Referenz anlegen [Seite 230]
11.2.3 - 9.2.2 Initialwerte [Seite 231]
11.2.3.1 - Abb. 9-4 Initialwert zur Vetragsreferenz angeben [Seite 231]
11.2.4 - 9.2.3 Aufgabentext [Seite 231]
11.2.5 - 9.2.4 Aufgabenbeschreibung [Seite 231]
11.2.5.1 - Beschreibungen für Workflow [Seite 231]
11.2.6 - 9.2.5 Auslösende Ereignisse [Seite 232]
11.2.6.1 - Datenfluss Startereignis à Workflow [Seite 232]
11.2.6.2 - Abb. 9-5 Auslösende Ereignisse eines Workflow-Musters [Seite 232]
11.3 - 9.3 Workflow-Definition [Seite 233]
11.3.1 - 9.3.1 Die Arbeit mit dem grafischen Editor [Seite 233]
11.3.1.1 - Teilfenster des grafischen Workflow-Editors [Seite 233]
11.3.1.2 - Abb. 9-6 Grafischer Workflow- Editor [Seite 234]
11.3.2 - 9.3.2 Der Bedingungseditor [Seite 235]
11.3.2.1 - Abb. 9-7 Bedingungseditor wird an verschiedenen Verzweigungsstellen eingesetzt. [Seite 235]
11.3.3 - 9.3.3 Übersicht Schritttypen [Seite 236]
11.3.3.1 - Tab. 9-1 Schritttypen der Workflow-Definition [Seite 236]
11.3.4 - 9.3.4 Schritttyp Aktivität [Seite 238]
11.3.4.1 - Reiter »Steuerung« [Seite 238]
11.3.4.2 - Reiter »Details« [Seite 239]
11.3.4.2.1 - Abb. 9-8 Schritttyp »Aktivität« - Reiter »Steuerung« [Seite 239]
11.3.4.2.2 - Abb. 9-9 Schritttyp »Aktivität« - Reiter »Details« [Seite 239]
11.3.4.3 - Reiter »Ausgänge« [Seite 240]
11.3.4.3.1 - Folgeereignisse bilden Verzweigungen im Workflow. [Seite 240]
11.3.4.3.2 - Abb. 9-10 Schritttyp »Aktivität« - Reiter »Ausgänge« [Seite 240]
11.3.5 - 9.3.5 Schritttyp Webaktivität [Seite 241]
11.3.6 - 9.3.6 Schritttyp Mailversand [Seite 241]
11.3.7 - 9.3.7 Schritttyp Formular [Seite 242]
11.3.7.1 - Abb. 9-11 Formularangaben im Schritttyp »Formular« [Seite 242]
11.3.7.2 - Listing 9-1 Generierte Forms bei Formularen [Seite 242]
11.3.8 - 9.3.8 Schritttyp Benutzerentscheidung [Seite 243]
11.3.8.1 - Nie generische Entscheidungsaufgabe verwenden [Seite 243]
11.3.8.2 - Abb. 9-12 Schritttyp »Benutzerentscheidung« [Seite 243]
11.3.8.3 - Abb. 9-13 Schritttyp »Benutzer- entscheidung« in der Workflow-Definition [Seite 244]
11.3.9 - 9.3.9 Schritttyp Warten auf Ereignis [Seite 244]
11.3.9.1 - Abb. 9-14 Schritttyp »Warten auf Ereignis« [Seite 244]
11.3.10 - 9.3.10 Schritttyp Bedingung [Seite 245]
11.3.10.1 - Listing 9-2 Pseudocode Schritttyp »Bedingung« [Seite 245]
11.3.10.2 - Abb. 9-15 Schritttyp »Bedingung« [Seite 245]
11.3.11 - 9.3.11 Schritttyp Mehrfachbedingung [Seite 246]
11.3.11.1 - Abb. 9-16 Schritttyp »Bedingung« in der Workflow-Definition [Seite 246]
11.3.11.2 - Listing 9-3 Pseudocode Schritttyp »Mehrfachbedingnung« [Seite 246]
11.3.11.3 - Abb. 9-17 Schritttyp »Mehrfachbedingung« [Seite 246]
11.3.11.4 - Abb. 9-18 Schritttyp »Mehrfachbedingung« in der Workflow-Definition [Seite 247]
11.3.12 - 9.3.12 Schritttyp Paralleler Abschnitt [Seite 247]
11.3.12.1 - Listing 9-4 Pseudocode Schritttyp »Paralleler Abschnitt« [Seite 247]
11.3.12.2 - Abb. 9-19 Schritttyp »Paralleler Abschnitt« [Seite 248]
11.3.12.3 - Abb. 9-20 Schritttyp »Paralleler Abschnitt« (1 aus 2) in der Workflow-Definition [Seite 248]
11.3.13 - 9.3.13 Schritttyp UNTIL-Schleife [Seite 248]
11.3.13.1 - Listing 9-5 Pseudocode Schritttyp »UNTIL-Schleife« [Seite 248]
11.3.13.2 - Abb. 9-21 UNTIL-Schleife [Seite 249]
11.3.13.3 - Abb. 9-22 UNTIL-Schleife in der Workflow-Definition [Seite 249]
11.3.14 - 9.3.14 Schritttyp WHILE-Schleife [Seite 250]
11.3.14.1 - Listing 9-6 Pseudocode Schritttyp »WHILE-Schleife« [Seite 250]
11.3.14.2 - Abb. 9-23 Schritttyp »WHILE-Schleife« [Seite 250]
11.3.14.3 - Abb. 9-24 WHILE-Schleife in der Workflow-Definition [Seite 251]
11.3.15 - 9.3.15 Schritttyp Ablaufsteuerung [Seite 251]
11.3.15.1 - Abb. 9-25 Schritttyp »Ablaufsteuerung« - Funktion »Workflow beenden« [Seite 252]
11.3.16 - 9.3.16 Schritttyp Containeroperation [Seite 252]
11.3.16.1 - Abb. 9-26 Schritttyp »Containeroperation« [Seite 252]
11.3.17 - 9.3.17 Schritttyp Ereigniserzeuger [Seite 253]
11.3.17.1 - Abb. 9-27 Schritttyp »Ereigniserzeuger« [Seite 253]
11.3.18 - 9.3.18 Schritttyp Ad-hoc-Anker [Seite 253]
11.3.19 - 9.3.19 Schritttyp Block [Seite 253]
11.3.20 - 9.3.20 Schritttyp Lokaler Workflow [Seite 254]
11.4 - 9.4 Container in der Workflow-Definition [Seite 254]
11.4.1 - Abb. 9-28 Datenflüsse im Workflow [Seite 254]
11.5 - 9.5 Workflow-Grunddaten [Seite 255]
11.5.1 - Abb. 9-29 Workflow-Grunddaten: versionsunabhängig [Seite 255]
11.5.2 - 9.5.1 Versionsunabhängig (Aufgabe) [Seite 256]
11.5.2.1 - Reiter »Grunddaten« [Seite 256]
11.5.2.1.1 - Abb. 9-30 Versionsunabhängig: Grunddaten [Seite 256]
11.5.2.2 - Reiter »Beschreibung« [Seite 256]
11.5.2.2.1 - Abb. 9-31 Versionsunabhängig: Beschreibung [Seite 256]
11.5.2.3 - Reiter »Startereignisse« [Seite 256]
11.5.2.3.1 - Abb. 9-32 Versionsunabhängig: Startereignisse [Seite 257]
11.5.2.3.2 - Abb. 9-33 Versionsunabhängig: Startereignisse, Bedingung [Seite 257]
11.5.2.4 - Reiter »Versionsübersicht« [Seite 257]
11.5.2.4.1 - Abb. 9-34 Versionsunabhängig: Versionsübersicht [Seite 257]
11.5.2.5 - Reiter »Funktionsgruppe« [Seite 258]
11.5.3 - 9.5.2 Versionsabhängig (aktuelle Workflow-Version) [Seite 258]
11.5.3.1 - Abb. 9-35 Versionsabhängig: Steuerung: Persistenzprofil [Seite 258]
11.5.3.2 - Reiter »Steuerung« [Seite 258]
11.5.3.3 - Reiter »Workfloweinstellungen« [Seite 259]
11.5.3.4 - Reiter »Bearbeiter« [Seite 259]
11.5.3.5 - Reiter »Reviewer« [Seite 259]
11.5.3.6 - Reiter »Benachrichtigung« [Seite 259]
11.5.3.7 - Reiter »WebFlow« [Seite 259]
11.5.3.8 - Reiter »Ereignisse« [Seite 259]
11.5.3.8.1 - Abb. 9-36 Versionsabhängig: Ereignisse [Seite 260]
11.5.3.9 - Reiter »Lokale Ereignisse« [Seite 260]
11.5.3.10 - Reiter »Programmier-Exits« [Seite 260]
11.5.3.11 - Reiter »Eigenschaften« [Seite 261]
11.5.3.12 - Reiter »Aufgaben« [Seite 261]
11.5.3.13 - Reiter »Technische Informationen« [Seite 261]
11.5.3.14 - Reiter »Änderungsdaten« [Seite 261]
11.6 - 9.6 Einfacher Vertrags-Workflow [Seite 261]
11.6.1 - 9.6.1 Technische Workflow-Beschreibung und Pseudocode [Seite 261]
11.6.1.1 - Listing 9-7 Pseudocode Vertrags-Workflow [Seite 262]
11.6.2 - 9.6.2 Workflow-Muster zao_main [Seite 262]
11.6.2.1 - Start des Builders mit leerem Workflow [Seite 262]
11.6.2.1.1 - Abb. 9-37 Anlegen zao_main: Start mit leerem Workflow [Seite 262]
11.6.2.2 - Einfügen der UNTIL-Schleife [Seite 263]
11.6.2.2.1 - Abb. 9-38 Anlegen zao_main: UNTIL-Schleife mit Bedingung [Seite 263]
11.6.2.2.2 - Abb. 9-39 Anlegen zao_main: UNTIL-Schleife: Bedingung [Seite 263]
11.6.2.3 - Schritt einfügen für Aufgabe zao_gene [Seite 264]
11.6.2.3.1 - Abb. 9-40 Workflow zao_main: Schritt Vertrag genehmigen: Steuerung [Seite 264]
11.6.2.3.2 - Abb. 9-41 Workflow zao_main: Schritt Vertrag genehmigen: Ausgänge [Seite 264]
11.6.2.4 - Schritt einfügen für Aufgabe zao_aend [Seite 265]
11.6.2.4.1 - Abb. 9-42 Anlegen zao_main: nach Einfügen des Genehmigungsschrittes [Seite 265]
11.6.2.4.2 - Abb. 9-43 Workflow zao_main: Schritt Vertrag ändern nach Ablehnung: Steuerung [Seite 265]
11.6.2.4.3 - Abb. 9-44 Anlegen zao_main: fertiger Workflow mit Blockstruktur [Seite 266]
11.7 - 9.7 Bearbeiterfindung im Workflow [Seite 267]
11.7.1 - 9.7.1 Allgemeines [Seite 267]
11.7.2 - 9.7.2 Definition der möglichen Bearbeiter [Seite 267]
11.7.2.1 - Abb. 9-45 Bearbeiterzuordnung pflegen [Seite 268]
11.7.3 - 9.7.3 Zuständige und ausgeschlossene Bearbeiter [Seite 268]
11.7.3.1 - Sonderfälle [Seite 269]
11.7.3.1.1 - Abb. 9-46 Definition der zuständigen und der ausgeschlossenen Bearbeiter [Seite 269]
11.7.4 - 9.7.4 Ermittlung der Empfänger [Seite 269]
11.7.4.1 - Abb. 9-47 Ermittlung der Empfänger eines Workitems [Seite 270]
11.8 - 9.8 Arbeiten mit dem Business Workflow Explorer [Seite 270]
11.8.1 - 9.8.1 Zweck des Business Workflow Explorer [Seite 270]
11.8.2 - 9.8.2 Auswahl des Suchbereiches [Seite 271]
11.8.2.1 - Abb. 9-48 Angabe der Objekttypen im Business Workflow Explorer [Seite 271]
11.8.3 - 9.8.3 Anzeige und Bearbeitung von Objekten [Seite 272]
11.8.3.1 - Abb. 9-49 Anzeige von Objekttypen im Business Workflow Explorer [Seite 272]
11.9 - 9.9 Lesen der Workflow-Definitionen [Seite 272]
11.9.1 - Workflow-Definitionen in ABAP auswerten [Seite 272]
11.9.2 - Listing 9-8 Workflow-Muster mit Aufgaben auflisten [Seite 273]
11.9.3 - Abb. 9-50 Liste von Workflow- Mustern mit Aufgaben und ABAP-Methoden [Seite 274]
11.10 - 9.10 Starten von Workflows [Seite 275]
11.10.1 - 9.10.1 Start von Workflows über ABAP OO [Seite 275]
11.10.1.1 - Listing 9-9 Workflow aus Programm direkt starten [Seite 275]
11.10.2 - 9.10.2 Start von Workflows über Ereignisse [Seite 276]
12 - 10 Klassenbasierte Techniken im Workflow [Seite 277]
12.1 - 10.1 SAP-Klassen im Workflow-Umfeld [Seite 277]
12.1.1 - Tab. 10-1 Klassengruppen für SAP-Klassen im Workflow-Kontext [Seite 277]
12.2 - 10.2 Iterator-Klassen, Factory-Klassen und Utility-Klassen [Seite 278]
12.2.1 - 10.2.1 Iterator-Klassen [Seite 278]
12.2.1.1 - Abb. 10-1 Attribute der BasisIterator-Klasse CL_SWF_UTL_ITERATOR [Seite 278]
12.2.1.2 - Abb. 10-2 Tabellentyp der BasisIterator-Klasse CL_SWF_UTL_ITERATOR [Seite 278]
12.2.1.3 - Abb. 10-3 Methoden der BasisIterator-Klasse CL_SWF_UTL_ITERATOR [Seite 279]
12.2.1.4 - Listing 10-1 Beispielprogramm Iterator [Seite 279]
12.2.1.5 - Listing 10-2 Iteration über Containerelemente [Seite 281]
12.2.2 - 10.2.2 Factory-Klassen und Factory-Methoden [Seite 281]
12.2.2.1 - Tab. 10-2 Factory-Klassen im Workflow-Kontext [Seite 281]
12.2.2.2 - Abb. 10-4 Singletonklasse [Seite 282]
12.2.2.3 - Listing 10-3 Methode get_container der Klasse cl_swf_tst_ container_singleton [Seite 283]
12.2.2.4 - Listing 10-4 Drei Containerreferenzen zeigen auf dasselbe Objekt. [Seite 283]
12.2.2.5 - Abb. 10-5 Drei Containerreferenzen auf dasselbe Containerobjekt [Seite 283]
12.2.3 - 10.2.3 Utility-Klassen [Seite 283]
12.2.3.1 - Tab. 10-3 Utility-Klassen im Workflow-Kontext [Seite 284]
12.3 - 10.3 Terminüberwachung [Seite 284]
12.3.1 - 10.3.1 Problem und Lösungsprinzip [Seite 284]
12.3.2 - 10.3.2 Standardfall mit Deadline-Workitems [Seite 284]
12.3.2.1 - Deadline-Workitem [Seite 285]
12.3.2.2 - Abb. 10-6 Spätester Start (Standardfall) [Seite 285]
12.3.3 - 10.3.3 Berechnete Termine mit Deadline-Workitem [Seite 286]
12.3.3.1 - Abb. 10-7 Eingangskorb mit Deadline-Workitem zur Erinnerung (Release 4.0) [Seite 286]
12.3.4 - 10.3.4 Obsolet setzen eines Workitems [Seite 287]
12.3.4.1 - Abb. 10-8 Berechnete Termine für den spätesten Start [Seite 287]
12.3.4.2 - Kalenderfunktionen zur Berechnung von Terminen [Seite 287]
12.3.4.3 - Abb. 10-9 Workflow mit modellierter Fristüberschreitung und Obsoletausnahme [Seite 288]
12.4 - 10.4 Nebenmethoden [Seite 288]
12.4.1 - 10.4.1 Problem und Lösungsprinzip [Seite 288]
12.4.2 - 10.4.2 Methode zur Vertragsanzeige [Seite 289]
12.4.2.1 - Funktionsbaustein REUSE_ALV_LIST_DISPLAY [Seite 289]
12.4.2.2 - Listing 10-5 Nebenmethode zur Anzeige aller Verträge eines Kunden [Seite 289]
12.4.3 - 10.4.3 Eintrag als Nebenmethode in die Aktivität [Seite 289]
12.4.3.1 - Abb. 10-10 Eintrag einer Methode als Nebenmethode [Seite 289]
12.4.4 - 10.4.4 Amodaler Aufruf der Nebenmethode [Seite 290]
12.4.4.1 - Abb. 10-11 Aufruf einer Vertragsliste als amodale Nebenmethode [Seite 290]
12.5 - 10.5 Objektreferenzen in die Workitem-Vorschau einstellen [Seite 291]
12.5.1 - 10.5.1 Referenzen auf bestehende Workflow-Klassen [Seite 291]
12.5.1.1 - Abb. 10-12 Objektliste _Adhoc_Objects nur für BOR-Referenzen [Seite 291]
12.5.1.2 - Abb. 10-13 Versorgen einer Referenz für die Workitem-Vorschau [Seite 291]
12.5.1.3 - Abb. 10-14 Workitem-Vorschau für Ratenplananzeige [Seite 292]
12.5.2 - 10.5.2 Referenzen auf spezielle Anzeigeklassen [Seite 292]
12.5.2.1 - Überspringen von Dynpros mit Batch-Input [Seite 292]
12.5.2.2 - Abb. 10-15 Zieldarstellung für Einsprung in das CIC [Seite 293]
12.5.2.3 - Listing 10-6 Generierter FBS mit Batch-Input [Seite 294]
12.5.2.4 - Abb. 10-16 Klasse ZCL_CICLINK für CIC-Link [Seite 295]
12.5.2.5 - Listing 10-7 Quelltext der Klasse ZCL_CICLINK [Seite 296]
12.6 - 10.6 Programmier-Exits für Workitems [Seite 297]
12.6.1 - 10.6.1 Das Interface IF_SWF_IFS_WORKITEM_EXIT [Seite 297]
12.6.1.1 - Abb. 10-17 Workitem-Exit [Seite 297]
12.6.2 - 10.6.2 Logging mit CHECK-POINT-Gruppe [Seite 297]
12.6.2.1 - Abb. 10-18 CHECK-POINT-Gruppe ZVERTRAG mit Aktivierungen [Seite 298]
12.6.2.2 - Abb. 10-19 Parameter im Workitem-Exit [Seite 298]
12.6.2.3 - Abb. 10-20 Mögliche Events für den Aufruf des Workitem-Exits [Seite 298]
12.6.2.4 - Abb. 10-21 Interface IF_WAPI_WORKITEM_ CONTEXT [Seite 299]
12.6.2.5 - Listing 10-8 Workitem-Exit mit Logging [Seite 299]
12.6.2.6 - Abb. 10-22 Anzeige der Log-Einträge zum Userexit [Seite 300]
12.6.3 - 10.6.3 Automatisches Zurücklegen eines Workitems [Seite 300]
12.6.3.1 - Listing 10-9 Workitem-Exit für das Zurücklegen eines Workitems [Seite 301]
12.6.3.2 - Listing 10-10 Bacht-Report zum Zurücklegen eines Workitems [Seite 301]
12.7 - 10.7 Fortgeschrittene Workflow-Definition [Seite 302]
12.7.1 - 10.7.1 Lokale Ereignisse und Ausnahmen [Seite 302]
12.7.1.1 - Abb. 10-23 Workflow-Grunddaten: Versionsabhängig: Lokale Ereignisse [Seite 303]
12.7.1.2 - Tab. 10-4 Schritttypen für lokale Ereignisse und Ausnahmen [Seite 303]
12.7.2 - 10.7.2 Lokale Ereignisse und komplexe Bedingungen [Seite 303]
12.7.2.1 - Abb. 10-24 Komplexe Bedingung modelliert über lokales Ereignis [Seite 304]
12.7.2.2 - Abb. 10-25 Schritt D wartet auf Schritt A im anderen Parallelzweig [Seite 304]
12.7.3 - 10.7.3 TRY/CATCH im Workflow: Blöcke und Ausnahmen [Seite 305]
12.7.4 - 10.7.4 Lokale Workflows und lokale Ereignisse [Seite 305]
12.8 - 10.8 Dynamische Blöcke [Seite 306]
12.8.1 - 10.8.1 Dynamisch sequenzieller Block = Workflow-Iterator [Seite 307]
12.8.1.1 - Abb. 10-26 Dynamisch sequenzieller Block als eingebetteter Subworkflow [Seite 307]
12.8.2 - 10.8.2 Dynamisch paralleler Block [Seite 307]
12.8.2.1 - Abb. 10-27 Dynamisch paralleler Block als eingebetteter Subworkflow [Seite 307]
12.8.3 - 10.8.3 Beispiel: Bewertungs-Workflow für Vertrag [Seite 308]
12.8.3.1 - Abb. 10-28 Dynamisch-sequenzielle Bearbeitung der UserListe [Seite 308]
12.8.3.2 - Abb. 10-29 Datenfluss zum dynamisch-sequenziellen Block [Seite 309]
12.8.3.3 - Abb. 10-30 Dynamisch-paralleler Block zur Vertragsbewertung [Seite 309]
12.8.3.4 - Abb. 10-31 Datenfluss zwischen Workflow-Container und Blockcontainer [Seite 310]
12.8.3.5 - Abb. 10-32 Abbruchbedingung für dynamisch-parallelen Block [Seite 310]
12.8.3.6 - Abb. 10-33 SBE zur Vertrags- bewertung mit Link zum Vertrag [Seite 311]
12.8.3.7 - Abb. 10-34 Protokoll eines Workflows mit Blöcken [Seite 311]
12.9 - 10.9 Ad-hoc-Funktionen im Workflow [Seite 312]
12.9.1 - 10.9.1 Ad-hoc-Aufgabenauswahl [Seite 312]
12.9.1.1 - Abb. 10-35 Maschinelle Aufgabenbestimmung [Seite 312]
12.9.1.2 - Listing 10-11 Statische, funktionale Methode zur Bestimmung des Workflow-Musters [Seite 313]
12.9.1.3 - Abb. 10-36 Ausdruck für Aufgabe ist funktionale Methode. [Seite 313]
12.9.1.4 - Manuelle Ad-hoc-Aufgabenauswahl [Seite 314]
12.9.1.4.1 - Abb. 10-37 Aufgabenauswahl aus einer passenden Aufgabengruppe [Seite 314]
12.9.1.4.2 - Abb. 10-38 Ausdruck für Ad-hoc- Aufgabe ist Containervariable [Seite 314]
12.9.2 - 10.9.2 Ad-hoc-Bearbeiterauswahl [Seite 314]
12.9.2.1 - Abb. 10-39 Datenfluss von/zum Dialog für Ad-hoc- Bearbeiterauswahl. [Seite 315]
12.9.3 - 10.9.3 Ad-hoc-Workflow einbinden [Seite 316]
12.9.3.1 - Abb. 10-40 Dialog zur Ad-hoc- Bearbeiterauswahl [Seite 316]
12.9.3.2 - Abb. 10-41 Liste der Ad-hoc- Workflows in einem Schritt »Ad-hoc-Anker« [Seite 316]
12.9.3.3 - Abb. 10-42 Grafisches Workflow- Protokoll vor der Ersetzung [Seite 317]
12.10 - 10.10 Reaktion eines Workflows auf externe Ereignisse [Seite 318]
12.10.1 - Abb. 10-43 Ersetzter Ad-hoc-Anker im Workflow-Protokoll [Seite 318]
12.10.2 - 10.10.1 Standardreaktionen über Grunddaten des Workflows [Seite 319]
12.10.2.1 - Abb. 10-44 Workflow abbrechen bei Ereignis ZCL_VERTRAG->CANCELLED [Seite 319]
12.10.2.2 - Abb. 10-45 Instanzkopplung für Ereignisempfang [Seite 320]
12.10.3 - 10.10.2 Modellierte Reaktionen über Ereignisempfänger [Seite 320]
12.10.3.1 - Abb. 10-46 Warten auf Ereignis ZCL_VERTRAG->ACTIVATED [Seite 321]
12.10.3.2 - Abb. 10-47 Frist für Warteschritt auswerten (modelliert) [Seite 321]
12.10.3.3 - Abb. 10-48 Ereignisempfänger mit Fristüberwachung [Seite 322]
12.11 - 10.11 Klassenverwendung im Workflow ohne Standardaufgaben [Seite 322]
12.11.1 - 10.11.1 Konzept [Seite 322]
12.11.1.1 - Tab. 10-5 Klassenaufrufe im Workflow ohne Standardaufgaben [Seite 323]
12.11.2 - 10.11.2 %-%-Zugriff ohne IF_WORKFLOW [Seite 323]
12.11.2.1 - Abb. 10-49 Ausdruck mit funktionaler Methode in Containerzuweisung [Seite 324]
12.11.2.2 - Abb. 10-50 Funktionale Methode mit Parametervariablen im Datenfluss [Seite 324]
12.11.3 - 10.11.3 &-&-Zugriff über ungebundene Containerreferenzen [Seite 324]
12.11.4 - 10.11.4 &-&-Zugriff über gebundene Containerreferenzen [Seite 325]
12.11.4.1 - Abb. 10-51 Ungebundene Klassenreferenz im Container [Seite 325]
12.11.4.2 - Listing 10-12 Pseudoinstanziierung [Seite 325]
12.11.4.3 - Abb. 10-52 Instanziierung (= Initiali- sierung) der Pseudo- referenz der Utility-Klasse [Seite 326]
12.11.4.4 - Abb. 10-53 Kompletter (ergänzter) Ausdruck [Seite 326]
12.11.4.5 - Abb. 10-54 Ausdruck mit funktionaler Methode via Referenz im Datenfluss [Seite 327]
12.11.5 - 10.11.5 Geschachtelter Zugriff mit %-% und &-& [Seite 327]
12.11.5.1 - Abb. 10-55 Geschachtelter Ausdruck in einer Bedingung [Seite 327]
12.11.6 - 10.11.6 Methoden mit mehreren Exportparametern [Seite 328]
12.11.6.1 - Listing 10-13 Nicht funktionale Methode mit zwei alternativen Exportparametern [Seite 328]
12.11.6.2 - Leider nicht möglich! [Seite 328]
12.11.7 - 10.11.7 Objektreferenzen on-the-Flight [Seite 329]
12.11.7.1 - Abb. 10-56 Aufruf der Methode ZCL_CALC.POWER in einem Datenfluss [Seite 329]
12.11.7.2 - Abb. 10-57 Objekt on-the-Flight im Datenfluss [Seite 329]
13 - 11 Klassenbasierte Eigenentwicklungen im Workflow [Seite 331]
13.1 - 11.1 Utility-Klasse ZCL_DATE: Datumsberechnung auf Kalendern [Seite 331]
13.1.1 - 11.1.1 Verwendung von Datumsberechnungen [Seite 331]
13.1.2 - 11.1.2 Implementierung von ZCL_DATE [Seite 331]
13.1.2.1 - Listing 11-1 Klasse ZCL_DATE, Methode DATE [Seite 331]
13.1.2.2 - Listing 11-2 Klasse ZCL_DATE, Methode TIME [Seite 333]
13.1.2.3 - Abb. 11-1 Zeitkonstanten der Klasse ZCL_DATE [Seite 334]
13.1.3 - 11.1.3 Verwendung von ZCL_DATE in Ausdrücken [Seite 334]
13.1.3.1 - Abb. 11-2 Verwendung von ZCL_DATE im Vorlagetermin [Seite 334]
13.1.3.2 - Abb. 11-3 Datumsberechnung in die Vergangenheit [Seite 335]
13.1.3.3 - Klassenausdrücke mit % ohne IF_WORKFLOW [Seite 335]
13.2 - 11.2 Utility-Klasse ZCL_COND: komplexe Bedingungen [Seite 335]
13.2.1 - 11.2.1 Konzept komplexer Bedingungen im Workflow [Seite 335]
13.2.1.1 - Abbildung beliebiger Bedingungen [Seite 335]
13.2.2 - 11.2.2 Tabelle ZCONDITION [Seite 336]
13.2.2.1 - Abb. 11-4 Workitems: Tabelle für Startbedingungen [Seite 336]
13.2.3 - 11.2.3 Implementierung von ZCL_COND [Seite 336]
13.2.3.1 - Listing 11-3 Klasse ZCL_COND, Setzen einer Bedingung mit SET [Seite 336]
13.2.3.2 - Listing 11-4 Klasse ZCL_COND, Prüfen einer Bedingung mit CHECK [Seite 337]
13.2.4 - 11.2.4 Verwendung von ZCL_COND in ZCL_VERTRAG [Seite 337]
13.2.4.1 - Listing 11-5 Methode SETCOND der Klasse ZCL_COND [Seite 337]
13.2.4.2 - Listing 11-6 Methode CHECKCOND der Klasse ZCL_COND [Seite 338]
13.2.5 - 11.2.5 Setzen und Prüfen von Vertragsbedingungen [Seite 338]
13.2.5.1 - Abb. 11-5 Workflow mit Setzen einer Bedingung via Containeroperation [Seite 339]
13.2.5.2 - Abb. 11-6 Zuweisung zum Setzen einer Bedingung [Seite 339]
13.2.5.3 - Abb. 11-7 Startbedingung am Schritt D [Seite 340]
13.2.5.4 - Abb. 11-8 Nach Start des Workflows [Seite 340]
13.2.5.5 - Abb. 11-9 Nach Beenden des Schrittes A, vor dem nächsten Lauf von SWWCOND [Seite 341]
13.2.5.6 - Abb. 11-10 Bedingung »A_FERTIG« wurde in die Tabelle geschrieben. [Seite 341]
13.2.5.7 - Abb. 11-11 Nach dem nächstem Lauf des Reports SWWCOND [Seite 342]
13.2.6 - 11.2.6 Aufruf von ZCL_COND in Ausdrücken [Seite 343]
13.2.6.1 - Abb. 11-12 Direkter Aufruf der Klasse ZCL_COND [Seite 343]
13.3 - 11.3 Utility-Klasse ZCL_CONST: Datenbankkonstanten [Seite 343]
13.3.1 - 11.3.1 Konzept »variabler« Konstanten [Seite 343]
13.3.2 - 11.3.2 Tabelle der Konstanten ZCONST [Seite 344]
13.3.2.1 - Abb. 11-13 DB-Tabelle für Konstanten [Seite 344]
13.3.2.2 - Abb. 11-14 Werte in der Konstantentabelle [Seite 344]
13.3.3 - 11.3.3 Aufruf der Konstanten über ZCL_CONST [Seite 344]
13.3.3.1 - Listing 11-7 Aufruf einer Datums- konstanten über Klasse ZCL_CONST [Seite 345]
13.3.4 - 11.3.4 Implementierung von ZCL_CONST [Seite 345]
13.3.4.1 - Abb. 11-15 Konstanten als statische Read-only-Attribute mit Defaultwert [Seite 345]
13.3.4.2 - Abb. 11-16 Methoden der Konstantenklasse [Seite 345]
13.3.4.3 - Listing 11-8 Lesen der DB-Konstanten in Klasse ZCL_CONST [Seite 346]
13.3.4.4 - Listing 11-9 CONSTRUCTOR ruft Methode REFRESH [Seite 346]
13.3.5 - 11.3.5 Einführen neuer Konstanten [Seite 347]
13.3.5.1 - Abb. 11-17 Testen der statischen Konstantenklasse [Seite 347]
13.3.6 - 11.3.6 Verwendung der Konstanten im Workflow [Seite 347]
13.3.6.1 - Abb. 11-18 Statischer Aufruf von Konstanten [Seite 348]
13.3.6.2 - Listing 11-10 Pseudoinstanziierung der Klasse ZCL_CONST [Seite 348]
13.3.6.3 - Abb. 11-19 Abstrakte Konstantenklasse im Workflow-Container zur Definitionszeit [Seite 348]
13.3.6.4 - Abb. 11-20 Verwendung der Konstantenklasse in einer Containeroperation [Seite 349]
13.4 - 11.4 Utility-Klasse ZCL_SYSTEM: generische Systemmethoden [Seite 349]
13.4.1 - 11.4.1 Inhalt von ZCL_SYSTEM [Seite 349]
13.4.2 - 11.4.2 Erzeugen von Klassenreferenzen im Workflow [Seite 350]
13.4.2.1 - Import via Datenfluss aus dem Ereigniscontainer [Seite 350]
13.4.2.2 - Import aus Instanziierungsmethode einer Klasse [Seite 350]
13.4.2.2.1 - Listing 11-11 Methode zur Instanziierung von Vertragsobjekten [Seite 351]
13.4.2.2.2 - Abb. 11-21 Setzen einer Vertragsreferenz mit ZCL_VERTRAG=>GET_REF [Seite 351]
13.4.2.3 - Import aus spezieller CREATE-Methode der Klasse [Seite 351]
13.4.2.3.1 - Listing 11-12 Klassenmethode zum Neuanlegen eines Vertrages [Seite 352]
13.4.3 - 11.4.3 GENERICINSTANTIATE von CL- und BOR-Referenzen [Seite 352]
13.4.3.1 - Listing 11-13 Methode zum Anlegen von BOR- und CL-Referenzen im Workflow [Seite 352]
13.4.4 - 11.4.4 MAKE_CL_REF für den Aufruf in Ausdrücken [Seite 353]
13.4.4.1 - Listing 11-14 Funktionale Methode ZCL_SYSTEM.MAKE_ CL_REF [Seite 354]
13.4.4.2 - Listing 11-15 Aufruf von MAKE_CL_REF in einer Zuweisung [Seite 354]
13.5 - 11.5 Kommunikation zwischen parallelen Subworkflows [Seite 354]
13.5.1 - 11.5.1 Kommunikation über Ereignisse [Seite 355]
13.5.1.1 - Abb. 11-22 Parameter am Ereignis ANSWER_FOR_EVENT_ FLAGS [Seite 355]
13.5.1.2 - Abb. 11-23 Mainworkflow mit zwei kommunizierenden parallelen Subworkflows [Seite 355]
13.5.1.3 - Abb. 11-24 Kommunikation zwischen zwei parallelen Subworkflows über Ereignisse [Seite 356]
13.5.2 - 11.5.2 ZCL_SYSTEM: Lesen fremder Workflow-Container [Seite 356]
13.5.2.1 - Listing 11-16 Lesen eines anderen Workflow-Containers [Seite 357]
13.5.2.2 - Abb. 11-25 Binding Workflow à Auf- gabe für Leseschritt aus fremdem WF-Container [Seite 359]
13.6 - 11.6 Mails im Workflow-Umfeld [Seite 359]
13.6.1 - 11.6.1 Mail senden mit Schritttyp Mailversand [Seite 359]
13.6.1.1 - Abb. 11-26 Mailinhalt mit Platzhaltern im Schritt Mail versenden [Seite 360]
13.6.1.2 - Abb. 11-27 Erzeugte Mail in SAPconnect (TA SOST) [Seite 360]
13.6.2 - 11.6.2 ZCL_SYSTEM: Mail mit eigenem Absender [Seite 360]
13.6.2.1 - Listing 11-17 Mail aus Workflow mit Absender <> WF-BATCH [Seite 361]
13.6.2.2 - Abb. 11-28 Versendete Mail mit Absender <> WF-BATCH [Seite 362]
13.6.3 - 11.6.3 ZCL_SYSTEM: Mail mit SAP - Text und Containerbezug [Seite 362]
13.6.3.1 - Listing 11-18 Mail aus SAP- Standardtext mit Platzhaltern [Seite 363]
13.6.3.2 - Abb. 11-29 SAPScript-Text ZVERTRAG_GENEHMIGT für Mail bei Vertragsgenehmigung [Seite 365]
13.6.3.3 - Abb. 11-30 Datenfluss zur Aufgabe für Mailversand [Seite 365]
13.6.3.4 - Abb. 11-31 Gesendete Mail in der TA SOST [Seite 366]
13.6.3.5 - Abb. 11-32 Mail mit ersetzten Werten aus dem Workflow-Container [Seite 366]
13.6.4 - 11.6.4 HTML-Mails mit Rückantwort [Seite 367]
13.6.4.1 - Senden einer HTML-Mail [Seite 367]
13.6.4.1.1 - Listing 11-19 Anlegen und versenden einer HTML-Mail [Seite 367]
13.6.4.1.2 - Abb. 11-33 HTML-Mail mit Tasten für Rückantwort [Seite 369]
13.6.4.1.3 - Abb. 11-34 Antwortmail des Genehmigers [Seite 369]
13.6.4.2 - Verarbeitung der Antwortmails [Seite 369]
13.6.4.2.1 - Listing 11-20 Implementierung des Interface IF_INBOUND_EXIT BCS [Seite 369]
13.6.4.2.2 - Abb. 11-35 Eintragen der Klasse ZCL_VERTRAG_ MAILREPLY für Eingangsverarbeitung [Seite 370]
13.6.4.3 - Reaktion auf Ereignisse aus der Mailverarbeitung im Workflow [Seite 371]
13.6.4.3.1 - Abb. 11-36 Beendende Ereignisse an der Genehmigungs- aufgabe [Seite 371]
13.6.4.3.2 - Abb. 11-37 Ausgänge am Genehmigungsschritt [Seite 372]
13.6.4.3.3 - Abb. 11-38 Ablehnung/Genehmigung per Mail/GUI [Seite 372]
14 - 12 Business Workplace als Userinterface [Seite 373]
14.1 - 12.1 Allgemeines zum Business Workplace [Seite 373]
14.1.1 - Abb. 12-1 Outlook-Arbeitsplatz mit dreigeteiltem Fenster [Seite 373]
14.1.2 - Abb. 12-2 SAP Business Workplace mit Dreifelderaufteilung [Seite 374]
14.2 - 12.2 Fenster im Business Workplace [Seite 375]
14.2.1 - Abb. 12-3 SAP Business Workplace, Workitems nicht gruppiert [Seite 375]
14.2.2 - Abb. 12-4 SAP Business Workplace, Ansicht Workflow, gruppiert nach Aufgaben [Seite 375]
14.2.3 - 12.2.1 Das Mappenfenster (1) [Seite 375]
14.2.3.1 - Tab. 12-1 Inhalt und Bedeutung des Mappenfensters [Seite 376]
14.2.3.2 - Gruppierungen im Workplace [Seite 377]
14.2.4 - 12.2.2 Das Inboxfenster (2) [Seite 378]
14.2.4.1 - Abb. 12-5 Inbox im Inboxfenster des Business Workplace [Seite 378]
14.2.4.2 - Abb. 12-6 Drucktasten für Inbox [Seite 378]
14.2.5 - 12.2.3 Das Vorschaufenster (3) [Seite 379]
14.2.5.1 - Anwenderspezifisches Vorschaufenster [Seite 379]
14.2.5.2 - Abb. 12-7 Anwenderspezifische Vorschau [Seite 379]
14.3 - 12.3 Funktionen im Workplace [Seite 380]
14.3.1 - Abb. 12-8 Funktionsbaustein für anwenderspezifische Vorschau [Seite 380]
14.3.2 - 12.3.1 Funktionen der Workflow-Inbox [Seite 380]
14.3.2.1 - Statuswerte von Dialog-Workitems [Seite 380]
14.3.2.2 - Refresh [Seite 381]
14.3.2.2.1 - Abb. 12-9 Statusdiagramm für Dialog-Workitems [Seite 381]
14.3.2.3 - Ausführen [Seite 381]
14.3.2.4 - Anzeigen [Seite 382]
14.3.2.5 - Annehmen [Seite 382]
14.3.2.5.1 - Automatik: Weiterschalten mit Dialog [Seite 382]
14.3.2.6 - Zurücklegen [Seite 382]
14.3.2.7 - Weiterleiten [Seite 382]
14.3.2.8 - Wiedervorlegen [Seite 383]
14.3.2.9 - Workflow-Protokoll anzeigen [Seite 383]
14.3.2.10 - Anlagen anlegen, ändern, löschen [Seite 383]
14.3.2.10.1 - Anlagen per Upload am Frontend [Seite 383]
14.3.2.11 - Weitere Funktionen [Seite 383]
14.3.2.12 - Sortieren aufsteigend und absteigend [Seite 384]
14.3.2.13 - Suchen [Seite 384]
14.3.2.14 - Layout [Seite 384]
14.3.3 - 12.3.2 Persönliche Workflow-Einstellungen [Seite 385]
14.3.3.1 - Abb. 12-10 Persönliche Workflow-Einstellungen [Seite 385]
14.3.3.2 - Organisatorisches Umfeld auffrischen [Seite 385]
14.3.4 - 12.3.3 Workflow-Vertretungen [Seite 385]
14.3.4.1 - Vertreterregelungen werden unterschätzt. [Seite 386]
14.3.4.2 - Pflege von Vertretern [Seite 386]
14.3.4.2.1 - Potenzielle Vertreter vorausschauend pflegen [Seite 386]
14.3.4.3 - Aktivierung einer Vertretung durch den Vertretenen [Seite 386]
14.3.4.4 - Aktivierung von Vertretern durch den Vertreter selbst [Seite 387]
14.3.4.4.1 - Abb. 12-11 Vertretungen pflegen und übernehmen [Seite 387]
14.3.4.5 - Probleme der Vertreterregelung in SAP Business Workflow [Seite 387]
14.3.4.5.1 - Keine Kettenvertretung möglich [Seite 387]
14.3.5 - 12.3.4 Vertretungen in Tabelle HRUS_D2 [Seite 388]
14.3.5.1 - Abb. 12-12 Tabelle HRUS_D2 der Workflow-Vertretungen [Seite 388]
14.4 - 12.4 Die Anpassung der Inbox [Seite 388]
14.4.1 - 12.4.1 Layoutfunktionen des ALV-Grids [Seite 388]
14.4.1.1 - Spaltenauswahl [Seite 389]
14.4.1.1.1 - Abb. 12-13 Spaltenauswahl und Spaltenreihenfolge festlegen [Seite 389]
14.4.1.2 - Sortierung [Seite 389]
14.4.1.3 - Filterung [Seite 390]
14.4.1.3.1 - Abb. 12-14 Sortiereinstellungen im Layout [Seite 390]
14.4.1.3.2 - Abb. 12-15 Filtereinstellungen im Layout [Seite 390]
14.4.2 - 12.4.2 Verwendung dynamischer Anwenderspalten [Seite 391]
14.4.2.1 - Abb. 12-16 Definition dynamischer Spalten für eine Standardaufgabe [Seite 391]
14.4.2.2 - Abb. 12-17 Dynamische Spalten ins Layout einfügen [Seite 392]
14.4.2.3 - Abb. 12-18 Sichern des Layouts als Voreinstellung [Seite 392]
14.4.2.4 - Abb. 12-19 Layout der Workflow- Inbox für Vertragsgenehmigungen [Seite 393]
15 - 13 Webservices im Workflow [Seite 395]
15.1 - 13.1 Webservices im Workflow [Seite 395]
15.1.1 - Transaktionen WF_EXTSRV und WFWS sind veraltet. [Seite 395]
15.2 - 13.2 Das Webservice-Framework [Seite 396]
15.2.1 - Abb. 13-1 Architektur des Webservice-Frameworks [Seite 396]
15.2.2 - 13.2.1 Erstellen eigener Webservices [Seite 397]
15.2.3 - 13.2.2 Einbinden fremder Webservices [Seite 398]
15.2.3.1 - Abb. 13-2 SAP-System als Webservice-Provider [Seite 398]
15.2.3.2 - Abb. 13-3 Seite mit freien Webservices für Wetterdienste [Seite 398]
15.3 - 13.3 Beispiel: Einbinden eines Webservice [Seite 399]
15.3.1 - Abb. 13-4 SAP-System als Webservice-Consumer [Seite 399]
15.3.2 - 13.3.1 SOAP-Webservice für Wetterdienste [Seite 399]
15.3.2.1 - Abb. 13-5 Wetterdienst [Seite 399]
15.3.2.2 - Abb. 13-6 WSDL-File des Webservice für Wetterdienste [Seite 400]
15.3.3 - 13.3.2 Einbinden eines Webservice in SAP [Seite 400]
15.3.3.1 - Abb. 13-7 Auswahl des Objekttypen: Service-Consumer [Seite 400]
15.3.3.2 - Abb. 13-8 Quelle des Service: Lokale Datei [Seite 401]
15.3.3.3 - Abb. 13-9 WSDL-Datei vom Frontend verwenden [Seite 401]
15.3.3.4 - Abb. 13-10 Paket und Präfix vergeben [Seite 401]
15.3.3.5 - Abb. 13-11 Fertigstellen des Service [Seite 402]
15.3.3.6 - Abb. 13-12 Übersicht über den neuen Webservice GlobalWeatherSoap [Seite 402]
15.3.3.7 - Abb. 13-13 Methoden mit Parametern [Seite 403]
15.3.3.8 - Abb. 13-14 Objekte des Webservice [Seite 403]
15.3.4 - 13.3.3 Generierte Klasse ZCO_GLOBAL_WEATHER_SOAP [Seite 403]
15.3.4.1 - Abb. 13-15 Generierte Klasse zum GlobalWeather-Service [Seite 404]
15.3.4.2 - Listing 13-1 Generierte Methode GET_CITIES_BY_COUNTRY [Seite 404]
15.3.5 - 13.3.4 Anlegen logischer Ports [Seite 405]
15.3.5.1 - Abb. 13-16 Logischer Port: Laufzeit [Seite 406]
15.3.5.2 - Abb. 13-17 Logischer Port: Aufrufparameter [Seite 406]
15.3.5.3 - Abb. 13-18 Logischer Port: Operationen [Seite 406]
15.4 - 13.4 Aufruf des Webservice [Seite 407]
15.4.1 - 13.4.1 Aufruf des Service GlobalWeather in einem Programm [Seite 407]
15.4.1.1 - Listing 13-2 Aufruf des Webservice GlobalWeather [Seite 407]
15.4.1.2 - Abb. 13-19 XML-Resultatstring des Webservice GlobalWeather (gekürzt) [Seite 408]
15.4.1.3 - Listing 13-3 Simple Transformation zur Deserialisierung des XML-Ergebnisses [Seite 408]
15.4.2 - 13.4.2 Einbinden des Webservice in den Workflow [Seite 409]
15.4.2.1 - Abb. 13-20 Ausgabe Testprogramm Webservice GlobalWeather (gekürzt) [Seite 409]
15.4.2.2 - Abb. 13-21 Aufruf Webservice in statischer Methode bei Containerzuweisung [Seite 409]
15.4.2.3 - Abb. 13-22 Containerinhalt nach Datenfluss: Wetterstationen in Frankreich [Seite 410]
16 - 14 Das Workflow-Laufzeitsystem [Seite 411]
16.1 - 14.1 Konzept [Seite 411]
16.2 - 14.2 Die Tabellen des Laufzeitsystems [Seite 411]
16.2.1 - Tab. 14-1 Einige wichtige Tabellen des Workflow- Laufzeitsystems [Seite 412]
16.2.2 - 14.2.1 Die Tabelle SWWWIHEAD der Workitem-Köpfe [Seite 412]
16.2.2.1 - Workitem ist zentraler Begriff des Laufzeitsystems. [Seite 412]
16.2.2.2 - Tab. 14-2 Wichtige Felder der Tabelle SWWWIHEAD [Seite 412]
16.2.2.3 - Tab. 14-3 Typen von Workitems [Seite 413]
16.2.2.4 - Tab. 14-4 Statuswerte der Workitems [Seite 413]
16.2.2.5 - Abb. 14-1 Hierarchie von Workitems [Seite 414]
16.2.3 - 14.2.2 Die Tabelle SWW_WI2OBJ für Objektreferenzen [Seite 414]
16.2.4 - 14.2.3 Die Tabelle SWWORGTASK [Seite 415]
16.2.5 - 14.2.4 Die Tabelle SWWUSERWI der Benutzerzuordnung [Seite 415]
16.2.6 - 14.2.5 Views [Seite 415]
16.2.7 - 14.2.6 Programmierter Zugriff auf die Laufzeittabellen [Seite 415]
16.2.7.1 - Lesender Zugriff auf Laufzeittabellen kann sinnvoll sein. [Seite 415]
16.2.7.2 - Listing 14-1 Lesender Zugriff auf Laufzeittabellen [Seite 416]
16.2.7.3 - Listing 14-2 FBS zum Prüfen einer Vertretung zwischen zwei Benutzern [Seite 417]
16.3 - 14.3 Wichtige Funktionsbausteine und Klassen [Seite 418]
16.3.1 - 14.3.1 SAP_WAPI-Bausteine [Seite 418]
16.3.1.1 - Tab. 14-5 WAPI-Funktionsbausteine [Seite 418]
16.3.2 - 14.3.2 Klassen des Laufzeitsystems [Seite 419]
16.3.2.1 - Tab. 14-6 Wichtige SAP-Klassen des Laufzeitsystems [Seite 419]
16.4 - 14.4 Die Arbeitsweise des Laufzeitsystems [Seite 420]
16.4.1 - Abb. 14-2 Prinzipielle Arbeitsweise des Workflow- Laufzeitsystems [Seite 421]
16.4.2 - Abb. 14-3 Aufrufhierarchie beim Ausführen eines Dialog-Workitems [Seite 423]
16.4.3 - Abb. 14-4 Aufrufhierarchie beim Ausführen der Callback- Funktion des Dialog- Workitems [Seite 424]
16.4.4 - 14.4.1 Datenfluss über Container [Seite 424]
16.4.5 - 14.4.2 Aktionen auf Workitems [Seite 424]
16.4.6 - 14.4.3 Termin- und Fehlerüberwachung [Seite 425]
16.4.6.1 - Report zur Terminüberwachung RSWWDHEX [Seite 425]
16.4.6.2 - Report zur Fehlerüberwachung RSWWERRE [Seite 425]
16.4.7 - 14.4.4 Business Workplace als Sicht auf die Laufzeittabellen [Seite 425]
17 - 15 Tests und Fehlersuche [Seite 427]
17.1 - 15.1 Workflow-Instanzen suchen [Seite 427]
17.1.1 - 15.1.1 Workitem-Selektion mit ihren Anzeigemöglichkeiten [Seite 427]
17.1.1.1 - SWI1 nicht geeignet für P-Systeme [Seite 427]
17.1.1.2 - Abb. 15-1 Selektionsbild der Workitem-Selektion [Seite 428]
17.1.1.3 - Abb. 15-2 Liste mit Workitems der Transaktion SWI1 (Entwicklungssystem) [Seite 428]
17.1.2 - 15.1.2 Workflow-Instanzen zu Objekttyp [Seite 429]
17.1.2.1 - Abb. 15-3 Selektionsbild SWI14: Workflows zu Objekttyp [Seite 429]
17.1.2.2 - Abb. 15-4 Ergebnisanzeige SWI14: Workflows zu Objekttyp [Seite 429]
17.1.3 - 15.1.3 Workflow-Instanzen zu Objektinstanz [Seite 430]
17.1.3.1 - Abb. 15-5 Selektionsbild SWI6: Workflows zu Objektinstanz [Seite 430]
17.1.3.2 - Abb. 15-6 SWI6: Eingabe des Schlüssels der Objektinstanz [Seite 430]
17.1.3.3 - Abb. 15-7 Ergebnisanzeige SWI6: Workflows zu Objektinstanz [Seite 431]
17.2 - 15.2 Workflow-Protokoll mit seinen diversen Sichten [Seite 431]
17.2.1 - 15.2.1 ActiveX-Protokoll und seine Sichten [Seite 432]
17.2.1.1 - Abb. 15-8 Auswahl der Einstiegssicht des Workflow-Protokolls [Seite 432]
17.2.1.2 - Abb. 15-9 ActiveX-Workflow- Protokoll: Sicht Workflow-Chronik [Seite 432]
17.2.1.3 - Abb. 15-10 Grafisches Workflow- Protokoll: Wahl der Hierarchieebene [Seite 433]
17.2.1.4 - Abb. 15-11 ActiveX-Workflow- Protokoll: Sicht Workflow-Bearbeiter [Seite 433]
17.2.2 - 15.2.2 Technisches Workflow-Protokoll und seine Sichten [Seite 434]
17.2.2.1 - Abb. 15-12 Technisches Workflow-Protokoll, Chronologische Sicht [Seite 434]
17.2.3 - 15.2.3 Grafisches Workflow-Protokoll [Seite 435]
17.2.3.1 - Abb. 15-13 Grafisches Workflow-Protokoll [Seite 435]
17.2.4 - 15.2.4 Anzeigen, Ändern und Beenden von Workitems [Seite 435]
17.2.4.1 - Abb. 15-14 Technische Workitem-Anzeige [Seite 436]
17.2.5 - 15.2.5 Testen der Fristverletzung an Ereignisempfängern [Seite 436]
17.2.5.1 - Abb. 15-15 Ereignisempfänger mit Frist [Seite 437]
17.2.5.2 - Abb. 15-16 Ereignisempfänger ändern [Seite 437]
17.2.5.3 - Abb. 15-17 Ändern: Frist (LED = Latest End Date) [Seite 438]
17.3 - 15.3 Debug-Report für Batch-Workitems [Seite 438]
17.3.1 - 15.3.1 Notwendigkeit [Seite 438]
17.3.1.1 - Fehlersuche in Batch- Workitems ist kompliziert. [Seite 438]
17.3.2 - 15.3.2 Anwendung [Seite 439]
17.3.2.1 - Abb. 15-18 Debug-Report: Parametereingabe beim Starten [Seite 439]
17.3.2.2 - Abb. 15-19 Debug-Report: Anzeigen bzw. Ändern von Containerwerten [Seite 439]
17.3.2.3 - Abb. 15-20 Debug-Report: Breakpunkt in einer Hintergrundmethode [Seite 440]
17.3.3 - 15.3.3 Quelltext des Reports ZAO_DEBUGWI [Seite 440]
17.3.3.1 - Listing 15-1 Report zum Debuggen eines Batch-Workitems [Seite 441]
17.4 - 15.4 Hintergrundschritte im Status STARTED [Seite 442]
17.4.1 - 15.4.1 Dump-Analyse [Seite 442]
17.4.1.1 - Abb. 15-21 ST22: ABAP-Laufzeitfehler: Einstiegsbild [Seite 442]
17.4.1.2 - Abb. 15-22 ST22: ABAP-Laufzeitfehler: Liste [Seite 443]
17.4.1.3 - Abb. 15-23 ST22: ABAP-Laufzeitfehler: Langtext zu einem Laufzeitfehler [Seite 443]
17.4.1.4 - Abb. 15-24 Ermitteln des verursachenden Workitems [Seite 443]
17.4.1.5 - Abb. 15-25 Workitem in den ausgewählten Variablen [Seite 444]
17.4.2 - 15.4.2 Wiederanstarten nach Fehlerkorrektur [Seite 444]
17.5 - 15.5 Nützliche Hilfsprogramme [Seite 444]
17.5.1 - 15.5.1 Container-Update [Seite 444]
17.5.1.1 - Listing 15-2 Programm zum Ändern des Containers eines Workitems [Seite 444]
17.5.2 - 15.5.2 SBE fortsetzen mit Simulation der Auswahl [Seite 445]
17.5.2.1 - Listing 15-3 Beenden eines Dialog- Workitems mit Ergebniswert [Seite 446]
17.5.3 - 15.5.3 Benutzer an Dialog-Workitems ändern [Seite 446]
17.5.3.1 - Listing 15-4 Ersetzen eines alten durch einen neuen Benutzer an einem Workitem [Seite 447]
17.5.4 - 15.5.4 Ultima Ratio nach 22 Uhr [Seite 448]
17.5.4.1 - Listing 15-5 Programmieren auf geschlossenen Systemen [Seite 449]
17.5.4.2 - Abb. 15-26 Dynamisches Programm erzeugen [Seite 451]
17.5.4.3 - Abb. 15-27 Dynamisch erzeugtes Programm - Syntaxcheck [Seite 451]
17.5.4.4 - Abb. 15-28 Dynamisch erzeugtes Programm liefert Output. [Seite 452]
17.5.4.5 - Listing 15-6 Programm ändern mit dynamischem Programm [Seite 452]
17.6 - 15.6 Up- und Download von Workflow-Mustern [Seite 452]
17.6.1 - 15.6.1 Problematik [Seite 452]
17.6.1.1 - Vollständiger XML-Download für Workflows fehlt. [Seite 452]
17.6.2 - 15.6.2 Noch kein SAPlink-Plug-in für Workflows [Seite 453]
17.6.2.1 - Abb. 15-29 SAPlink-Seite im SAP Community Network [Seite 453]
17.6.3 - 15.6.3 Up- und Download von Klassen im XML-Format [Seite 454]
17.6.3.1 - XML-Upload und Download für Klassen [Seite 454]
17.6.4 - 15.6.4 Up- und Download von Workflow-Mustern als XML [Seite 454]
17.6.4.1 - Abb. 15-30 Ausschnitt aus einer XML-Datei für ein Workflow-Muster [Seite 455]
17.7 - 15.7 Workflow-Transporte [Seite 456]
17.7.1 - Abb. 15-31 Fehler beim Workflow-Transport [Seite 456]
18 - 16 Workflow-Administration [Seite 457]
18.1 - 16.1 Aufgabe und Festlegung der Administratoren [Seite 457]
18.1.1 - 16.1.1 Allgemeine Aufgaben des Workflow-Administrators [Seite 457]
18.1.2 - 16.1.2 Customizing verifizieren [Seite 458]
18.1.2.1 - Abb. 16-1 Workflow-Customizing [Seite 458]
18.1.3 - 16.1.3 Workflow-Administrator global einstellen [Seite 459]
18.1.3.1 - Abb. 16-2 Globalen Workflow- Administrator pflegen [Seite 459]
18.1.4 - 16.1.4 Workflow-Administrator pro Workflow-Definition [Seite 459]
18.2 - 16.2 Batchjobs konfigurieren und einplanen [Seite 460]
18.2.1 - Abb. 16-3 Workflow-Administrator pro Workflow pflegen [Seite 460]
18.2.2 - 16.2.1 Terminüberwachung [Seite 460]
18.2.2.1 - Abb. 16-4 Hintergrundjob für Terminüberwachung konfigurieren und einplanen [Seite 460]
18.2.3 - 16.2.2 Workitem-Fehlerüberwachung [Seite 461]
18.2.3.1 - Abb. 16-5 Hintergrundjob zum Anstarten fehlerhafter Workitems konfigurieren [Seite 461]
18.2.4 - 16.2.3 Bedingungsauswertung [Seite 461]
18.3 - 16.3 E-Mail-Notification für SAP-Gelegenheitsbenutzer [Seite 462]
18.3.1 - 16.3.1 Pflege der E-Mail-Adresse für das Weiterleiten [Seite 462]
18.3.1.1 - Abb. 16-6 E-Mail-Adresse zum Weiterleiten einstellen [Seite 462]
18.3.2 - 16.3.2 Pflege der persönlichen E-Mail-Adresse in den Benutzerdaten [Seite 462]
18.3.3 - 16.3.3 Erzeugen von E-Mails zu neuen Workitems [Seite 463]
18.3.3.1 - Abb. 16-7 Pflege der E-Mail-Adresse in den Benutzerstammdaten [Seite 463]
18.3.3.2 - RSWUWFML für E-Mail-Notification [Seite 463]
18.3.4 - 16.3.4 Versenden der Internetmails über SAPconnect [Seite 465]
18.3.4.1 - Mailversand mit SAPconnect [Seite 465]
18.3.4.2 - Abb. 16-8 SAPconnect- Administration (TA SCOT) [Seite 465]
18.3.4.3 - Abb. 16-9 Sendevorgänge SAPconnect (TA SOST) [Seite 466]
18.4 - 16.4 Reaktion auf Fehlermeldungen des Laufzeitsystems [Seite 466]
18.4.1 - Abb. 16-10 Mail an den Administrator über einen Workflow-Fehler [Seite 466]
18.4.2 - Abb. 16-11 Workflow-Protokoll zur Fehlermeldung [Seite 467]
18.5 - 16.5 Typische Workflow-Fehler und ihre Behebung [Seite 467]
18.5.1 - 16.5.1 Workitems ohne Bearbeiter [Seite 467]
18.5.2 - 16.5.2 Workitems mit Terminüberschreitungen [Seite 468]
18.5.3 - 16.5.3 Diagnose fehlerhafter Workitems [Seite 468]
18.5.3.1 - Abb. 16-12 Diagnose fehlerhafter Workitems [Seite 468]
18.5.3.2 - Abb. 16-13 Fehlermeldung zu einer Zeile des Diagnosereports [Seite 469]
18.5.4 - 16.5.4 Laufzeitpuffer synchronisieren [Seite 469]
18.5.4.1 - WICHTIG: TA SWU_OBUF [Seite 469]
18.6 - 16.6 Restarten unterbrochener Workflows [Seite 470]
18.6.1 - 16.6.1 Restart fehlerhafter Workflows [Seite 470]
18.6.2 - 16.6.2 Restart nach Systemabsturz oder Schrittdump [Seite 470]
18.6.2.1 - Abb. 16-14 Workflows fortsetzen nach Systemabsturz/ Kurzdump, Selektionsbild [Seite 470]
18.7 - 16.7 Analysen [Seite 471]
18.7.1 - Abb. 16-15 Workflows fortsetzen nach Systemabsturz/ Kurzdump, Ergebnis [Seite 471]
18.7.2 - 16.7.1 Workitems pro Aufgabe [Seite 471]
18.7.2.1 - Abb. 16-16 Aufgabenanalyse [Seite 471]
18.7.3 - 16.7.2 Workitems nach Bearbeitungsdauer [Seite 472]
18.7.3.1 - Sicht Schwellenwerte [Seite 472]
18.7.3.1.1 - Abb. 16-17 Bearbeitungsdauern von Aufgaben, Sicht Schwellenwerte [Seite 472]
18.7.3.2 - Sicht Mittelwerte [Seite 472]
18.7.4 - 16.7.3 Workload-Analyse [Seite 473]
18.7.4.1 - Abb. 16-18 Bearbeitungsdauern von Aufgaben, Sicht Mittelwerte [Seite 473]
18.7.4.2 - Abb. 16-19 Workload-Analyse für einen Bearbeiter [Seite 473]
18.7.4.3 - Workload für vergangene Arbeitsbelastung [Seite 474]
18.7.4.3.1 - Abb. 16-20 Workload-Analyse: Arbeitsbelastung in der Vergangenheit (Übersicht über alle Aufgaben) [Seite 474]
18.7.4.4 - Workload für zukünftige Arbeitsbelastung [Seite 474]
18.7.4.4.1 - Abb. 16-21 Workload-Analyse: Arbeitsbelastung in der Zukunft [Seite 474]
18.8 - 16.8 Reorganisation der Laufzeitdaten [Seite 475]
18.8.1 - 16.8.1 Allgemeines [Seite 475]
18.8.1.1 - Workitems werden selten archiviert. [Seite 475]
18.8.2 - 16.8.2 Auslastung der Workflow-Laufzeittabellen [Seite 475]
18.8.2.1 - Tab. 16-1 Speicherplatzintensive Laufzeittabellen des Workflow-Systems [Seite 475]
18.8.2.2 - XML ist extrem speicherintensiv. [Seite 475]
18.8.3 - 16.8.3 Gezieltes Löschen von einzelnen Workflows [Seite 476]
18.8.4 - 16.8.4 Löschen von Workflows im Batch [Seite 476]
18.8.4.1 - Abb. 16-22 RSWWWIDE, gestartet am 13.01.2003, mit dynamischer Selektions- option für die Erzeugungs- zeit im Intervall (Heute -100 d, Heute -30 d) [Seite 477]
18.8.4.2 - Abb. 16-23 Anlegen der Variante V_100_30 [Seite 478]
18.8.4.3 - Abb. 16-24 Variantenvariablen V_100_30 [Seite 479]
18.8.4.4 - Abb. 16-25 Berechnungsalgorithmus wählen [Seite 479]
18.8.4.5 - Abb. 16-26 Eingabe der Offsetwerte für SY-DATUM [Seite 480]
18.8.5 - 16.8.5 Archivieren von Workflows im Batch [Seite 480]
18.8.5.1 - Abb. 16-27 Einstiegsbild der Transaktion SWW_SARA [Seite 480]
18.8.5.2 - Abb. 16-28 Variante für Archivierungslauf festlegen [Seite 481]
18.8.5.3 - Abb. 16-29 Jobübersicht WORKITEM- Archivierung [Seite 482]
18.9 - 16.9 Transportieren von Workflows [Seite 483]
19 - A Die alte Welt - BOR-Objekte im Workflow [Seite 485]
19.1 - A.1 Historisches [Seite 485]
19.2 - A.2 Anlegen eines neuen Objekttyps [Seite 486]
19.2.1 - Abb. A-1 Grunddaten des neuen Objekttyps [Seite 486]
19.2.2 - A.2.1 Die Objektliste mit ihren Bestandteilen [Seite 487]
19.2.2.1 - Abb. A-2 Liste des Objekttyps ZVERTRAG mit seinen Bestandteilen [Seite 488]
19.2.2.2 - Tab. A-1 Liste des Objekttyps ZVERTRAG mit seinen Bestandteilen [Seite 488]
19.2.3 - A.2.2 Programm des Objekttyps als Subroutinenpool [Seite 489]
19.2.3.1 - Listing A-1 Generierter Programmkopf des BOR-OT ZVERTRAG [Seite 489]
19.2.4 - A.2.3 Interface [Seite 490]
19.2.4.1 - Abb. A-3 Interface IFSAP mit SubInterface IFEXIST und IFDISPL [Seite 490]
19.2.4.2 - Listing A-2 Methode EXISTENCECHECK des BOR-OT ZVERTRAG [Seite 491]
19.2.5 - A.2.4 Freigeben von Objekttyp und Komponenten [Seite 491]
19.3 - A.3 Attribute [Seite 492]
19.3.1 - A.3.1 Datenbankattribute mit GET_TABLE_PROPERTY [Seite 492]
19.3.1.1 - Datenbankattribute entsprechen Tabellenspalten. [Seite 492]
19.3.1.2 - Abb. A-4 Anlegen des Datenbankattributes STATUS [Seite 492]
19.3.1.3 - Abb. A-5 Einmaliges Generieren des Codes für alle DB-Attribute (Tabellenzugriff) [Seite 493]
19.3.1.4 - Listing A-3 Programm des BOR-OT ZVERTRAG mit Zugriffsroutinen für Tabelleneigenschaften [Seite 493]
19.3.2 - A.3.2 Objektreferenzen und Makros für den Objektzugriff [Seite 495]
19.3.2.1 - Abb. A-6 Zweites DB-Attribut im Status modelliert [Seite 495]
19.3.2.2 - Tab. A-2 Struktur für Laufzeitobjektreferenz SWC_OBJECT [Seite 495]
19.3.2.3 - Makros für Objektzugriff [Seite 496]
19.3.2.4 - SELF-Referenz [Seite 497]
19.3.2.5 - Persistente Objektreferenzen [Seite 497]
19.3.2.6 - Tab. A-3 Struktur für persistente Objektreferenz SWOTOBJID [Seite 497]
19.3.3 - A.3.3 Implementierung und Aufruf virtueller Attribute [Seite 497]
19.3.3.1 - Virtuelle Attribute enthalten Code. [Seite 497]
19.3.3.2 - Listing A-4 Coderahmen für virtuelles Attribut [Seite 498]
19.3.3.3 - Virtuelles Defaultattribut [Seite 498]
19.3.3.3.1 - Abb. A-7 Virtuelles Defaultattribut [Seite 498]
19.3.3.3.2 - Listing A-5 Generierte Defaultvariable im Programmcode [Seite 499]
19.3.3.3.3 - Listing A-6 Defaultattribut mit SELF-Zugriff [Seite 499]
19.3.3.4 - Liste von Vertragsreferenzen als virtuelles Attribut [Seite 499]
19.3.3.4.1 - Abb. A-8 Virtuelles Attribut liefert Liste von Objektreferenzen. [Seite 499]
19.3.3.4.2 - Listing A-7 Generierte Variable für mehrzeiliges, virtuelles Attribut [Seite 500]
19.3.3.4.3 - Listing A-8 Generierter Code des virtuellen Attributes VERTRAGSLISTEPERSON [Seite 500]
19.3.3.4.4 - Listing A-9 Makro GET_PROPERTY [Seite 500]
19.3.3.4.5 - Listing A-10 Programmcode für mehrzeiliges, virtuelles Attribut [Seite 501]
19.3.3.4.6 - Abb. A-9 Virtuelles Attribut VertragsListePerson [Seite 501]
19.4 - A.4 Implementierung und Aufruf von Methoden [Seite 502]
19.4.1 - Anwendungsfunktionen sind nur über Methoden aufrufbar. [Seite 502]
19.4.2 - Abb. A-10 Definition einer neuen Methode [Seite 502]
19.4.3 - Tab. A-4 Klassifizierung unterschiedlicher Methodentypen [Seite 504]
19.4.4 - Listing A-11 Coderahmen für Methoden [Seite 504]
19.4.5 - Generierung einer Methode [Seite 504]
19.4.6 - A.4.1 Synchrone Anzeigemethode als Defaultmethode [Seite 505]
19.4.6.1 - Listing A-12 Anzeigemethode für Verträge [Seite 505]
19.4.6.2 - Abb. A-11 Grunddaten/Defaults des OT Z_VERTRAG [Seite 506]
19.4.7 - A.4.2 Synchrone Dialogmethode mit Ergebnisparameter [Seite 506]
19.4.7.1 - Festwerte am Ergebnisparameter steuern den Workflow. [Seite 506]
19.4.7.2 - Abb. A-12 Methode GENEHMIGEN mit Rückgabewert STATUS [Seite 507]
19.4.7.3 - Abb. A-13 Domänenfestwerte des Ergebnistyps ZVERTRAG-STATUS [Seite 507]
19.4.7.4 - Listing A-13 Genehmigungsmethode mit Ergebnisparameter [Seite 508]
19.4.7.5 - Abb. A-14 EXIT_CANCELLED löst Ausnahme 8017 aus [Seite 508]
19.4.8 - A.4.3 Synchrone Hintergrundmethode mit Parametern [Seite 509]
19.4.8.1 - Abb. A-15 Definition eines mehrzeiligen Importparameters [Seite 509]
19.4.8.2 - Abb. A-16 Hintergrundmethode mit Import- und Exportparametern [Seite 509]
19.4.8.3 - Hintergrundmethode mit Import- und Exportparametern [Seite 509]
19.4.8.4 - Listing A-14 Methode mit mehreren Parametern [Seite 510]
19.4.9 - A.4.4 Asynchrone Dialogmethode ohne alles [Seite 510]
19.4.9.1 - Asynchrone Methoden müssen Endeereignisse haben. [Seite 511]
19.4.10 - A.4.5 Methoden mit Ausnahmen [Seite 511]
19.4.10.1 - Abb. A-17 Definition einer Ausnahme an einer Methode [Seite 511]
19.4.10.2 - Listing A-15 Ausnahmen auslösen mit Makro EXIT_RETURN [Seite 512]
19.4.10.3 - Abb. A-18 Pop-up zur Anzeige einer aufgetretenen Ausnahme im Methodentest [Seite 512]
19.4.10.4 - Tab. A-5 Vordefinierte Ausnahmen [Seite 512]
19.4.10.5 - Ausnahmen und Exportparameter [Seite 512]
19.4.11 - A.4.6 Überdefinieren von Methoden [Seite 513]
19.5 - A.5 Ereignisse [Seite 513]
19.5.1 - Abb. A-19 Anlegen eines Ereignisses am Objekttyp [Seite 513]
19.6 - A.6 Prüfen und Testen einer Objektimplementierung [Seite 514]
19.6.1 - Abb. A-20 Testen eines Objekttyps [Seite 515]
19.6.2 - Abb. A-21 Eingabe der Importparameter beim Test einer Dialogmethode [Seite 515]
19.6.3 - Abb. A-22 Testergebnisse der Methode RP_PRO_INTERVALL [Seite 516]
19.7 - A.7 Vererbung und Delegation [Seite 516]
19.7.1 - A.7.1 Vererbung und Delegation im BOR [Seite 516]
19.7.1.1 - Abb. A-23 Von ISUSWITCHD abgeleiteter Sub-OT ZVMKSWITCH [Seite 518]
19.7.1.2 - Abb. A-24 Delegation von ISUSWITCHD nach ZVMKSWITCH [Seite 518]
19.7.2 - A.7.2 Vererbung und keine Delegation für ABAP-Klassen [Seite 519]
19.7.3 - A.7.3 Ereignisbehandlung bei Vererbung und Delegation [Seite 519]
19.8 - A.8 Standardisierte Schnittstellen - Container [Seite 520]
19.8.1 - A.8.1 Container in Programmen - Include
19.8.1.1 - Containerstruktur SWCONT [Seite 521]
19.8.1.2 - Tab. A-6 Struktur der internen Containertabelle [Seite 521]
19.8.1.3 - Makros für Containerzugriff anlegen und freigeben [Seite 521]
19.8.1.4 - Anlegen und Löschen von Elementen [Seite 521]
19.8.1.5 - Setzen von Werten [Seite 522]
19.8.1.6 - Setzen von Tabellen [Seite 522]
19.8.1.7 - Lesen von Werten [Seite 522]
19.8.1.8 - Lesen von Tabellen [Seite 522]
19.8.1.9 - Listing A-16 Arbeiten mit BOR-Containern [Seite 523]
19.8.2 - A.8.2 Persistente Instanzen von Containern [Seite 525]
19.8.2.1 - Abb. A-25 Output des Programms ZAO_BOR_CONTAINER [Seite 525]
19.8.3 - A.8.3 Container im Workflow [Seite 526]
19.9 - A.9 Spezielle Objekttypen [Seite 527]
19.9.1 - Tab. A-7 Spezielle Objekttypen [Seite 527]
20 - Literatur [Seite 529]
20.1 - Ginger Gatling et al. Workflow Management mit SAP (2. Auflage) Galileo Press, Bonn, 2010 [Seite 529]
20.2 - Ulrich Mende Workflow und Archive-Link mit SAP dpunkt.verlag, Heidelberg, 2004 [Seite 529]
20.3 - Ilja-Daniel Werner Workflow-Entwicklung mit ABAP Galileo Press, Bonn, 2011 [Seite 529]
20.4 - Horst Keller, Sascha Krüger ABAP Objects (3. Auflage) Galileo Press, Bonn, 2006 [Seite 529]
21 - Inhalt des Downloadbereiches [Seite 531]
22 - Abkürzungsverzeichnis [Seite 535]
23 - Index [Seite 537]
System requirements
File format: PDF
Copy protection: Watermark-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Use the free software Adobe Reader, Adobe Digital Editions, or any other PDF viewer of your choice (see eBook Help).
- Tablet/Smartphone (Android; iOS): Install the free app Adobe Digital Editions or another reading app for eBooks, e.g., PocketBook (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (only limited: Kindle).
The file format PDF always displays a book page identically on any hardware. This makes PDF suitable for complex layouts such as those used in textbooks and reference books (images, tables, columns, footnotes). Unfortunately, on the small screens of e-readers or smartphones, PDFs are rather annoying, requiring too much scrolling.
This eBook uses Watermark-DRM, a „soft” copy protection. This means that there are no technical restrictions to prevent illegal distribution. However, there is a personalised watermark embedded in the eBook that can be used to identify the purchaser of the eBook in the event of misuse and to provide evidence for legal purposes.
For more information, see our eBook Help page.