Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149...

12

Transcript of Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149...

Page 1: Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149 Filterstruktur 118 Floorplan Manager 177 Floorplan Manager BOPF Integration 177 Framework
Page 2: Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149 Filterstruktur 118 Floorplan Manager 177 Floorplan Manager BOPF Integration 177 Framework

5

Inhaltsverzeichnis

InhaltsverzeichnisVorwort 7

1 Einführung in BOPF 111.1 Was ist BOPF? 121.2 BOPF im ABAP-Programmiermodell für SAP Fiori 141.3 Allgemeine Hinweise 18

2 Ein Geschäftsobjekt modellieren 212.1 Das Beispiel: Kundenrechnung 222.2 Das Geschäftsobjekt anlegen 252.3 Aufbau eines Geschäftsobjekts 292.4 Unterknoten und Repository-Namen erzeugen 312.5 Datenstrukturen erzeugen und generieren lassen 372.6 Die Konstantenschnittstelle generieren 43

3 Transaktions- & Servicemanagement 493.1 Transaktionsmanager 533.2 Servicemanager 56

4 Geschäftsobjekt-Entitäten 614.1 Zentrale Parameter von Entitäten-Implementierungen 634.2 Aktionen 694.3 Ermittlungen 794.4 Validierungen 934.5 Alternativschlüssel 1014.6 Abfragen 1064.7 Assoziationen 1144.8 Berechtigungsprüfungen 1214.9 Statische Eigenschaften 128

Page 3: Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149 Filterstruktur 118 Floorplan Manager 177 Floorplan Manager BOPF Integration 177 Framework

6

Inhaltsverzeichnis

5 »Library«-Funktionen des BOPF 1335.1 Ermittlung von Verwaltungsdaten 1345.2 Validierung von Alternativschlüsseln 1365.3 Validierung von Pflichtfeldern 138

6 Testen & Fehleranalyse 1396.1 Die BOPF-Testumgebung 1396.2 Fehlersuche & -analyse 149

7 Implementierungsbeispiele 1577.1 Direkte Aufrufe des Servicemanagers 1577.2 Kapselung über eine Klasse 162

8 Weiterführende Themen 1698.1 BOPF in Eclipse 1708.2 Integration des BOPF in andere Technologien 1768.3 CDS-View-ObjectModel-Annotationen 182

9 Fazit/Ausblick 187

A Anhang 190

B Der Autor 194

C Index 195

D Disclaimer 199

Page 4: Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149 Filterstruktur 118 Floorplan Manager 177 Floorplan Manager BOPF Integration 177 Framework

21

2 Ein Geschäftsobjekt modellieren

Bevor eine theoretische Einleitung Verwirrung stiftet und ein zu abstraktes Bild des BOPF zeichnet, starten wir direkt in die Pra-xis und erstellen gemeinsam Schritt für Schritt unser erstes Ge-schäftsobjekt.

In meinen bisher gehaltenen BOPF-Schulungen war die wichtigste Erkenntnis für mich: Ein angeleiteter praktischer Einstieg schafft eine gute Basis, um darauf aufbauend die theoretischen Hintergründe zu erläutern und weitere Aspekte von Geschäftsobjekten kennenzulernen.

Ich erläutere Ihnen in Abschnitt 2.1 also zuerst das dem gesamten Buch zugrunde liegende Beispiel, zu dem wir ein Geschäftsobjekt er-stellen und aufrufen werden. Dieses Geschäftsobjekt wird am Ende des Kapitels mit all seinen Grundfunktionen (Daten anlegen, ändern, löschen, sperren und puffern) einsatzbereit sein.

Um das zu erreichen, werden wir im Verlauf des Kapitels folgende Schritte durchlaufen:

Schritt 1: ein neues Geschäftsobjekt anlegen,

Schritt 2: die Knotenstruktur um zusätzlich benötigte Knoten erwei-tern,

Schritt 3: die Datenstrukturen der Knoten auf Basis vorgeschlagener Namen festlegen,

Schritt 4: zusätzlich benötigte Strukturen und Tabellentypen anlegen lassen,

Schritt 5: das Konstanten-Interface zu unserem Geschäftsobjekt generieren.

Mit diesen Schritten legen wir den Grundstein für die Arbeit mit dem neuen Geschäftsobjekt. In Kapitel 4 zeige ich Ihnen nach einem wich-

Page 5: Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149 Filterstruktur 118 Floorplan Manager 177 Floorplan Manager BOPF Integration 177 Framework

22

Ein Geschäftsobjekt modellieren

