Erlebe Software - Individuelle SAP Software https://erlebe-software.de Tue, 11 Dec 2018 08:58:53 +0000 de-DE hourly 1 http://wordpress.org/?v=4.2.6 E-Book: Die besten Blogbeiträge zum Thema „ABAP“ https://erlebe-software.de/download/e-book-die-besten-blogbeitraege-zum-thema-abap/ https://erlebe-software.de/download/e-book-die-besten-blogbeitraege-zum-thema-abap/#comments Tue, 11 Dec 2018 08:00:46 +0000 https://mindsquare.de/?post_type=downloads&p=43759 In unserem E-Book erfahren Sie alles Wissenswerte über ABAP, die proprietäre Programmiersprache von SAP.

Der Beitrag E-Book: Die besten Blogbeiträge zum Thema „ABAP“ stammt von https://erlebe-software.de

]]>
Die Programmiersprache ABAP (Advanced Business Application Programming) wurde fortlaufend an die aktuellen Entwicklungen angepasst.

In unserem E-Book warten u.a. folgende Themen auf Sie:

Diese Programmiersprache der SAP ähnelt in ihrer Syntax COBOL und wurde speziell für die Massendatenverarbeitung in kommerziellen Anwendungen entwickelt.

Seit 1990 basieren alle SAP R/3-Module auf ABAP. Seit der Einführung von SAP NetWeaver bietet die SAP neben ABAP auch eine Ablauf- und Programmierumgebung für die Programmiersprache Java an. Aus diesem Grund gibt es neben dem herkömmlichen ABAP-basierten Applikationsserver einen weiteren Applikationsserver, auf dem die Java-basierten Programme umgesetzt werden.

Lesen Sie unser E-Book und erfahren Sie mehr Wissenswertes über ABAP!

Der Beitrag E-Book: Die besten Blogbeiträge zum Thema „ABAP“ stammt von https://erlebe-software.de

]]>
https://erlebe-software.de/download/e-book-die-besten-blogbeitraege-zum-thema-abap/feed/ 0
S/4HANA Cloud Intelligent ERP – Was ist Machine Learning? https://erlebe-software.de/sap-hana/s4-hana/s4hana-intelligent-erp-machine-learning/ https://erlebe-software.de/sap-hana/s4-hana/s4hana-intelligent-erp-machine-learning/#comments Fri, 07 Dec 2018 08:00:32 +0000 https://erlebe-software.de/?p=12534 Machine Learning (ML) ist in aller Munde und hat sich besonders in den letzten Jahren als Begriff im Alltag etabliert. So nennt auch die SAP Machine Learning als wesentlichen Bestandteil der Idee des „intelligenten ERP“ S/4HANA Cloud. Doch was ist eigentlich Machine Learning und wann kann Machine Learning eingesetzt werden? Um diese Fragen zu beantworten, […]

Der Beitrag S/4HANA Cloud Intelligent ERP – Was ist Machine Learning? stammt von https://erlebe-software.de

]]>
Machine Learning (ML) ist in aller Munde und hat sich besonders in den letzten Jahren als Begriff im Alltag etabliert. So nennt auch die SAP Machine Learning als wesentlichen Bestandteil der Idee des „intelligenten ERP“ S/4HANA Cloud. Doch was ist eigentlich Machine Learning und wann kann Machine Learning eingesetzt werden?

Um diese Fragen zu beantworten, mache ich Sie zunächst mit grundlegenden Begriffen der ML-Welt vertraut und gebe Ihnen dann ein erstes Modell zur Entscheidungshilfe zur Hand, wann Machine Learning eingesetzt werden kann.

Was ist Machine Learning?

Der Begriff Machine Learning ist an den Begriff des Lernens angelehnt, wie wir es aus dem Alltag kennen. Wenn Menschen lernen, nehmen sie Informationen auf, machen Erfahrungen und nutzen diese für zukünftige Situationen. Analog geht es bei Machine Learning darum, dass Computer aus vorhandenen Daten Erkenntnisse ziehen, und diese nutzen, um mit neuen, unbekannten Daten umzugehen. Das heißt, Computer können über ML-Algorithmen Daten analysieren und von sich aus Entwicklungen vorhersagen, neue Daten kategorisieren, Handlungsvorschläge geben und Vieles mehr. Doch bevor wir uns mit den verschiedenen Arten des Machine Learnings beschäftigen, machen wir einen kurzen Ausflug in die ML-Terminologie.

Machine Learning Terminologie

Ein fertiges ML-System, das Ergebnisse liefert, wird Modell genannt. Ein Modell bekommt Eingabedaten (Input) und generiert aus diesen eine Ausgabe (Output). Damit dieses Modell auch die richtigen Ergebnisse liefert, wird es trainiert. Das bedeutet, es bekommt als Input Trainingsdaten, und wird dem gewünschten Output entsprechend angepasst. 

Illustration Machine Learning: Input --> Modell --> Output

Kategorisierung von Machine Learning

Grundsätzlich lässt sich Machine Learning aus zwei Blickwinkeln betrachten: einerseits wird unterschieden, nach welcher Methode ein Modell trainiert wird, andererseits danach, welche Funktion das Modell nach dem Training hat. Das illustriert die folgende Abbildung. Die englischen Begriffe wurden dabei beibehalten, da diese meist auch in der Praxis verwendet werden.

Machine Learning --> Trainingsmethoden --> Supervised, Unsupervised, Semi-Supervised, Reinforcement; Funktion --> Classification, Regression, Clustering, Density Estimation, Deminesionality Reduction

Unterscheidung nach Trainingsmethode

Die Trainingsmethoden lassen sich in erster Linie dadurch unterscheiden, wie das Ziel definiert ist, nach dem ein Algorithmus das Modell generiert. Im Supervised Learning (dt. überwachtes Lernen) ist genau vorgegeben, welcher Output aus einem bestimmten Input generiert werden soll und dahingehend „überwacht“. Input-Daten sind jeweils mit einem „Label“ (= gewünschter Output) versehen. Das Modell wird während des Trainings anhand der Diskrepanz zwischen erwünschtem Output und tatsächlichem Output angepasst. Diese Methode eignet sich beispielsweise für die Kategorisierung von Bildern. Im Unsupervised Learning hingegen wird das Modell ohne festgelegtes Ziel generiert, der Algorithmus nutzt ungelabelte Daten und findet das Ergebnis von sich aus. Entsprechend wird im Semi-Supervised Learning eine Mischung aus gelabelten und ungelabelten Daten genutzt. Im Reinforcement Learning wird ein zu erreichendes Gesamtziel vorgegeben (z.B. „erreiche eine möglichst hohe Punktzahl im Spiel Tetris“), in dem ein Modell in seinen zielführenden Handlungen „bestärkt“ wird.

