Der Inhalt dieses Projektes entstammt einer von mir bearbeiteten Fallstudie, während meiner Weiterbildung zum SAP-Entwickler und Berater.
1. Kundenauftrag
Der Kunde ist ein mittelständisches Unternehmen, dass seine Produkte über eine Internet-Plattform vertreiben möchte. Dazu benötigt das Unternehmen eine Datenverarbeitungslösung. Bei dieser Lösung soll der Online-Shop als Web-Präsentation dem Online-Käufer zu Verfügung gestellt werden. Alle nicht Onlinefähigen Prozesse sollen über ein SAP-ERP System laufen.
Hierbei wünscht der Kunde eine Kundenverwaltung, welche einmalig Datenimportieren kann z.B. aus einem Altsystem und danach kontinuierlich Datenübernahme ermöglicht.
Die Kundenverwaltung muss mehrsprach und -mandantenfähig sein.
Eine Artikelverwaltung enthalten
Exportfähigkeit von Daten aufweisen zu anderen Online-Shops
Optionen bereithalten weitere Module zu integrieren, wie Angebotsverwaltung, Auftragsverwaltung und die Verwaltung von Werbung
1.1 Richtlinien
Fremdobjekte:
Domänen:
MANDT, SPRAS, LAND1, MEINS, WAERS
Transp. Tabellen:
T000, T002, T005, T006, TCURC, TCURX, TCURT
Hinweis: Für Fremdschlüsselbeziehung zu diesen Tabellen benötigte Domänen sind erlaubt
Namenskonventionen:
Allgemein: ZFS3_……
Klassen: ZCL_FS3_…
Interfaces: ZIF_FS3_…
Funktionsbausteine: Z_FS3_…..
Appends: ZA….
1.2 Import Datei im CSV-Format für die Kundenverwaltung in SAP
1.3 Präsentationsfolien zur Kundenverwaltung in SAP
2. Das Pflichtenheft für die Kundenverwaltung in SAP
2.1 Einleitung
2.1.1 Allgemeines
Dieses Dokument dient der Beschreibung der Anforderungen und Funktionen für die Entwicklung eines neuen Datenverarbeitungssystems für die Firma Muster GmbH. Das Hauptziel dieses Pflichtenhefts ist es, die aktuellen Mängel im bestehenden System zu identifizieren und klare Anforderungen an das neue System festzulegen.
2.1.2 Zweck und Ziel dieses Dokuments
Der Zweck dieses Dokuments besteht darin, alle relevanten Informationen bezüglich des geplanten Projekts zu erfassen und zu strukturieren. Es soll als Leitfaden dienen, um sicherzustellen, dass alle Beteiligten ein gemeinsames Verständnis über die Anforderungen an das neue System haben.
2.1.3 Projektbezug
Das Projekt bezieht sich auf die Ersetzung der aktuellen Datenverarbeitungslösung der Firma Muster GmbH durch ein neues ERP-System sowie die Umwandlung des Onlineshops in eine reine Webpräsentation.
2.2 Konzept und Rahmenbedingungen
2.1 Ziele des Anbieters
Der Anbieter strebt an, eine benutzerfreundliche und effiziente Lösung anzubieten, die es den Anwendern ermöglicht, ihre Aufgaben schnell und einfach zu erledigen. Darüber hinaus soll die Software regelmäßig aktualisiert und verbessert werden, um den sich ständig ändernden Bedürfnissen der Benutzer gerecht zu werden.
Der Anbieter zielt darauf ab, eine intuitive und leistungsfähige Kundenverwaltungssoftware bereitzustellen, die es den Nutzern ermöglicht, ihre Aufgaben mit maximaler Effizienz zu bewältigen. Die Software wird kontinuierlich anhand von Benutzerfeedback und Marktanalysen weiterentwickelt, um sicherzustellen, dass sie den dynamischen Anforderungen der Kunden gerecht wird und stets auf dem neuesten Stand der Technologie bleibt.
2.3 Benutzer / Zielgruppe
Die Ziele des Anwenders sind eine Steigerung der Produktivität, eine Vereinfachung komplexer Prozesse und die Verbesserung der Arbeitsabläufe durch den Einsatz dieser Softwarelösung. Der Nutzen für den Anwender liegt in einer Zeit- und Kostenersparnis sowie in einer verbesserten Qualität der Arbeitsergebnisse.
Die primären Ziele für die Anwender sind die Optimierung ihrer Geschäftsprozesse im Bereich Kundenmanagement sowie das Erreichen einer höheren Produktivität durch Automatisierung wiederkehrender Aufgaben. Der Einsatz dieser Softwarelösung führt zu einer signifikanten Zeitersparnis bei der Bearbeitung von Bestellungen und verbessert gleichzeitig die Genauigkeit der Datenverarbeitung. Dies resultiert in Kosteneinsparungen sowie in einer Steigerung der Qualität des Kundenservices.
Die Zielgruppe für diese Softwarelösung ist vor allem Unternehmen aus verschiedenen Branchen, die ihre Arbeitsprozesse optimieren möchten. Die Benutzer können von Mitarbeitern auf verschiedenen Ebenen innerhalb eines Unternehmens bis hin zu Einzelpersonen mit speziellen Aufgabenbereichen reichen.
Die entwickelte ERP-Software richtet sich an mittelständische bis große Unternehmen verschiedener Branchen mit dem Bedarf an effektiver Kunden- und Bestellverwaltung. Die Bandbreite potentieller Benutzer erstreckt sich von Administratoren, welche einen Gesamtüberblick über alle Kundendaten benötigen, bis hin zu spezialisierten Benutzern mit Fokus auf das Platzieren individueller Bestellungen.
2.4 Systemvoraussetzungen
Die Software erfordert bestimmte Systemvoraussetzungen wie z.B. eine bestimmte Betriebssystemversion oder Hardwareanforderungen, um ordnungsgemäß zu funktionieren.
Für einen einwandfreien Betrieb setzt unsere SAP ABAP-basierte Software bestimmte technische Voraussetzungen voraus: Hierzu gehören eine kompatible Version des SAP-Systems sowie adäquate Hardware-Ressourcen zur Gewährleistung reibungsloser Abläufe ohne Leistungsengpässe.
2.5 Ressourcen
Für die Nutzung dieser Softwarelösung sind bestimmte Ressourcen erforderlich, wie z.B. Schulungen für die Mitarbeiter oder technische Unterstützung bei Problemen während der Implementierung und Nutzung der Software.
Um das volle Potenzial der ERP-Lösung ausschöpfen zu können, empfehlen wir begleitende Schulungsmaßnahmen für Mitarbeiter zur Sicherstellung eines effektiven Einsatzes im Arbeitsalltag. Darüber hinaus sollten alle Phasen von sachverständigem Personal durchgeführt werden– von der Implementierung bis zum laufenden Betrieb – um etwaige Herausforderungen schnellstmöglich zu bewältigen.
3 Beschreibung der Anforderungen
3.1 Transparente Tabelle erstellen / Datenübernahme
Nr. / ID | 01 | Nichttechnischer Titel | Kundentabelle, Übernahmeprogramm | |||
Quelle | /T100/ | Verweise | Priorität | 1 | ||
3.1.1 Beschreibung
3.1.2 Struktur der Tabelle
Feld | Datentyp(Länge) | Bemerkung |
MANDT (Schlüsselfeld) | CLNT(3) | Mandant |
KDNR (Schlüsselfeld) | CHAR(6) | Kundennummer |
ANREDE | CHAR(15) | |
NAME | CHAR(25) | |
VORNAME | CHAR(20) | |
FIRMA | CHAR(60) | |
STRASSE | CHAR(50) | |
ORT | CHAR(30) | |
LAND | LAND | |
PLZ | CHAR(8) | |
SPERRE | CHAR(1) | buchhalterische Sperre |
DATUM | DATS(8) | letzte Änderung des Stammsatzes |
UMSATZ | CURR(10, 2) | Summe des Gesamtumsatzes |
FAX | CHAR(15) | |
TELEFON | CHAR(15) | |
CHAR(60) | ||
URL | CHAR(128) | URL Adresse |
WAHRUNG | CUKY(5) | Währung |
SPRACHE | SPRAS | Kommunikationssprache |
WEBLOGIN | CHAR(20) | Weblogin für Kundendaten |
WEBPW | CHAR(20) | Webpassword für Kundendaten |
MEMO | CHAR(255) | Allgemeine Informationen |
MANUELL | CHAR(1) | Manuell erfasste Kunden |
.APPEND | STRU | Kundenklassifizierung |
ZVIP | CHAR(1) | Kunde als VIP |
ZNORMAL | CHAR(1) | Kunde als Normal |
3.1.3 Aufbau des zweistufigen Datenmodells
Feld
FELDNAME
Datenelement
ZFELDNAME01
Domäne
ZDFELDNAME01
3.1.4 In diesem Abschnitt wird der Datenimportprozess beschrieben
- Das Übernahmeprogramm wird als wiederverwendbare Komponente zur Verfügung gestellt. Ferner wird es möglich sein, das Programm periodisch im Hintergrund ausführen zu lassen. Dabei sollen alle neuen Adressen automatisch erkannt und zu dem bereits vorhandenen Bestand hinzugefügt werden.
- Als Duplikate gelten alle Datensätze, die in den Feldern: NAME, VORNAME, FIRMA, STRASSE, ORT und PLZ gleiche Inhalte aufweisen.
- Die zu importierenden Adressen stehen auf dem Applikation-Server in Form einer Textdatei zur Verfügung. Der Zugangspfad und der Name der Datei wird mit Hilfe eines Selektionsfeldes eingegeben werden können.
- Mehrfach vorhandene Telefonnummer, E-Mails oder Faxnummern können nicht übernommen werden. Dazu wäre eine weitere Tabelle notwendig. Es ist ausreichend, diese Informationen im Memo-Feld zu dokumentieren.
- Das Programm wird über geeignete Enhancement Points/Sections verfügen.
- Die E-Mail-Adressen werden auf ihre Syntax überprüft werden. Dazu nutzen Sie die Funktionalität der Regular-Expression. Die benötigten Informationen finden Sie in der Datei: Regular Expression Processing in ABAP.pdf. Die E-Mails, die syntaktisch falsch sind, sollen im Memo-Feld abgelegt werden.
- Die Überprüfung der E-Mails soll mithilfe einer Methode durchgeführt werden. Zur Sicherstellung der Grundfunktionalität der E-Mail-Validierung sind Modultests mit ABAP-Unit zu erstellen. Es sollen ca. 6 verschiedene E-Mails überprüft werden.
Nr. / ID | 02 | Nichttechnischer Titel | Liste der Kunden, Verarbeitugsdynpro | |||
Quelle | /T120/T122/ | Verweise | Priorität | 1 | ||
3.2.1 Beschreibung
3.2.2 In diesem Abschnitt wird die Grundliste, Dynpro-Verknüpfung und Berechtigungsstruktur sowie automatischer Generierung von Kundennummern erstellt:
- Erzeugung einer Grundliste, die Kunden aus der transparenten Tabelle ZKUNDE01 anzeigt.
- Realisierung der Grundliste mit der Write-Anweisung.
- Anlegen eines Selektionsbilds mit Abgrenzung für Kundenummer und Firma.
- Verzweigung zu einem Bild, auf dem die Daten des ausgewählten Kunden bearbeitet werden können.
- Bereitstellung von Funktionalitäten wie Dynpro verlassen, Kunden löschen (manuell erfasste Adressen), Daten bearbeiten und speichern (mit E-Mail-Validierung), neuen Kunden anlegen sowie Sperren von Eingabefeldern.
- Definition eines entsprechenden Berechtigungsobjekts und Zuordnung von Berechtigungen über ein Berechtigungsprofil zu einem Benutzer in Ihrer Gruppe.
- Nutzung des Funktionsbausteins NUMBER_GET_NEXT zur automatischen Erstellung von Kundennummern.
3.3 Dynproelemente zur Ein-/Ausgabe, Einfacher Erfassungsdialog
Nr. / ID | 03 | Nichttechnischer Titel | Dynproelemente, Erfassungsdialog | |||
Quelle | /T140/ | Verweise | Priorität | 1 | ||
3.3.1 Beschreibung
3.3.2 In diesem Abschnitt werden die Anforderungen an die Benutzeroberfläche und Kundenklassifizierung realisiert
- Implementierung einer Status-Ikone zur Klassifizierung von Kunden basierend auf dem Umsatz.
- Status-Ikone Farbcode:
- grün: 10000 Euro <= Umsatz
- gelb: 5000 Euro <= Umsatz <10000
- rot: 0 <= Umsatz < 5000
- Integration von zwei Auswahlknöpfen zur Klassifizierung des Kunden als VIP oder Normal in der Tabelle ZKUNDE01.
- Dynamische Sortiermöglichkeit der Grundliste nach dem Feld, auf dem sich der Cursor befindet.
- Erstellung eines passenden Status und Titels für die Grundliste und das Dynpro.
3.4 Programm für Bestellungen
Nr. / ID | 04 | Nichttechnischer Titel | Programm für Bestellungen | |||
Quelle | T150 | Verweise | Priorität | 1 | ||
3.4.1 Beschreibung
· Tabellenanlage: Erstellung der Tabellen ZBESTELL01, ZBESTPOS01 und ZBESTELLPROT01 mit Fremdschlüsselbeziehungen.
· Trägerdynpro 100: Einrichtung eines Tabstrips mit zwei Seiten für Bestellungen (Subscreendynpro 200) und Rechnungen (Subscreendynpro 300).
· Funktionen auf "Bestellungen"-Tab: Neue Bestellung: Aufruf eines modalen Dynpros 400 zur Erfassung neuer Bestellungen.
· Details: Bearbeitung einer ausgewählten Bestellung über ein modales Dynpro 400.
· Löschen: Entfernung einer markierten Bestellung aus dem System.
· Vorbereitung Dynpro 400: Anlegen des Dynpros für zukünftige Verarbeitung von Bestellungen und Positionen ohne sofortige Ausprogrammierung.
3.4.2 In der Tabelle ZBESTELL01 werden die allgemeinen Daten der Bestellung gespeichert
Feld | Datentyp(Länge) | Bemerkung |
MANDT (Schlüsselfeld) | CLNT(3) | Mandant |
KDNR (Schlüsselfeld) | CHAR(6) | Kundennummer |
BSTNR (Schlüsselfeld) | CHAR6) | Bestellnummer |
DATUM | DATS(8) | Datum der Bestellung |
SUMME | CURR(12,2) | Summe der Bestellung |
RABATT | DEC(5,2) | |
INFO | CHAR(30) | |
STATUS | CHAR(2) | Status der Bestellung (BO, BB, BA) |
WAHRUNG | CUKY(5) | Währung |
Tabelle: ZBESTELL01
Fremdschlüssel:
MANDT -> T000
KDNR -> ZKUNDE01
Aufbau des zweistufigen Datenmodells:
Feld
FELDNAME
Datenelement
ZFELDNAME01
Domäne
ZDFELDNAME01
BO – Bestellung nicht bezahlt
BB – Bestellung bezahlt
BA – Bestellung ausgeliefert
3.5 Transparente Tabelle erstellen Bestellung
Nr. / ID | 07 | Nichttechnischer Titel | Transparente Tabelle erstellen Bestellung | |||
Quelle | T153 | Verweise | Priorität | 1 | ||
3.5.1 Beschreibung
In dieser Tabelle soll immer der neu gesetzte Status der Bestellung protokolliert werden.
Diese Daten werden benötigt, um dem Kunden ein Informationssystem zur Verfügung
zu stellen.
Struktur der Tabelle
3.5.2 Struktur der Tabelle ZBESTELLPROT01
Feld | Datentyp(Länge) | Bemerkung |
MANDT | CLNT(3) | Mandant |
KDNR | CHAR(6) | Kundennummer |
BSTNR | CHAR6) | Bestellnummer |
STATUS | CHAR(2) | Bestellstatus |
DATUM | DATS(8) | Datum der Bestellung |
SUMME | CURR(12,2) | Summe der Bestellung |
ZEIT | TIMS(6) | Uhrzeit der Änderung |
INFO | CHAR(30) |
Tabelle: ZBESTELLPROT01
3.5.3 Aufbau des zweistufigen Datenmodells
Feld
FELDNAME
Datenelement
ZFELDNAME01
Domäne
ZDFELDNAME01
3.6 ALV-Grid Ausgabe mit Selectionsbild
Nr. / ID | 04 | Nichttechnischer Titel | Programm für Bestellungen | |||
Quelle | T160 | Verweise | Priorität | 1 | ||
3.6.1 Beschreibung
· Ankreuzfeld für die Auswahl ALV-Grid oder anzeigen einer Standardliste
· Sämtliche Funktionalitäten der Standardliste sollen im ALV Grid vorhanden sein.
· Die erste Spalte des ALV-Grids soll den Status in Form einer Ampel-Anzeige (Anzeige der einer der folgenden Farben: grün (Premium Kunde), gelb (Guter Kunde) oder rot (Standardkunde) des Kunden anzeigen
· Bei Doppelklick auf einen Eintrag im ALV_Grid wird der Benutzer auf das Dynpro 100 weitergeleitet.
· Beim Verlassen des Dynpros wird die ALV-Grid Liste automatisch aktualisiert ohne Verlust des Fokus auf die Kundenzeile.
· Im ALV-Grid werden alle Zeilen die eine URL Adresse beinhalten grün eingefärbt.
· Wenn eine URL-Adresse enthalten ist soll diese mit einem Doppelklick in einem Internetbrowser aufgerufen werden.
· Das Grid soll in einem Streifenmuster dargestellt werden (abwechselnd mit hellen und dunkleren Spalteneinfärbung mit Ausnahme der grün gefärbten Spalten die bleiben unberührt werden aber mitgezählt).
· Einfügen zusätzlicher Spalte mit dem errechneten Umsatz.
· Systemfunktionsleiste mit Gesamtumsatz aller Kunden des aktuellen Jahres und Gesamtumsatz der markierten Kunden des aktuellen Jahres.
3.7 Dynpro Verarbeitungslogik
Nr. / ID | 06 | Nichttechnischer Titel | Dynpro Verarbeitungslogik | |||
Quelle | /T170/ | Verweise | Priorität | 1 | ||
3.7.1 Beschreibung
DasProgramm ZKUNDE01_V06 wird verwendet, um Kundenaufträge zu erstellen und zu verwalten
3.7.2 Erstellen des Programm namens ZKUNDE01_V06 in ABAP.
- Erstelle ein Dynpro (Dynpro 400) mit zwei Bereichen: einen für den Bestellkopf und einen für die Bestellpositionen.
- Füge dem Dynpro die folgenden Drucktasten hinzu:
- Verlassen
- Neue Position
- Position löschen
- Speichern
- Implementiere die Logik für jeden dieser Drucktasten.
- Verwende den Funktionsbaustein NUMBER_GET_NEXT, um automatisch Auftragsnummern zu generieren.
- Berechne den Gesamtbetrag, einschließlich Mengen, Preise und Rabatte, beim Speichern.
- Die Bestellungen sind direkt über das Dynpro 400 zu erfassen.
- Ermögliche die freie Erfassung von Leistungen/Artikel.
- Ermögliche später die Auswahl von Leistungen/Artikelaus der Tabelle ZARTIKEL01
Verwende Datenbanksperren, um gleichzeitigen Zugriff auf die Tabellen ZKUNDE01, ZBESTELL01 und ZBESTPOS01 zu verhindern
3.8 Globale Klassen anlegen / Dynamische Programmierung
Nr. / ID | 08 | Nichttechnischer Titel | <Titel / Kurzbetreff> | |||
Quelle | /T190/T191 | Verweise | Priorität | 1 | ||
3.8.1 Beschreibung
In diesem Abschnitt wird eine flexible Generierung von Statistiken durch die Erstellung einer globalen Schnittstelle ZIF_STATISTIK01 ermöglicht. Dabei werden eine transparente Tabelle ZSTATISTIK01 angelegt, die Klasse ZCL_STATISTIK01 implementiert und auf dem Dynpro 100 verwendet.
Der Kunde möchte für die Statistiken verschiedene Klassen instanziieren, ohne das Coding ändern zu müssen. Die Umsetzung soll mithilfe der Objektorientierung erfolgen.
3.8.2 Aufgabenbeschreibung
- Definition eines globalen Interface ZIF_STATISTIK01 für die Auswertung der Bestellungen. Das Interface soll Definitionen für die folgenden Funktionalitäten enthalten:
- durchschnittlicher Umsatz pro Bestellung/Kunde/Geschäftsjahr (Methode SchnittUmsatz).
- maximaler Einzelumsatz pro Kunde (Methode MaxUmsatz).
- durchschnittlicher Umsatz pro Tag/Geschäftsjahr (Methode TagUmsatz).
- Erstellung einer transparenten Tabelle ZSTATISTIK01:
- In dieser Tabelle sollen das Interface und die implementierende Klasse gespeichert werden.
- Optional: Erstellung eines Menüeintrags (Customizing) auf dem Dynpro 100, der nur für berechtigte Personen zugänglich ist. Über diese Funktion soll der Benutzer ein Interface mit der dazugehörenden Klasse auswählen und speichern können. Die Suchhilfe soll alle Interfaces/Klassen mit dem Präfix ZIF_STATISTIK/ZCL_STATISTIK anzeigen.
- Implementierung des Interface in der Klasse ZCL_STATISTIK01:
- Die Klasse soll das Interface ZIF_STATISTIK01 implementieren und die definierten Methoden bereitstellen.
- Verwendung der Klasse auf dem Dynpro 100:
- Lassen Sie die Umsätze auf dem Dynpro 100 anzeigen.
- Das Programm soll die in der Tabelle ZSTATISTIK## gespeicherte Klasse instanziieren und überprüfen, ob die Klasse das vorgegebene Interface implementiert.
- Hinweis: Für die Ermittlung des Klassenobjektes nutzen Sie die RTTI-Klassen.
Statistik. Berechnung am xx.xx.2024 für das Geschäftsjahr 2023 (T191)
Nr. / ID | 09 | Nichttechnischer Titel | <Titel / Kurzbetreff> | |||
Quelle | /T210/T215 | Verweise | Priorität | 1 | ||
3.9.1 Beschreibung
In diesem Abschnitt wird eine WebDynpro-Anwendung für Kunden erstellt, die über die Tabelle ZKUNDE01 aufzugreifen kann. Diese Anwendung erfasst und ändert Kontakt- und Zugangsdaten, zeigt alle Kundenbestellungen mit Positionen und den aktuellen Bestellstatus an, nutzt das Shared Object Memory zur Datenoptimierung, präsentiert alle Informationen in der Kundensprache und implementiert einen Configuration-Controller zur Steuerung von Listen- oder Portal-Events.
3.9.2 Entwicklungsschritte
- Erstellung einer WebDynpro-Anwendung:
- Erstellen einer WebDynpro-Anwendung, auf die der Kunde über das Internet zugreifen kann.
- Der Zugriff erfolgt über die Zugangsdaten, die in der Tabelle ZKUNDE01 gespeichert sind.
- Funktionalitäten für den Kunden:
- Erfassen/Änderung der Kontakt- und Zugangsdaten.
- Anzeige aller Bestellungen des Kunden mit Bestellpositionen.
- Anzeige des aktuellen Status der ausgewählten Bestellung (Daten aus der Tabelle ZBESTELLPROT01).
- Zeitkritischer Zugriff auf Bestellungen und Positionen:
- Verwenden Sie das Shared Object Memory Konzept, um die Antwortzeiten der Anwendung zu reduzieren.
- Stellen Sie sicher, dass beim Ändern einer Bestellung das Shared Object Memory automatisch aktualisiert wird, indem die entsprechenden Objekte invalidiert werden.
- Beim Neuaufruf der Liste sollen die Objekte neu erzeugt werden.