tigen Ausblick auf das Transaktions- und Servicemanagement (siehe Kapitel 3) noch die Möglichkeiten auf, wie Sie mittels BOPF ein in sich abgeschlossenes Objekt mit zusätzlicher Geschäftslogik erzeugen.

2.1 Das Beispiel: Kundenrechnung

Um Stück für Stück ein Verständnis für die Arbeit mit und die Nutzung von Geschäftsobjekten (engl.: Business Objects, kurz BO) zu schaffen, baut das gesamte Buch auf einem durchgehenden Beispiel auf. Die-ses ist bewusst aus dem Alltag eines x-beliebigen Menschen genom-men, damit Sie keine modulspezifischen SAP-Kenntnisse mitbringen müssen.

Als Beispiel soll uns eine Kundenrechnung dienen, wie Sie sie etwa aus Onlineshops, von Hotelaufenthalten oder auch Baumarkteinkäu-fen kennen. Wenn ein Kunde eine Bestellung tätigt, wird für ihn in der Buchhaltung eine Rechnung gestellt. Diese enthält in der Regel zwei Arten von Informationen:

1. In den sogenannten Rechnungskopf-Informationen werden für die gesamte Rechnung gültige Daten erfasst. Darunter fallen

f der Kundenname,

f die Rechnungsanschrift,

f das Rechnungsdatum,

f der Rechnungssteller,

f eine eindeutige Rechnungsnummer

f u. v. m.

Keine der Informationen bezieht sich auf die konkret bestellten Leis-tungen oder Produkte, sondern ausschließlich auf die an der Bestel-lung beteiligten Parteien, und enthält administrative oder rechtlich not-wendige Daten.

2. Die Rechnungspositionen beinhalten die Leistungen oder Pro-dukte, die der Kunde bestellt und nach Erhalt oder zu einem be-

Page 6: Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149 Filterstruktur 118 Floorplan Manager 177 Floorplan Manager BOPF Integration 177 Framework

23

Ein Geschäftsobjekt modellieren

stimmten Zeitpunkt zu bezahlen hat. Denkbar sind Positionsdaten wie

f Positionsnummer,

f Bezeichnung,

f Artikelnummer oder Leistungsnummer,

f Preis pro Einheit,

f Bestellmenge,

f Gesamtpreis der Position

f etc.

Um dem Beispiel der Rechnungserstellung nun noch ein wenig Leben einzuhauchen, stellen Sie sich bitte folgende Situation vor, die wohl den meisten Menschen so oder in ähnlicher Form schon häufiger be-gegnet ist:

Sie sitzen zu Hause an Ihrem Lieblingsort, sei es auf der Couch oder im Schaukelstuhl. Über Ihren Laptop surfen Sie auf der Webseite eines großen Onlineshops und fügen Ihrem Warenkorb einige Pro-dukte hinzu. Die geringe Summe des Warenkorbs stimmt Sie fröhlich, schließlich brauchen Sie mindestens zwei der fünf Produkte wirklich dringend, und Sie schließen den Bestellvorgang ab.

Schon wenig später erhalten Sie eine Auftragsbestätigung per Mail. Zum Wunschtag folgt ausnahmsweise auch pünktlich die Lieferung der bestellten Produkte. Als Kunde haben Sie jetzt in der Regel zwei Wochen Zeit, die Ware zu bezahlen oder zurückzusenden.

Aus Sicht des Onlineshops löst Ihre Bestellung den Versandprozess aus. Die Ware wird im Lager zusammengestellt und an die angegebe-ne Lieferadresse verschickt. Mit dem Warenversand wird die Kunden-rechnung erzeugt. Sie dient Ihnen nun als »Bezahlaufforderung«, die Sie über Ihr Kundenkonto online abrufen oder der E-Mail entnehmen können. Dort sind alle Informationen aufgeführt, die den Kaufvertrag zwischen Ihnen und dem Onlineshop besiegeln.

Page 7: Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149 Filterstruktur 118 Floorplan Manager 177 Floorplan Manager BOPF Integration 177 Framework

24

Ein Geschäftsobjekt modellieren