Unterscheidung nach Funktion

Eine weitere Möglichkeit, Machine-Learning- Algorithmen einzuteilen, ist die Unterscheidung nach der Funktionalität des gewonnenen Modells. In einer Classification (Klassifikation) wird jeder Input einer bestimmten Kategorie zugeordnet. Mit dieser Technik können beispielsweise Objekte auf Bildern erkannt oder Texte nach Thema sortiert werden. Regression wird genutzt, um Werte zu erzeugen, die nicht bekannt sind. Ein Beispiel ist hier die Vorhersage des Preisverlaufs eines Produkts (Output) auf Grundlage der Preise des letzten Monats (Input). Clustering wird genutzt, um Daten zu gruppieren. Density Estimation (Kerndichteschätzung) kann verwendet werden, um die Wahrscheinlichkeit einer Zufallsvariable zu schätzen. Im Zuge einer Dimensionality Reduction (Dimensionenreduktion) können Daten auf ihre wesentlichen, wichtigen Attribute reduziert werden. Beispielsweise könnte ein Ziel sein, anhand von Daten männliche und weibliche Löwen zu unterscheiden. Ein ML-Modell könnte feststellen, dass das Gewicht eines Löwen für die Unterscheidung hilfreicher ist als die Farbe des Fells, und diese ignoriert werden kann.

Clustering Ilustration

Illustration Clustering: Datenpunkte, die zusammengefasst werden können, werden demselben Cluster zugeordnet.

 

Wann kann Machine Learning eingesetzt werden?

Nicht jedes Problem kann mit Machine Learning sinnvoll gelöst werden. So können manchmal regelbasierte KI-Programme zielführender sein (Beispiel: „Wenn ein Auftrag mit Priorität ‚hoch‘ angelegt wird, sende eine Benachrichtigung an Bearbeiter XY“). Können wir also eine Problemlösung durch feste Regeln definieren, ist eine regelbasierte KI die bessere Lösung als eine ML-Lösung. Um aber eine erste Intuition dafür zu bekommen, wann eine Machine-Learning-Lösung infrage kommt, können wir uns am folgenden Diagramm orientieren.

Ablaufmodell Cheatsheet - wann ist Machine Learning sinnvoll?

Machine Learning – Zwischen Theorie und Nutzen

Ich hoffe, es ist mir gelungen, Ihnen mit diesem Blogeintrag den Einstieg in das Thema Machine Learning erleichtern. Einige der Punkte waren zugegebenermaßen sehr theoretisch. Da stellt sich die Frage, wie diese Konzepte in der Praxis sinnvoll eingesetzt werden können. Die SAP aktiv daran, Machine Learning in S/4HANA Cloud unkompliziert zugänglich zu machen, um Prozesse zu automatisieren, zu vereinfachen und zu verschnellern. Aber welche ML-Funktionalitäten bietet S/4HANA Cloud eigentlich? Wie können konkrete Use-Cases aussehen? Um diese Fragen geht es im nächsten Beitrag zu S/4HANA Cloud Intelligent ERP. Haben Sie Fragen zu Machine Learning? Kommentieren Sie oder schreiben Sie uns, wir helfen gerne weiter.


Weitere Quellen: openSAP

Der Beitrag S/4HANA Cloud Intelligent ERP – Was ist Machine Learning? stammt von https://erlebe-software.de

]]>
https://erlebe-software.de/sap-hana/s4-hana/s4hana-intelligent-erp-machine-learning/feed/ 0
E-Book: Die besten Blogbeiträge zu „SAP Entwicklung“ https://erlebe-software.de/download/e-book-beliebteste-blogbeitraege-zu-sap-entwicklung/ https://erlebe-software.de/download/e-book-beliebteste-blogbeitraege-zu-sap-entwicklung/#comments Thu, 06 Dec 2018 08:00:45 +0000 https://mindsquare.de/?post_type=downloads&p=43667 Erfahren Sie in unserem E-Book, was mit der SAP Entwicklung an Individualisierung alles möglich ist.

Der Beitrag E-Book: Die besten Blogbeiträge zu „SAP Entwicklung“ stammt von https://erlebe-software.de

]]>
SAP gehört zur am weitesten verbreiteten Business Software in Deutschland. Nahezu alle mittleren und großen Unternehmen nutzen die Softwarelösung des Weltkonzerns.

Unser E-Book mit den besten Blogbeiträgen beschäftigt sich mit der SAP Entwicklung. U.a. werden folgende Themen näher beleuchtet:

Wo lohnt sich eine Individualisierung des SAP Standards? Entscheidend ist, in welchen Geschäftsbereichen eine individuelle Lösung die größte Ergebnisverbesserung erzielt. Indem sie die Anwendung intuitiver macht und so den Prozess beschleunigt oder, indem sie ganz neue Funktionen integriert und Prozesse aufwertet.

Die Möglichkeiten der Individualisierung sind umfangreich: Von der Entwicklung einfacher Reports bis hin zur Entwicklung komplexer Anwendungen mit eigener Benutzeroberfläche ist vieles möglich – die technologische Expertise vorausgesetzt.

Erfahren Sie in unserem E-Book weitere Möglichkeiten der Individualisierung!

Der Beitrag E-Book: Die besten Blogbeiträge zu „SAP Entwicklung“ stammt von https://erlebe-software.de

]]>
https://erlebe-software.de/download/e-book-beliebteste-blogbeitraege-zu-sap-entwicklung/feed/ 0
Die 3 häufigsten Fragen zu S/4HANA Lizenzen https://erlebe-software.de/sap-hana/s4-hana/3-fragen-zu-s4hana-lizenzen/ https://erlebe-software.de/sap-hana/s4-hana/3-fragen-zu-s4hana-lizenzen/#comments Thu, 22 Nov 2018 07:30:43 +0000 https://erlebe-software.de/?p=12464 „Was ändert sich für das Unternehmen im S/4HANA Lizenzmodell?“, „Müssen wir doppelt bezahlen, wenn wir ERP und S/4 parallel betreiben während des Projekts?“ Diese und viele andere Fragen werden beim Thema Lizenzmodell in der Vorbereitung auf eine S/4HANA-Migration, aber auch schon beim Entwurf der HANA-Roadmap aufgeworfen. In diesem Blogartikel möchte ich Ihnen die drei mir […]

