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