Natürlich hat der Betreiber des Onlineshops ein starkes Interesse an diesem Objekt »Kundenrechnung« – neben den auf dem Papier (oder PDF) aufgeführten Informationen wird insbesondere der Zahlungs-eingang verfolgt. Bis der Rechnungsbetrag durch den Kunden aus-geglichen wurde, gilt die Rechnung als »offen« oder »noch zu zah-len«. Auch wir werden in unserem Beispiel am Rechnungskopf einen Rechnungsstatus in die Datenbasis aufnehmen, um beispielsweise den Ausgleich des Rechnungsbetrages durch den Kunden abbilden zu können. Ist der Ausgleich erfolgt, wechselt der Rechnungsstatus auf »bezahlt«. In der Buchhaltung kann anschließend die Rechnung mit der Zahlung abgeglichen und auf »abgeschlossen« gesetzt wer-den. Dieser Rechnungsstatus ist für den Kunden, also für Sie auf der Couch, nicht ersichtlich. Sie erhalten höchstens freundliche Zahlungs-erinnerungen bei nicht beglichenen Rechnungsbeträgen.

Im beschriebenen Ablauf wird die Kundenrechnung technisch durch das Geschäftsobjekt ZKR_KUNDENRECHNUNG, welches wir im fol-genden Abschnitt modellieren, abgebildet (vgl. Abbildung 2.1).

Modellierung von Geschäftsobjekten

Bei der Modellierung von Geschäftsobjekten können Sie grundsätzlich wie bei der Modellierung von Klas-sen und Objekten in der Objektorientierung vorgehen. Es geht darum, in sich geschlossene Objekte als fes-tes Modell zur Verfügung zu stellen, das von vielen

Verwendern in gleicher Art genutzt werden kann. Beispiele dafür sind eine Kundenrechnung, eine Instandhaltungsmeldung oder zu-sätzliche Stammdatenobjekte. Aber auch zentrale Funktionalitäten wie Änderungszeiger oder das Business Application Log (kurz: BAL) lassen sich in BOPF abbilden bzw. sind dort bereits grund-legend verwirklicht.

Page 8: Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149 Filterstruktur 118 Floorplan Manager 177 Floorplan Manager BOPF Integration 177 Framework

25

Ein Geschäftsobjekt modellieren

Abbildung 2.1: Einordnung des zu erstellenden Geschäftsobjekts in den Beispielprozess

2.2 Das Geschäftsobjekt anlegen

Für die Verwaltung und Bearbeitung von Geschäftsobjekten stehen in SAP BOPF theoretisch mehrere Transaktionen zur Verfügung. Ich möchte diese kurz nennen, auch wenn wir uns nachfolgend nur in der Transaktion BOBX bewegen werden:

f BOB – dient dem vereinfachten Anlegen von Geschäfts-objekten über eine Schritt-für-Schritt-Prozedur. Diese ist ver-altet und bringt gegenüber dem Prozess, den wir nachfolgend durchführen werden, keinen Vorteil.

Page 9: Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149 Filterstruktur 118 Floorplan Manager 177 Floorplan Manager BOPF Integration 177 Framework

195

Index

C Index

AABAP-CDS-View 182ABAP Core Data Services 17ABAP Development Tools 170ABAP Managed Database

Procedures 16ABAP-Programmiermodell für

SAP Fiori 16, 182Bestandteile 16

Abfrage 106Abfrageklasse 110anlegen 107

ADMIN_DATA 135Aktion 69

Aktionsklasse implementieren 73anlegen 70Ergebnistabelle 72Importparameter 'Struktur' 72Namenskonvention 72

Aktionskardinalität 71eine Knoteninstanz 71mehrere Knoteninstanzen 71statische Aktion 71

Alternativschlüssel 101Validierung 136

Anwendungsinformationen 153Assoziation 114

allgemeine Assoziation 115anlegen 116Assoziationsbindung 116Assoziationskardinalität 116

Attributeigenschaften. Siehe Eigenschaften

dynamische 131statische 128

Auslöseaktion 96Auslösebedingungen 85, 95Ausnahme /BOBX/CX_FRW 68Auswertungszeitpunkt 80

nach Änderung 81nach dem Laden 83vor dem Speichern (Fertig-stellen) 82

BBerechtigungsprüfung 121

Aktivitäten 123Berechtigungsfeld-Zuordnung 128instanzbasiert 121Modellierung 124statisch 121Voraussetzungen 122

Bibliothek 11BOBT. Siehe TestumgebungBOPF Developer Guide 74, 110Breadcrump-Navigation 174Business Object Processing

Framework 12Entwicklungsparadigmen 12Technische Voraussetzung 12Verwendung 13Vorteile 13

Business Objects. Siehe Geschäftsobjekt

Business Rule Framework Plus 181

Page 10: Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149 Filterstruktur 118 Floorplan Manager 177 Floorplan Manager BOPF Integration 177 Framework

196

Index

CCDS-Annotationen 182Cleanup 54CONVERT_ALTERN_KEY 58CO-PA. Siehe Ergebnisrech-