Der Beitrag Die 3 häufigsten Fragen zu S/4HANA Lizenzen stammt von https://erlebe-software.de

]]>
„Was ändert sich für das Unternehmen im S/4HANA Lizenzmodell?“, „Müssen wir doppelt bezahlen, wenn wir ERP und S/4 parallel betreiben während des Projekts?“ Diese und viele andere Fragen werden beim Thema Lizenzmodell in der Vorbereitung auf eine S/4HANA-Migration, aber auch schon beim Entwurf der HANA-Roadmap aufgeworfen. In diesem Blogartikel möchte ich Ihnen die drei mir am häufigsten von Kunden gestellten Fragen zum Thema S/4HANA Lizenzen bei einer S/4HANA Einführung (Conversion oder Greenfield) beantworten.

Ein wichtiger Hinweis: Für konkrete Aussagen zu Kosten, Detailfragen zu Lizenzmodellen oder rechtlichen Fragestellungen bei der Nutzung von SAP Addons etc. kontaktieren Sie bitte Ihren SAP Kundenbetreuer. Dieser Artikel bietet ausschließlich allgemeine Informationen für ein grundsätzliches Verständnis.

Frage 1: Werden Lizenzkosten doppelt fällig, sowohl für mein produktives SAP ERP, als auch für das S/4HANA System fällig?

Die stark beruhigende Antwort vorab: Nein. Es gibt grundsätzlich zwei Möglichkeiten, die Nutzungsrechte für das S/4HANA System zu erwerben, ohne doppelt Lizenzkosten für zwei ERP-Systeme zu zahlen.

  1. Sie bezahlen gemäß des SAP Lizenzkatalogs einen Pauschalbetrag, die sogenannte Flat Fee, von aktuell 9.000 € und erwerben sich damit als bestehender SAP ERP Kunde die Nutzungsrechte für die S/4HANA Enterprise Management Lösung (siehe Abbildung 1). Diese Flat Fee fällt unter das Modell „Product Conversion“ – sie wandeln die SAP ERP Lizenz in eine S/4HANA Lizenz um, nicht jedoch die Lizenzen aller anderen bei Ihnen im Einsatz befindlichen SAP Lösungen. Für die sogenannten Engines, also LoB & Industry-Solutions von SAP S/4HANA wie Cash Management, Enterprise Product Engineering usw., die nicht zum S/4HANA Core System gehören, müssen Sie separate Lizenzen gemäß des vorgesehenen Lizenzmodells für diese Engine erwerben. Außerdem werden Lizenzkosten weiterhin gemäß dem SAP ERP Lizenzmodell anhand der „Named User“ berechnet.
  2. Durch eine „Contract Conversion“ wechseln Sie mit allen Ihren SAP Lizenzen aus dem bisherigen Lizenzmodell in das neue S/4HANA Lizenzmodell. Dort gibt es nun keine „Named User“ mehr, sondern stattdessen wird mit „User Metrics“ kalkuliert. Das ist die Anzahl aktiver Nutzer für die lizenzierten Systeme. Die SAP nimmt für dieses Vorgehen den „Milkshake Approach“: Alle existierenden Lizenzvereinbarungen kommen in einen gedanklichen Topf, werden vermengt und anschließend durch neue Lizenzvereinbarungen ersetzt. Die Voraussetzung dafür ist ein Zielbild Ihrer SAP Systemlandschaft, auf dass Sie mit Ihrem S/4HANA Einführungsprojekt hinarbeiten. Hinweis: 90% der aktuellen Lizenzkosten werden laut SAP auf den neuen Lizenzvertrag angerechnet. Ihr Unternehmen sieht sich also voraussichtlich zusätzlichen Kosten von 10% der bereits gezahlten Lizenzkosten ausgesetzt.
S/4HANA Nutzungsrechte über eine Flat Fee erwerben

S/4HANA Nutzungsrechte über eine Flat Fee erwerben

 

Frage 2: Muss ich mein SAP ERP System abschalten, sobald mein SAP S/4HANA System produktiv geht?

Auch hier die beruhigende Antwort: Nein. In beiden unter Frage 1 genannten Möglichkeiten ist es vorgesehen, dass klassische SAP ERP System bis 2025 weiter betreiben zu dürfen. Dafür werden dann keine separaten Lizenzkosten fällig. Wenn Sie in Ihrem S/4HANA Projekt zum Go-Live kommen, können Sie Ihr SAP ERP System vorerst parallel oder als Fallback-Szenario weiter betreiben.

Die 3 häufigsten Fragen zu S/4HANA Lizenzen
Wie gehe ich eigentlich auf SAP HANA?
Ingo Biermann, Fachbereichsleiter
Ich würde mich freuen, mit Ihnen über Ihr HANA-Projekt zu sprechen! Rufen Sie mich an oder schreiben Sie mir: biermann@erlebe-software.de
Telefon 0211.9462 8572-16

Frage 3: Decken SAP S/4HANA Lizenzen auch die Nutzung einer HANA DB ab?

Die HANA Datenbank ist eine vom SAP S/4HANA Digital Core-System unabhängige Plattform und unterliegt einem eigenen Lizenzmodell. Unabhängig Ihres gewählten Ansatzes der License Conversion kommen Sie um diese Kosten nicht herum. Falls Sie Ihr klassisches SAP ERP System, wie in der Antwort auf Frage 2 beschrieben, parallel weiterbetreiben wollen, werden auch dafür unter Umständen Lizenzkosten fällig: Läuft dieses auf einer 3rd Party Datenbank (Oracle, DB2, usw.), muss diese nach wie vor lizenziert werden, bis das SAP ERP System abgeschaltet wird. Mit dem Erwerb der HANA DB Lizenzen entfallen nicht – wie bei SAP ERP zu S/4HANA – die zusätzlichen Lizenzkosten für die Datenbanknutzung.

 

Im folgenden Bild sind noch einmal die wichtigsten Punkte zu den beiden Modellen Product vs. Contract Conversion zusammengefasst. Grundsätzlich ist bei einem Wechsel in das S/4HANA Lizenzmodell zu beachten, dass auf S/4HANA Systemen nur Anwendungen (SAP oder Drittanbieter) installiert und genutzt werden dürfen, die

  1. ebenfalls dem S/4HANA-Lizenzmodell unterliegen und damit eine S/4HANA Lösung sind oder
  2. als sogenanntes „Compatibility Pack“ gemäß SAP Hinweis 2269324 ausgewiesen sind. Dabei handelt es sich um klassische SAP ERP Anwendungen, die, obwohl es sich bei Ihnen nicht um S/4HANA-Lösungen handelt, trotzdem auf einem S/4HANA System installiert und genutzt werden dürfen, mindestens bis zum Jahr 2025. Für diese gilt die Weiternutzung ohne zusätzliche Kosten wie für das klassische SAP ERP System (siehe Frage 2).
Gegenüberstellung Product vs. Contract Conversion bei S/4HANA Lizenzen

