Der Inhalt dieses Projektes entstammt einer von mir bearbeiteten Fallstudie, während meiner Weiterbildung zum SAP-Entwickler und Berater.

Inhalte Anzeigen

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

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

Kurzes Vorführvideo zur Kundenverwaltung

2. Das Pflichtenheft für die Kundenverwaltung in SAP

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

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.

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.

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.

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.

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

Nr. / ID01Nichttechnischer TitelKundentabelle, Übernahmeprogramm
Quelle                 /T100/Verweise Priorität1
FeldDatentyp(Länge)Bemerkung
MANDT (Schlüsselfeld)CLNT(3)Mandant
KDNR (Schlüsselfeld)CHAR(6)Kundennummer
ANREDECHAR(15) 
NAMECHAR(25) 
VORNAMECHAR(20) 
FIRMACHAR(60) 
STRASSECHAR(50) 
ORTCHAR(30) 
LANDLAND 
PLZCHAR(8) 
SPERRECHAR(1)buchhalterische Sperre
DATUMDATS(8)letzte Änderung des Stammsatzes
UMSATZCURR(10, 2)Summe des Gesamtumsatzes
FAXCHAR(15) 
TELEFONCHAR(15) 
EMAILCHAR(60) 
URLCHAR(128)URL Adresse
WAHRUNGCUKY(5)Währung
SPRACHESPRASKommunikationssprache
WEBLOGINCHAR(20)Weblogin für Kundendaten
WEBPWCHAR(20)Webpassword für Kundendaten
MEMOCHAR(255)Allgemeine Informationen
MANUELLCHAR(1)Manuell erfasste Kunden
.APPENDSTRUKundenklassifizierung
ZVIPCHAR(1)Kunde als VIP
ZNORMALCHAR(1)Kunde als Normal

Feld

FELDNAME

Datenelement

ZFELDNAME01

Domäne

ZDFELDNAME01

  • 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. / ID02Nichttechnischer TitelListe der Kunden, Verarbeitugsdynpro
Quelle                 /T120/T122/Verweise Priorität1
  • 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.
Nr. / ID03Nichttechnischer TitelDynproelemente, Erfassungsdialog
Quelle                 /T140/Verweise Priorität1
  • 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.
Nr. / ID04Nichttechnischer TitelProgramm für Bestellungen
Quelle                 T150Verweise Priorität1
·   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.
FeldDatentyp(Länge)Bemerkung
MANDT (Schlüsselfeld)CLNT(3)Mandant
KDNR (Schlüsselfeld)CHAR(6)Kundennummer
BSTNR (Schlüsselfeld)CHAR6)Bestellnummer
DATUMDATS(8)Datum der Bestellung
SUMMECURR(12,2)Summe der Bestellung
RABATTDEC(5,2) 
INFOCHAR(30) 
STATUSCHAR(2)Status der Bestellung (BO, BB, BA)
WAHRUNGCUKY(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

Nr. / ID07Nichttechnischer TitelTransparente Tabelle erstellen Bestellung
Quelle                 T153Verweise Priorität1

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
FeldDatentyp(Länge)Bemerkung
MANDTCLNT(3)Mandant
KDNRCHAR(6)Kundennummer
BSTNRCHAR6)Bestellnummer
STATUSCHAR(2)Bestellstatus
DATUMDATS(8)Datum der Bestellung
SUMMECURR(12,2)Summe der Bestellung
ZEITTIMS(6)Uhrzeit der Änderung
INFOCHAR(30) 

Tabelle: ZBESTELLPROT01

Feld

FELDNAME

Datenelement

ZFELDNAME01

Domäne

ZDFELDNAME01

Nr. / ID04Nichttechnischer TitelProgramm für Bestellungen
Quelle                 T160Verweise Priorität1
·   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.   
Nr. / ID06Nichttechnischer TitelDynpro Verarbeitungslogik
Quelle                 /T170/Verweise Priorität1

DasProgramm ZKUNDE01_V06 wird verwendet, um Kundenaufträge zu erstellen und zu verwalten

  • 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

Nr. / ID08Nichttechnischer Titel<Titel / Kurzbetreff>
Quelle                 /T190/T191Verweise Priorität1

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.

  1. Definition eines globalen Interface ZIF_STATISTIK01 für die Auswertung der Bestellungen. Das Interface soll Definitionen für die folgenden Funktionalitäten enthalten:
  2. durchschnittlicher Umsatz pro Bestellung/Kunde/Geschäftsjahr (Methode SchnittUmsatz).
  3. maximaler Einzelumsatz pro Kunde (Methode MaxUmsatz).
  4. durchschnittlicher Umsatz pro Tag/Geschäftsjahr (Methode TagUmsatz).
  5. Erstellung einer transparenten Tabelle ZSTATISTIK01:
  6. In dieser Tabelle sollen das Interface und die implementierende Klasse gespeichert werden.
  7. 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.
  8. Implementierung des Interface in der Klasse ZCL_STATISTIK01:
  9. Die Klasse soll das Interface ZIF_STATISTIK01 implementieren und die definierten Methoden bereitstellen.
  10. Verwendung der Klasse auf dem Dynpro 100:
  11. Lassen Sie die Umsätze auf dem Dynpro 100 anzeigen.
  12. Das Programm soll die in der Tabelle ZSTATISTIK## gespeicherte Klasse instanziieren und überprüfen, ob die Klasse das vorgegebene Interface implementiert.
  13. 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. / ID09Nichttechnischer Titel<Titel / Kurzbetreff>
Quelle                 /T210/T215Verweise Priorität1

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.

  1. Erstellung einer WebDynpro-Anwendung:
  2. Erstellen einer WebDynpro-Anwendung, auf die der Kunde über das Internet zugreifen kann.
  3. Der Zugriff erfolgt über die Zugangsdaten, die in der Tabelle ZKUNDE01 gespeichert sind.
  4. Funktionalitäten für den Kunden:
  5. Erfassen/Änderung der Kontakt- und Zugangsdaten.
  6. Anzeige aller Bestellungen des Kunden mit Bestellpositionen.
  7. 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.