Maximo Business Logic Engine Maximo Customization deLuxe
Transcription
Maximo Business Logic Engine Maximo Customization deLuxe
Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Maximo Business Logic Engine Maximo Customization deLuxe OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Agenda 1. Vorstellung a. Projekt b. Vorgehen 2. Maximo Business Logic Engine a. Architektur b. Technologie c. Use Cases 3. Der Plan a. Open Source b. Beteiligung OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 OSTERTAG CS Thomas Ostertag Dipl.-Min. Geschäftsführer Senior IT Consultant Softwareentwicklung & Qualitätssicherheit „Die Qualität einer Software wird immer zu Anfang entschieden.“ Bis 2000 QA Tagebau Bindemittel Industrie: CA Analytics & QS Ab 2000 Software- und Systementwicklung 2011 Maximo EAM mit der Talgo (Deutschland) GmbH 2012 Maximo Anwendertreffen Stuttgart 2013 Maximo Anwendertreffen Bad Nauheim 2014 Maximo Anwendertreffen Ehningen OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Das Projekt OCS und die Talgo (Deutschland) GmbH Einführung Maximo 7.5 • • • • OSTERTAG Upgrade von 4.1.1 nach 7.5.0.2 Verbesserung/ Erneuerung SW Engineering Prozess. Kundenspezifische Anpassungen Korrektur oder Workaround von Maximo Fehlern Mittelständischer Betrieb mit über 100 Mitarbeiter. Instandhalter von Schienenfahrzeugen Maximo ist das zentrale Steuerungssystem aller Maßnahmen für Maintenance- und Repair. Maximo ist seit 1999 im Einsatz. ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Notwendigkeit von SW Engineering • Vorgehensmodell • Qualitätssicherung • SW Life Cycle • Risikoanalyse • Design/Architektur OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Software Development Life Cycle • Vorgehensmodell OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Test Strategie in Maximo Projekten • Qualitätssicherheit Projektplan: Entwicklung und Test gleichzeitig Regressionstest Entwicklungstest Abnahmetest Lasttest Regelmäßige Regressions-Tests von Anfang an Systemtest Modultest Usertest OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Maximo Anpassungen und SW Life Cycle • Software Life Cycle 1…n Fehlerkorrektur Feature-Entwicklung Modultest auf Entwicklungssystem 1…n fortlaufende Durchläufe Release auf Produktivsystem Freigabe Release Integrationstest auf Referenzsystem Freigabe Integration Freigabe Systemtest Systemtest auf Testsystem OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Eisberg • Risikoanalyse Automation Script Sicherheitsgruppen Workflows Aktionen Die Vielzahl der Anpassungsmöglichkeiten von Maximo machen die Software sehr flexibel. Auf der anderen Seite wird die Anwendung mit steigendem Anpassungsgrad schnell unübersichtlich und die Gefahr, dass sich Anpassungen überschneidender oder beeinflussen steigt. Anwendungsdesigner Datenbankkonfiguration Domains OSTERTAG Überarbeitung Design Rules , Pattern und Architektur Bedingungen ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Vervollständigung • Vorgehensmodell • Qualitätssicherung • SW Life Cycle • Risikoanalyse • Design/Architektur OSTERTAG Umso mehr Fehler in der Anforderung und im Design auftreten, desto schwerer wiegen die Kosten der Korrektur in den späteren Phasen. Welches Design lässt sich aus den Anforderungen in puncto Risikominimierung ableiten? ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Design Wünsche Kapselung/ Objektorientierung Worksplit Maximo MBO und AnwendungsAnpassung Flexible Access Points Übersichtlichkeit Zentrale Anpassung Systemweite Steuerung Design Rules OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Diskussion Wenn programmieren dann unabhängig vom Maximo Kern Ich kann alles mit Konfiguration lösen Wir bauen eine Engine, die macht was WIR wollen! Eine neuer Abstraktionsebene? OSTERTAG Aufrufe ähnlich wie Automation Script… Nicht mehr auf Ebene der Anwendungen anpassen! Einen eigenen Manager? ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Umdenken! OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Maximo Business Logic Engine Einführung einer eigenen der Business Logic Engine Web UI XHTML JavaScript … SAP JSP Beans UILayer Maximo Flexible Adaptation Layer Datenbank Konfig. Script Maximo Java API Escaltions Domains Publishing Chanel AnwendungsDesigner Workflows Enterprise Service Business Logic Engine SOA Integration Framework Maximo Business Logic Layer Maximo Core Layer Data Layer OSTERTAG DB ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Aufbau der Engine Maximo Business Logic Engine Zentrale Logik nutzt MBO API Controller Logic.java Lässt sich rufen Hooks Trigger / Access Points Definition liest *BL Injection Maximo Core *BL: Business Logic OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Access Points Gegenüberstellung der Aufrufe entlang des MBO Life Cycles von Maximo Business Logic Engine und Customization Load is MBO new preAdd MBO add() postAdd preInit MBO init() postInit Is on update preATTRIBUTE MBO validate() postATTRIBUTE preSave MBO save() postSave MX Business Logic Engine OSTERTAG Destroy Maximo MBO Customization ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Hooks Usage Konfiguration der Aufrufe über die Hooks-Konfigurationsdatei Generische Definition per Konvention METHOD: preInit postInit preSave postSave preAdd postAdd ATTRIBUTE: preATTRIBUTE postATTRIBUTE Beispiel: preGLACCOUNT, postLOCATION, etc. Frei erweiterbare Hooks nach „Schema F“ OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Design Rules package Die Klassen der Business Logic Engine liegen auf dem gleichen Level, wie die Customization Klassen, sind also absolut voneinander getrennt. Jedem MBO das angepasst werden soll wird einfach in diese Struktur eingehängt. Wichtig ist, dass der Name der Klasse, wie der des MBOs in UPPERCASE geschrieben ist. Fertig! Die Klassen müssen in keiner Datenbank Konfiguration mehr eingetragen werden, da der Aufruf dynamisch und vollkommen generisch via Konvention funktioniert. Keine Customization von Set- und RemoteKlassen. OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Logic Beispiel Beispiel für pre- und post-Aufrufe für Methoden und Attribute in der Logik-Klasse für das MBO Asset OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Usage preAdd Überall dort wo Maximo keine Logik für Feld Verbindungen vorsieht und man dennoch mehr hinzufügen möchte. Vorteil: Man muss die Logik nur einmal schreiben und nicht in beiden Auftragsanwendungen hinterlegen. postAdd preInit postInit Das ist der Standardplatz, wenn ein Feld auf Basis einer Eingabe in einem anderen Feld zum Pflichtfeld gemacht wird. preATTRIBUTE postATTRIBUTE Das ist der Standardplatz für Hinweise an den Benutzer, die sich aus dem Speichern ergeben. Vorteil gegenüber preSave: die Nachrichten werden nur angezeigt, wenn das Speichern funktioniert hat. OSTERTAG preSave postSave Die Methode ist der Standardplatz für READONLY- und REQUIRED-Flags, sowohl für das Mbo als auch für die Felder. // Beispiel ASSET: public void postInit( MboRemote mbo) { //Beschreibung Pflichtfeld mbo.setFieldFlag("DESCRIPTION", MboConstants.REQUIRED, true); } Alle Checks bevor Maximo aktiv wird, z. Bsp. Dubletten-Prüfung, …und keine weitere Maximo Beteiligung gewünscht ist…. Wenn man die letzte Änderung eines Datensatzes festhalten will, kann man analog CHANGEBY- und CHANGEDATE sie von Hand anlegen und während der preSave-Methode schreiben. Falls das Mbo geändert wurde, werden die Werte geschrieben. ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Spezial Use Case postInit() + postSave() Datumsfelder werden in Maximo anders angezeigt („21.05.14“ oder „21.05.14 14:00“), als sie in der Datenbank gespeichert werden (beim SQL-Server als „2014-05-21 00:00:00.000“ oder „2014-05-21 14:00:00.000“). Will man in Spezifikationen Datumsangaben verwenden, hat man aber Out Of The Box nur ALN-Felder zur Verfügung. Mit der BL Engine schreibt man eine postSave-Methode, die den vom Nutzer eingegebenen Wert in einen SQL-konformen Wert umformt, der dann in die Datenbank geschrieben werden kann; außerdem schreibt man eine postInitMethode, die den aus der Datenbank ausgelesenen Wert in einen Maximotypischen Wert für das Mbo umwandelt OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 PMR GLACCOUNT Validation is not case sensitive Kostenstelle des Buchungsschlüssel wird NICHT case sensitive validiert. Obwohl in der Tabelle CHARTOFACCOUNT, bzw. GLCOMPONENTS, die Werte gegen die geprüft wird, als Upper-Case gespeichert sind, ist es möglich einen lexikographisch korrekten Wert einzugeben, der aber in LOWER Case geschrieben ist Dem Benutzer, der die Werte aus einem Listenfeld auswählen oder alternativ als Freitext eingeben kann, hat nun die Möglichkeit einen lexikographisch korrekter, aber klein geschriebener Wert als neue Kostenstelle auszuwählen und zu speichern. Dies führt zu Inkonsistenzen, besonders bei der Interoperabilität. Lösung: Frei „nach Schema F“ wird eigener, spezifischer Access Point preValidate() für MAXTableDomain eingeführt. Dort kann eine zentrale, aber systemweite Korrektur implementiert werden. Es ist nicht nötig alle Anwendungen in denen das Feld Buchungsschlüssel vorkommt anzupassen. OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Alle Wünsche umgesetzt? Kapselung/ Objektorientierung Worksplit Maximo MBO und AnwendungsAnpassung Flexible Access Points Übersichtlichkeit Zentrale Anpassung Systemweite Steuerung Design Rules OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Bewertung Pros • Keine Datenbankkonfiguration • Keine Customazation von Set- und Remote Klasse (normalerweise 4 Klassen pro MBO) • Systemweite Wirksamkeit auf alle Anwendungen die ein MBO nutzen. • Intuitive Nutzung, da generischer Aufbau: Konvention statt Konfiguration. • Die Technologie mit den meisten Access-/Launching Points und flexiblen Erweiterungsmöglichkeiten nach „Schema F“. • Einfache und schnelle Einführung/Installation. • Vollständiger Zugriff auf Maximo Java API • Hohe Übersichtlichkeit , Wartbarkeit und Sicherheit durch zentrale und gekapselte Steuerung der Business Logik. • Parallele Nutzung zur Standard Customization oder Automation Script sind kein Problem. CONS • Build/Deployment erforderlich. • Standard Programmier/Java Kenntnisse erforderlich. OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Gute Idee …aber wo geht die Reise hin? B2B OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Der Plan Wir freuen uns über Ihr Feedback! OSTERTAG ostertag-cs.de Maximo Business Logic Engine Maximo Anwenderkonferenz 2014 Thomas Ostertag O S T E R TA G C S Forster Straße 54 DE-10999 Berlin +49(0)173-666 39 93 +49(0)30-695 342 99 [email protected] www.ostertag-cs.de Wir bedanken uns herzlichen bei der Talgo (Deutschland) GmbH für die Zusammenarbeit OSTERTAG ostertag-cs.de