Gegenüberstellung Product vs. Contract Conversion bei S/4HANA Lizenzen

Detailliert finden Sie diese Informationen in diesem DSAG-Webinar und den dazugehörigen Unterlagen. Für Informationen zu Ihrer konkreten Lizenzsituation und Ihren Möglichkeiten kontaktieren Sie bitte Ihren SAP Kundenbetreuer.

Der Beitrag Die 3 häufigsten Fragen zu S/4HANA Lizenzen stammt von https://erlebe-software.de

]]>
https://erlebe-software.de/sap-hana/s4-hana/3-fragen-zu-s4hana-lizenzen/feed/ 0
Neue Fiori App in wenigen Schritten: Datenmodellierung mit CDS & BOPF https://erlebe-software.de/sap-hana/s4-hana/neue-fiori-app-in-wenigen-schritten/ https://erlebe-software.de/sap-hana/s4-hana/neue-fiori-app-in-wenigen-schritten/#comments Sat, 17 Nov 2018 15:47:57 +0000 https://erlebe-software.de/?p=12397 Wenn ein Entwickler die Anforderung erhält eine komplett neue Applikation aus dem Nichts zu entwickeln, muss er sich mit vielen Fragestellungen befassen: Wie sieht mein Datenmodell aus und wie implementiere ich es? Welche Geschäftsobjekte gibt es und welche Funktionalität benötigen diese? Wie stelle ich die Einhaltung meiner Abhängigkeiten zwischen den Objekten sicher? Wie implementiere ich […]

Der Beitrag Neue Fiori App in wenigen Schritten: Datenmodellierung mit CDS & BOPF stammt von https://erlebe-software.de

]]>
Wenn ein Entwickler die Anforderung erhält eine komplett neue Applikation aus dem Nichts zu entwickeln, muss er sich mit vielen Fragestellungen befassen:

  • Wie sieht mein Datenmodell aus und wie implementiere ich es?
  • Welche Geschäftsobjekte gibt es und welche Funktionalität benötigen diese?
  • Wie stelle ich die Einhaltung meiner Abhängigkeiten zwischen den Objekten sicher?
  • Wie implementiere ich Prüfmechanismen und Sperren?
  • Wie transportiere ich Daten ins UI?

Natürlich sind diese Fragen nicht zufällig ausgewählt. Wenn Sie die neuen Technologien unter S/4HANA richtig einsetzen, können Sie sich auf die konzeptionelle Beantwortung dieser Fragen konzentrieren. Die technische Umsetzung übernehmen dann Core Data Services (CDS) und das Business Object Processing Framework (BOPF) für Sie.

In meiner mehrteiligen Anleitung möchte ich Ihnen zeigen, wie Sie mit wenig Aufwand Ihre eigene Fiori App mit Hilfe von CDS und BOPF erstellen können. Als Beispiel erstellen wir dafür eine App, mit der Fluginformationen zu allgemeinen Verbindungen (z.B. LH404 von Frankfurt nach New York) und deren wirklichen Flüge (z.B. LH404 am 01.01.2019 um 13:30 Uhr) angezeigt und verändert werden können.
Dieser erste Teil beschäftigt sich mit der Anlage der Business Object CDS Views sowie der Generierung der dazugehörigen Business Objects.

CDS & BOPF – Wie funktioniert die Kombination?

Anhand des unten dargestellten S/4HANA Technologie-Stacks können Sie sehen, dass CDS und BOPF direkt aneinandergrenzen und ineinander greifen.

S4HANA Technologiestack

CDS Views sind zusammengefasst die „Next Generation“ Views in SAP. Die hierbei neu verwendeten Assoziationen unterscheiden sich auf den ersten Blick kaum vom altbekannten JOIN. Der hauptsächliche Unterschied ist, dass Assoziationen mit Kardinalitäten versehen werden und ein tatsächlicher JOIN nur zwischen Tabellen gebildet wird, wenn die Assoziation bei der Datenbankabfrage angegeben wird. Also sozusagen ein flexibles JOIN auf Abruf.
Außerdem können durch Annotationen die Metadaten einer CDS View definiert werden. Dadurch lassen sich Einstellungen wie bspw. die Pufferung konfigurieren. Für unsere Flüge-App werden Annotationen benutzt, um die Eigenschaften des Business Objects zu beschreiben. Das BOPF Framework erstellt dann anhand dieser Annotationen das Business Object für uns.

Persistente Datenmodell

Zu Beginn müssen zwei Datenbanktabellen in einer normalisierten Form erstellt werden, damit die Daten unseres Business Objects persistent gespeichert werden können. Diese lassen sich über Eclipse oder über die Transaktion SE11 in der SAP GUI erstellen.
Dabei stellt jedes Feld aus der Datenbanktabelle ein Attribut des Business Objects da. Zusätzlich wird die Struktur /BOBF/S_LIB_ADMIN_DATA eingefügt. Diese Struktur wird später automatisch von BOPF mit administrativen Daten wie dem letzten Änderungszeitpunkt gefüllt.

Aufbau der Tabelle für Flugverbindungen ZPS_VERBINDUNG:

SE11 Tabelle ZPS_VERBINDUNG
Aufbau der Tabelle für Flüge ZPS_FLUG:

SE11 Tabelle ZPS_FLUG
Business Object CDS View erstellen

In Eclipse können anschließend für die beiden Datenbanktabellen sogenannte Business Object CDS Views (im folgenden BO Views genannt) erstellt werden. Durch Assoziationen und @ObjectModel-Annotationen können wir die Hierarchie unserer Entitäten (Flugverbindung und Flug) abbilden. BOPF erkennt durch die Annotation @ObjectModel, dass Business Objects generiert werden sollen. Die genaue Bedeutung der verwendeten Annotationen können Sie hier nachlesen.

In unserem Beispiel bildet ZPS_VERBINDUNG die Root-Entität. Die hierarchisch darunterliegende Entität ZPS_FLUG wird durch eine Assoziation mit der Kardinalität 1..* aus Sicht von ZPS_VERBINDUNG verbunden – also 1 Flugverbindung aus ZPS_VERBINDUNG besitzt n viele Flüge aus ZPS_FLUG.

Die fertige BO View für ZPS_VERBINDUNG sieht wie folgt aus:

CDS Verbindung

Um die darunterliegende Entität für Flüge abzubilden, wird eine weitere BO View benötigt:

CDS Flug

BOPF macht die restliche Arbeit

Durch Angabe der Annotation @ObjectModel.association.type in beiden BO Views weiß BOPF nun, welche Knoten es im Business Object gibt und wie die Hierarchie der Knoten abzubilden ist. Nachdem wir die CDS Views erfolgreich aktiviert haben, zeigt Eclipse links neben der Annotation @ObjectModel.transactionalProcessingEnabled eine Info an, über die wir das neue Business Object öffnen können.