nungCRM. Siehe Customer Relation-

ship ManagementCRUD 12, 179Customizing 188

DDatenbankindex 103, 104Datenbanktabelle 38Datenpuffer 13Datenstruktur 37Dictionary-Elemente generieren

39DO_ACTION 58, 69

EEclipse IDE 170Eigenschaften. Siehe Attribut-

eigenschaftenEntitäten 61, 175EO_MESSAGE 67, 78, 97, 150,

163Ergebnis- und Marktsegmen-

trechnung. Siehe Ergebnis-rechnung

Ermittlung 80abhängige 91anlegen 84notwendige 91

Ermittlungskategorie 84Erweiterungskategorie 39ET_FAILED_KEY 68, 88

FFBI. Siehe Floorplan Manager

BOPF IntegrationFeeder-Klasse 177Fehleranalyse 139, 149Filterstruktur 118Floorplan Manager 177Floorplan Manager BOPF

Integration 177Framework 11

GGateway BOPF Integration 180Gateway Service Builder 180Geschäftsobjekt 22

anlegen 25, 173Aufbau 29Meta-Modell 61Modellierung 24Namenskonventionen 28

Geschäftsobjekt-Entitäten. Siehe Entitäten

Geschäftsobjektkategorie 26, 28, 32abhängiges Objekt 28Business-Objekt 28Erweiterungsobjekt 28HOME-Business-Objekte 26lokale Business-Objekte 26transportierbare Business-Ob-jekte 26

Geschäftsobjektknoten 30Geschäftsobjektschicht 50GUID 45, 101

Page 11: Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149 Filterstruktur 118 Floorplan Manager 177 Floorplan Manager BOPF Integration 177 Framework

197

Index

IIntegration 169, 176IO_MODIFY 64, 112IO_READ 64IS_CTX 66IS_PARAMETERS 119IT_KEY 67

KKapselung 162Key 42Knoten 30Knotenelemente 30, 62Knotenkategorie 128Knotenstruktur 30, 33, 114, 174

Unterknoten anlegen 33Knotentyp 33

Darstellungsknoten für Ge-schäftsobjekt 33Delegierter Knoten 33Standardknoten 33

Kombi-Struktur 37, 41Kombi-Tabellentyp 37, 41Kommando-Entwurfsmuster 59Komplexe Konstante 47Komposition 115

reguläre Komposition 115Spezialisierung 115

Konfigurationselement 43Konsistenzgruppe 30, 99Konstanten-Interface 43, 44, 155

Nachgenerieren 73Namenskonvention 47

Konstantenschnittstelle. Siehe Konstanten-Interface

Konstante Struktur. Siehe Komplexe Konstante

Kundenrechnung 22, 23Rechnungskopf 22Rechnungspositionen 22Rechnungsstatus 24

Kurzdump 151

LLaufzeitfehler 152Library-Klasse 133

MModell-Klasse 163MODIFY 58

OOData 179

OData-Services 179, 184

PParent_key 42Prüfen und Korrigieren 44

QQuery. Siehe Abfrage

RRepository-Namen vorschlagen

35Retrieve 57Retrieve_by_association 57Root_key 42

Page 12: Inhaltsverzeichnis · FBI. Siehe Floorplan Manager BOPF Integration Feeder-Klasse 177 139, 149 Filterstruktur 118 Floorplan Manager 177 Floorplan Manager BOPF Integration 177 Framework

198

Index

SS/4HANA Development

Model. Siehe ABAP-Programmiermodell für SAP Fiori

SAP Fiori Development Model. Siehe ABAP-Programmiermodell für SAP Fiori

SAP NetWeaver Development Roadmap 170

SELECT_ALL 108SELECT_BY_ELEMENTS 109,

178Service Definition Adaptation

Language 181Servicemanager 51, 56, 157

Aufrufe 157Erzeugung 57

Serviceschicht 49Status- & Aktionsmanagement

187

TTestumgebung 139

Einstellungen 144Knoteninstanzen laden 141, 146

TransaktionBOBT 48, 148BOBX 25, 39, 171SE91 150SEGW 180ST22 151SU20 122SU21 124

Transaktionsmanager 51, 53Erzeugung 53

Transaktionsmuster 54Save & Continue 54Save & Exit 54

Transaktionsschicht 49Transaktionszyklus 53, 55

Interaktionsphase 56transiente Struktur 37

UUIBB 177

VValidierung 93

Aktionsvalidierung 93, 138anlegen 94Konsistenzvalidierung 94, 99, 138

Verwaltungsdaten 134