BOPF Infofenster

Damit haben wir nun nicht nur die Datenmodellierung unserer neuen Fiori App abgeschlossen, sondern zusätzlich unser zentrales Business Object generiert und mit Logik zum Erstellen, Lesen, Bearbeiten und Löschen ausgestattet (CRUD-Operatoren) – ohne dabei eine Zeile eigenen ABAP Code zu schreiben.

Ausblick

Im zweiten Teil meiner Anleitung stelle ich Ihnen das Business Object genauer vor und wir werden die CRUD Operatoren unseres Business Objects testen. Anschließend werden wir mit Hilfe einer Consumption CDS View unsere OData Services generieren lassen.

Haben Sie Fragen zur Verwendung von Business Object CDS Views oder BOPF? Gerne helfe ich Ihnen dabei Ihre Fragen zu beantworten. Kontaktieren Sie uns einfach!

Der Beitrag Neue Fiori App in wenigen Schritten: Datenmodellierung mit CDS & BOPF stammt von https://erlebe-software.de

]]>
https://erlebe-software.de/sap-hana/s4-hana/neue-fiori-app-in-wenigen-schritten/feed/ 0
HANA DB Fundamentals II – Der Delta Store https://erlebe-software.de/sap-hana/hana-db/hana-db-fundamentals-delta-store/ https://erlebe-software.de/sap-hana/hana-db/hana-db-fundamentals-delta-store/#comments Fri, 16 Nov 2018 07:00:33 +0000 https://erlebe-software.de/?p=12298 Dieser Beitrag ist der zweite Teil unserer „HANA DB Fundamentals“. Im ersten Teil erklären wir, was Spaltenorientierung bedeutet. Darauf aufbauend widmen wir uns einem weiteren Teil der HANA DB, dem Delta Store. Worum handelt es sich dabei und warum wird er in der HANA DB eingesetzt? Reihen- und Spaltenorientierung Wir haben bereits festgestellt, dass es […]

Der Beitrag HANA DB Fundamentals II – Der Delta Store stammt von https://erlebe-software.de

]]>
Dieser Beitrag ist der zweite Teil unserer „HANA DB Fundamentals“. Im ersten Teil erklären wir, was Spaltenorientierung bedeutet. Darauf aufbauend widmen wir uns einem weiteren Teil der HANA DB, dem Delta Store. Worum handelt es sich dabei und warum wird er in der HANA DB eingesetzt?

Reihen- und Spaltenorientierung

Wir haben bereits festgestellt, dass es bei Reihen- und Spaltenorientierung im Wesentlichen um das Speichern und Lesen von Daten geht. Je nach Datenbankoperation ist die eine oder die andere Orientierung von Vorteil.

Tabelle und schematische Darstellung  auf dem Speichermedium

Zum besseren Verständnis benötigen wir noch einen sehr kurzen Ausflug in die Hardwaretechnik.

Das Speichern und Lesen von Daten

Das Speichern und Lesen von Daten erfolgt immer in festgelegten Einheiten, sogenannten Datenblöcken. Datenblöcke haben durch die verwendete Hardware festgelegte Größen. Es ist also die Regel, dass ein Datenblock mehrere Einträge einer Tabelle enthält.

Datenblock - Schematische Darstellung

Der Reconstruction Overhead

Nehmen wir nun eine nicht-analytische Datenbankoperation an: „Ändere den Nachnamen der Person, die Benjamin Abel heißt und 1987 in Köln, Deutschland, geboren ist, auf ‚Meyer‘.“ Um diese Transaktion zu bearbeiten, müssen alle Einträge der ersten Reihe gelesen werden. Sehen wir uns nun an, wo die entsprechenden Daten auf unserer schematischen Darstellung liegen würden.

Datenblöcke und Datenverteilung bei Transaktionen

Wir sehen, dass unser System in diesem Fall in einer reihenorientierten Datenbank einen einzigen Speicherblock lesen müsste, um die gesamten Daten der ersten Reihe bereit zu haben. In der spaltenorientierten Datenbank hingegen sind die Daten verteilt. Es müssen vier Datenblöcke gelesen werden und die Reihe aus diesen „rekonstruiert“ werden. Daher sprechen wir hier vom Reconstruction Overhead.

Im Fall von analytischen Anfragen haben wir das umgekehrte Problem. Angenommen, wir wollen das durchschnittliche Geburtsjahr aller Personen berechnen, stellt sich die Datenverteilung wie folgt dar.

Datenblöcke und Datenverteilung bei Analysen

In unserem schematischen Beispiel muss die reihenorientierte Datenbank fünf, die spaltenorientierte Datenbank nur zwei Blöcke lesen.

Der Delta Store – Das Beste aus zwei Welten

Die Hauptdatenbank der HANA DB ist spaltenorientiert. Kombiniert damit, dass alle Daten im Arbeitsspeicher liegen, lässt ihre Performance analytische Anfragen auf aktuellen, operationalen Daten zu. Um aber gute Leistung auch für transaktionale Operationen zu ermöglichen, verfügt die HANA DB über den Delta Store. Hierbei handelt es sich um eine kleinere, reihenorientierte Datenbank, die alle transaktionalen Operationen speichert und von Zeit zu Zeit mit der Hauptdatenbank synchronisiert. Durch diese Technik können mit der HANA DB bedeutende Leistungssteigerungen für alle Anfragen erreicht werden.

Auf das „Wie“ kommt es an

Die HANA DB eröffnet neue Möglichkeiten und ist herkömmlichen Datenbanken in vielerlei Hinsicht überlegen. Diese zu nutzen und ihr volles Potential zu entfalten, erfordert das richtige Knowhow. Haben Sie Fragen oder konkrete Wünsche? Gerne helfen wir Ihnen weiter, mit der HANA DB neue Wege zu gehen. Kontaktieren Sie uns einfach!

Der Beitrag HANA DB Fundamentals II – Der Delta Store stammt von https://erlebe-software.de

]]>
https://erlebe-software.de/sap-hana/hana-db/hana-db-fundamentals-delta-store/feed/ 0
SAP S/4HANA – Wo sind die Highlights? https://erlebe-software.de/sap-hana/s4-hana/s4hana-highlights/ https://erlebe-software.de/sap-hana/s4-hana/s4hana-highlights/#comments Wed, 14 Nov 2018 00:51:02 +0000 https://erlebe-software.de/?p=12174 In der Diskussion und Planung zum Umstieg auf SAP S/4HANA gibt es immer zwei Argumentationsstränge, die man vielleicht mit „Notwendigkeit“ und „Chance“ umschreiben kann. Die Notwendigkeits-Argumente sind geprägt von der Ankündigung der SAP, den Mainstreamsupport von SAP ERP im Jahr 2025 auslaufen zu lassen. Auf dieses Zieldatum bauen sich dann die Überlegungen zu einer Migrations-Roadmap […]

Der Beitrag SAP S/4HANA – Wo sind die Highlights? stammt von https://erlebe-software.de

]]>
In der Diskussion und Planung zum Umstieg auf SAP S/4HANA gibt es immer zwei Argumentationsstränge, die man vielleicht mit „Notwendigkeit“ und „Chance“ umschreiben kann.

Die Notwendigkeits-Argumente sind geprägt von der Ankündigung der SAP, den Mainstreamsupport von SAP ERP im Jahr 2025 auslaufen zu lassen. Auf dieses Zieldatum bauen sich dann die Überlegungen zu einer Migrations-Roadmap auf und ergeben einen möglichen Zeitplan. Dieser wird gerne möglichst spät positioniert – also sozusagen eine Rückwärtsterminierung des gesamten S/4HANA Einführungsprojektes.

Oftmals hat es die Chance-Fraktion in den ersten Diskussionen zu SAP S/4HANA schwerer. Dabei liegen hier die eigentlichen Argumente und Treiber verborgen, die das S/4HANA Einführungsprojekt voranbringen und letztendlich erfolgreich machen können. Was sind also die SAP S/4HANA Highlights?

Die technologische Basis von SAP S/4HANA ist die SAP HANA Plattform oder im Kern die SAP HANA in-memory Datenbank. Mit überlegener Performance im Vergleich zu den bisher im ERP Bereich üblichen Datenbanksystemen schafft die HANA Datenbank die Voraussetzungen für alle weiteren Vorteile und Innovationen in S/4HANA.

Zunächst werden Rechenoperationen per se schneller im 1:1 Vergleich zum SAP ERP ohne HANA.

Die mögliche Verarbeitungsgeschwindigkeit ermöglicht ein radikal vereinfachtes Datenmodell ohne zusätzliche Salden, Nebenaufschreibungen usw. Ein einfaches Datenmodell ist nicht nur bezüglich Komplexität und Wartbarkeit eine gute Sache, ganz praktisch kommt dabei auch unter dem Strich weniger Speicherbedarf bei der gleichen Menge gespeicherter Informationen heraus – der berühmte reduzierte „Data-Footprint“.

Der nächste Gedanke schließt sich an: Wenn jetzt Informationen in Echtzeit zugreifbar sind, dann sind Auswertungen auf allen Belegdaten ebenso in Echtzeit möglich. Die HANA Datenbank liefert mit den Core Data Services auch noch das technische Grundgerüst mit, um operative Echtzeitanalysen direkt in S/4HANA möglich zu machen. Im Klartext: Ein zusätzliches Data Warehouse wie SAP BW ist nicht mehr erforderlich.

Es besteht mit SAP S/4HANA Cloud Edition jetzt eine echte Alternative von SAP mit dem Betrieb als echte Software-as-a-Service Lösung. Logischerweise ist insbesondere das Erweiterungsmodell in der Cloud noch nicht für jeden SAP Kunden heute umsetzbar und damit nicht für jeden die Cloudvariante ein gangbarer Weg.

Mit SAP ERP gab es diese Möglichkeit nicht, aber mit S/4HANA besteht sie zumindest real und immer mehr Unternehmen werden über kurz oder lang diesem Trend folgen.

Mit Fiori ist SAP vor Jahren erstmals das Versprechen eingegangen, mehr Wert auf Bedienbarkeit und Benutzererfahrung zu legen. Die Fiori Guidelines legen dazu die Regeln fest und mit SAP S/4HANA werden sie jetzt von der Ausnahme zur Regel. Damit ist nicht nur der Einsatz von Technologie gemeint (moderne SAPUI5 Benutzeroberflächen statt SAP GUI und mobile Endgeräte), es geht vielmehr um die benutzerzentrierte Neuentwicklung von Anwendungen. Von der komplizierten Transaktion geht es zur App für nur einen spezifischen Anwendungsfall.

Im klassischen MRP, also der Materialbedarfsplanung im SAP ERP, ist traditionell die Laufzeit der Engpass – man spricht ja auch von MRP-Lauf. Es werden über 50 Datenbanktabellen gelesen, um diverse Materialeingänge, Bestände und Bedarfe miteinander zu verrechnen.

In SAP S/4HANA tritt der Live MRP an seine Stelle und nutzt die Datenbankgeschwindigkeit und das einfachere Datenmodell zur Berechnung der Bedarfsplanung in einer vielfachen Geschwindigkeit.

Dabei sind zusätzlich flexible Filter und werksübergreifende Berechnungen möglich.

Der Live MRP wird um weitere Funktionen erweitert: Die Simulation ermöglicht es, Auswirkungen von verschiedenen Entscheidungen im Planungsprozess zu vergleichen. Die passenden Fiori Apps bringen die Echtzeitsicht, Simulation und Analysen in einer Oberfläche zusammen und erleichtern dem Anwender so den Überblick.

Aus dem bisher separaten System SAP APO wandert die Produktions- und Feinplanung als PP/DS in den S/4HANA Kern und ermöglicht viel genauere Planungsschritte: Es werden nicht nur Tage, sondern Uhrzeiten berücksichtigt. Es werden ebenfalls Produktionskapazitäten und Komponenten von Stücklisten berücksichtigt.

Diese Funktionen werden zusätzlich jetzt mit einer neuen Fiori Benutzeroberfläche versehen, dem Production Scheduling Board bzw. der Fertigungsplantafel. In einer Art Gantt-Diagramm-Darstellung lassen sich jetzt die Planungen optisch darstellen und manuell optimieren und verändern.

Die Beispiele zeigen, wie die Weiterentwicklung von S/4HANA durch die SAP vorangetrieben wird. Auf die eingangs gestellte Frage: „Ist SAP S/4HANA Notwendigkeit oder Chance?“ lässt sich hier die vielleicht wichtigste Antwort erkennen: Die SAP wirft ihre ganze Innovationskraft, alle große Menge an Ressourcen und das von uns als Kunden eingesammelte Geld auf die Weiterentwicklung von SAP S/4HANA. Sie meinen es ernst. Und das ermöglicht allen Unternehmen, jetzt von S/4HANA zu profitieren und in der Zukunft erst recht.

Der Beitrag SAP S/4HANA – Wo sind die Highlights? stammt von https://erlebe-software.de

]]>
https://erlebe-software.de/sap-hana/s4-hana/s4hana-highlights/feed/ 1
HANA DB Fundamentals I – Spaltenorientierung https://erlebe-software.de/sap-hana/hana-db/hana-db-fundamentals-i-spaltenorientierung/ https://erlebe-software.de/sap-hana/hana-db/hana-db-fundamentals-i-spaltenorientierung/#comments Tue, 13 Nov 2018 08:20:44 +0000 https://erlebe-software.de/?p=12279 Spaltenorientierung ist eins der Schlagwörter, die in Verbindung mit der Datenbank SAP HANA regelmäßig fallen. Doch was steckt eigentlich dahinter? Warum ist sie Teil der HANA DB und welche Konsequenzen hat sie für die Architektur? Diese und weitere Fragen werden in unseren „HANA DB Fundamentals“ beantwortet. Tabellen Bei der HANA DB handelt es sich um […]

Der Beitrag HANA DB Fundamentals I – Spaltenorientierung stammt von https://erlebe-software.de

]]>
Spaltenorientierung ist eins der Schlagwörter, die in Verbindung mit der Datenbank SAP HANA regelmäßig fallen. Doch was steckt eigentlich dahinter? Warum ist sie Teil der HANA DB und welche Konsequenzen hat sie für die Architektur? Diese und weitere Fragen werden in unseren „HANA DB Fundamentals“ beantwortet.

Tabellen

Bei der HANA DB handelt es sich um eine sogenannte relationale Datenbank. Das bedeutet, dass Daten in Tabellen (Relationen) organisiert sind, die sich in Reihen und Spalten einteilen lassen.

Tabelle

Wenn wir von tabellarischen Daten sprechen, können wir diese allerdings aus zwei Sichtweisen betrachten. Zum einen das Modell, wie die Daten dargestellt werden. In unserem Fall in Tabellen. Zum anderen können wir uns in einer tieferen technischen Ebene ansehen, wie Einträge auf dem Datenträger gespeichert sind. Das heißt, nach welcher Systematik unsere Daten auf dem Datenträger geschrieben oder gelesen werden.

Daten auf einem Datenträger

Einzelne Daten werden auf einem Datenträger hintereinander gespeichert. Die Orientierung der Datenbank bestimmt, welche Daten nebeneinanderliegen. Bei Reihenorientierung werden Daten, wie der Name erahnen lässt, reihenweise hintereinander auf den Datenträger geschrieben. Entsprechend liegen bei Spaltenorientierung die Einträge der Spalten nebeneinander.

Reihen- und Spaltenorientierung

Was bedeutet Spaltenorientierung für eine Datenbank?

Werden Daten spaltenweise gespeichert, führt das zu sehr spezifischen Vorteilen und Nachteilen. Besonders bei Analyse-Anfragen werden in erster Linie wenige Spalten benötigt, diese allerdings komplett gelesen. So zum  Beispiel beim Berechnen des Durchschnittsalters von Personen in einer Tabelle. Hier bieten sich bei Spaltenorientierung Vorteile, da alle benötigten Daten auf dem Medium nebeneinanderliegen und schnell gelesen werden können. Auch für die Komprimierung von Daten kann das spaltenorientierte Speichern der Daten hilfreich sein. Das beschreiben wir näher hier. Für andere Datenoperationen ist es hingegen von Vorteil, wenn schnell ganze Reihen gelesen werden können. Ein Beispiel ist hier das Ändern von Einträgen. Diese Operationen laufen auf reihenorientierten Datenbanken performanter. Wie die HANA DB dieses Problem löst, können Sie im zweiten Teil der HANA DB Fundamentals nachlesen.

Viele Neuerungen in der HANA DB

Spaltenorientierung ist nur eine der vielen Neuerungen, die Verantwortliche und Entwickler zur HANA DB kennen müssen, um Probleme zu vermeiden und das Potential der Datenbank voll auszuschöpfen. Haben Sie spezielle Fragen oder Probleme? Kommen Sie gerne auf uns zu!

Der Beitrag HANA DB Fundamentals I – Spaltenorientierung stammt von https://erlebe-software.de

]]>
https://erlebe-software.de/sap-hana/hana-db/hana-db-fundamentals-i-spaltenorientierung/feed/ 0
Unit Testing Hands on Beispiel https://erlebe-software.de/sap-entwicklung/abap/unit-testing-hands-on-beispiel/ https://erlebe-software.de/sap-entwicklung/abap/unit-testing-hands-on-beispiel/#comments Tue, 30 Oct 2018 20:55:37 +0000 https://erlebe-software.de/?p=12109 Unit Testing Hands on Beispiel Nachdem wir bereits in dem vorherigen Beitrag der Serie: Unit Testing Testklassen festgestellt haben, wie genau eine Testklasse aussieht, demonstriere ich das ganze anhand eines simplen Beispiels nun im Einsatz. Die Fachliche Anforderung Die Fachliche Anforderung muss bis im Detail klar definiert sein. Für unser Beispiel stellen wir uns folgende Aufgabe vor: Für […]

Der Beitrag Unit Testing Hands on Beispiel stammt von https://erlebe-software.de

]]>
Unit Testing Hands on Beispiel

Nachdem wir bereits in dem vorherigen Beitrag der Serie: Unit Testing Testklassen festgestellt haben, wie genau eine Testklasse aussieht, demonstriere ich das ganze anhand eines simplen Beispiels nun im Einsatz.

Die Fachliche Anforderung

Die Fachliche Anforderung muss bis im Detail klar definiert sein. Für unser Beispiel stellen wir uns folgende Aufgabe vor:
Für ein neues System sollen neue User IDs vergeben werden. Diese neuen IDs sollen aus 2-10 Zeichen bestehen. Buchstaben gefolgt von 2 Zahlen.
Die Anzahl an Zeichen insgesamt soll über einen Eingabeparameter geschehen und falls dieser außerhalb des Scope liegt, also unter zweistellig oder über 10-stellig, dann wird ein Fehler geworfen.
Wenn wir das Ganze nun im Test Driven Development Modus betrachten wollen, müssen wir uns an dieser Stelle erst darüber klar werden, mit welchen Tests wir nachher belegen wollen, dass unser Produkt den fachlichen Anforderungen genügt.

Erstellen einer passenden Testklasse

Das Erstellen einer Testklasse können Sie per Hand als lokale Klasse in Angriff nehmen oder sich automatisch mit ein paar Klicks generieren lassen.
In der SE80 Rechtsklick auf die Klasse, „Anlegen -> Testklasse generieren“ funktioniert ebenfalls.

Testklasse generieren

Testklasse generieren

In beiden Fällen sollte ein immer gleiches Grundgerüst herauskommen. Eine lokale Klasse mit Duration und Risk Level.
Hier pflegen wir nur für unseren Test notwendige, einzelne Prüfungen ein. Jeweils als einzelne Methode mit der Endung: „For Testing“.
Weiterhin sollte sich auch immer eine Referenz auf die zu testende Klasse wiederfinden, damit wir nachher die Methoden der zu prüfenden Klasse verwenden können.
Das kann in unserem Beispiel dann so aussehen:

Testklasse mit Methoden

Testklasse mit Methoden

 

Implementierung der Testfälle

Nachdem wir also den Rumpf haben setzen wir uns jetzt daran, die Testmethoden zu formulieren. Hier ist die Klasse cl_abap_unit_assert die Trumpfkarte. Diese verfügt über diverse Methoden um Vergleiche auszuführen. Der einfachste Vergleich ist, ob ein gelieferter Wert dem erwarteten Wert entspricht.
In unserem Beispiel fokussieren wir uns zunächst auf folgende Testfälle:

Testmethoden implementiert

Testmethoden implementiert

Der erste Test ist bereits Trickreich. Ich erwarte hier einen Fehler vom Typ ZCX_ID_ERROR. Wenn dieser ausbleibt weise ich die oben genannte Klasse an, den Test als fehlerhaft abzuschließen. Wenn ich stattdessen in den Catch laufe, dann habe ich den Test fehlerfrei abgeschlossen.
Der zweite Testfall ist ein simpler Vergleich. Fordere ich eine 10 Stellige ID an, bekomme ich auch eine 10 Stellige ID zurück?
Der dritte Testfall ist in seiner Prüfung wieder etwas komplexer. Hier schaue ich, ob ich in meiner Antwort wirklich auch 2 Zahlen erhalte.

Testen Anhand der Testfälle

Diese Testfälle können also wie bereits zuvor erwähnt erstellt werden, bevor der fachliche Quellcode steht. Beim Bauen der Lösung können wir mit der Tastenkombination: STRG-SHIFT-F10 prüfen, ob unsere Testfälle erfolgreich durchlaufen werden. Zunächst werfen wir dazu einen Blick auf die fachliche Logik.

Fachliche Logik

Fachliche Logik

Ich habe mir den Spaß erlaubt, das Werfen des Fehlers auszukommentieren. Die Erwartungshaltung ist also, dass ich beim Prüfen auf einen Fehler laufe.
Genau das passiert auch.

Fehlermeldung Test

Fehlermeldung Test

Ich sehe also, dass eine Funktionalität fehlt / fehlerhaft funktioniert. Offensichtlich ist hier der auskommentierte Quellcode fehlend. Ich spare mir an dieser Stelle das Einkommentieren und Frage stattdessen Sie: Verlassen Sie sich lieber darauf, dass sich schon jemand melden wird, wenn eine Änderung im Coding zu Fehlern in einer andere Anwendung führt oder vertrauen sie lieber auf automatische Tests? Denn diese Testfälle lassen sich in der Testworkbench wenn gewünscht auch z.B. täglich durchlaufen.

Der Beitrag Unit Testing Hands on Beispiel stammt von https://erlebe-software.de

]]>
https://erlebe-software.de/sap-entwicklung/abap/unit-testing-hands-on-beispiel/feed/ 3
Unit Testing Testklassen https://erlebe-software.de/sap-entwicklung/abap/unit-testing-testklassen/ https://erlebe-software.de/sap-entwicklung/abap/unit-testing-testklassen/#comments Thu, 18 Oct 2018 19:55:39 +0000 https://erlebe-software.de/?p=12067 Das Elementare Element von Unit Tests sind die verwendeten Testklassen. Diese sollten nicht über Parameter verfügen und sind somit in Ihrer Anwendung und Interpretation eindeutig. Diese Form von Tests sind in Produktivmandanten nicht ausführbar, es besteht also keinerlei Gefahr sich durch die Tests selber zusätzliche Systemlast oder andere Nebenwirkungen einzuhandeln. Auch auf Entwicklerebene bringen Testklassen […]

Der Beitrag Unit Testing Testklassen stammt von https://erlebe-software.de

]]>
Das Elementare Element von Unit Tests sind die verwendeten Testklassen. Diese sollten nicht über Parameter verfügen und sind somit in Ihrer Anwendung und Interpretation eindeutig.

Diese Form von Tests sind in Produktivmandanten nicht ausführbar, es besteht also keinerlei Gefahr sich durch die Tests selber zusätzliche Systemlast oder andere Nebenwirkungen einzuhandeln. Auch auf Entwicklerebene bringen Testklassen eine Reihe von individuellen Eigenheiten mit sich.

Eigenschaften von Testklassen

      • Eine in der Klasse definierte Testdauer und Risiko
      • Eine Class_Setup Methode, welche einmalig bei Erstellung der Klasse aufgerufen wird.
      • Eine Setup Methode, welche vor jeder Testmethode aufgerufen wird.
      • Die Testmethoden selbst, welche designed sind mit dem Hintergedanken eine Funktion zu kapseln und gegen ein erwartetes Ergebnis zu vergleichen.
      • Eine Teardown Methode, welche am Ende jeder Testmethode aufgerufen wird.
      • Eine Class_Teardown Methode, welche einmalig nach der letzten Teardown Methode aufgerufen wird.
Unit Testing

Sequenzdiagramm von Testklassen

Praktisch an diesem Framework ist Beispielsweise das automatische Rollback, welches sich im Anschluss an die Ausführung der getesteten Methoden anschließt (Teardown). Es ist weiterhin absolut Empfehlenswert zumindest einmal jeden Testfall zuerst zu einem Fehlerfall geführt zu haben, bevor er korrekt implementiert wird. Dadurch kann verhindert werden, dass die Prüfung des Testfalls selbst einen Fehler enthält. Das ist zwar unwahrscheinlich aber kostet keine Zeit und kann durchaus enorm wichtig werden. Die Chance fehlerhaften Quellcode der mit einem fehlerhaften Testfall überprüft wird wiederzufinden ist Erfahrungsgemäß äußerst gering.

An dieser Stelle direkt eine kleine Warnung. Die getesteten Methoden dürfen sich nicht aufeinander beziehen. Das liegt daran, dass die Ausführung der zu testenden Methoden nicht definiert werden kann.

Wer jetzt noch tiefer in das Detail einsteigen möchte und gerne einmal die Funktionsweise Live und in Farbe sehen möchte, den verweise ich gerne auf den dritten Teil der zugehörigen Blogserie mit dem Thema: „Unit Testing Hands on Beispiel“.

Der Beitrag Unit Testing Testklassen stammt von https://erlebe-software.de

]]>
https://erlebe-software.de/sap-entwicklung/abap/unit-testing-testklassen/feed/ 2