210 likes | 354 Views
Entwicklung xdPPS. Holger Looks. cimdata software AG. Gründung: 1983 in Mittelfranken Standort: Gunzenhausen (50 km südlich von Nürnberg) 24 Mitarbeiter, davon 10 Vollzeit OpenRoad Programmierer Produkt xdPPS – ERP System für die mittelständische Fertigungsindustrie
E N D
Entwicklung xdPPS Holger Looks
cimdata software AG • Gründung: 1983 in Mittelfranken • Standort: Gunzenhausen (50 km südlich von Nürnberg) • 24 Mitarbeiter, davon 10 Vollzeit OpenRoad Programmierer • Produkt xdPPS – ERP System für die mittelständische Fertigungsindustrie • xdPPS ist komplett mit OpenRoad programmiert • Fertigungsformeln OR Scripte
Reporting Oberfläche Workflow Import Export Erweiterung Verteilung Architektur (funktional) xdPPS CRM/Vertrieb Fertigung Beschaffung Qualität ... • Modularität • Flexibilität
HTML Java Applet JavaScript VBScript Mobile Phone Java Client C++ / C# Client VB / VBA Client mClient Client xdPPS Application Services Tomcat 4GL JSP xdPPSBusiness Object Services IIS C# ASP ASP.Net 4GL xdPPSData Access Services 4GL Ingres/Net Enterprise Access Ingres Database Oracle SQL Server Architektur (technisch) xdPPS Clients Browser Desktop Wireless Server J2EE Framework .Net Framework
Entwicklung xdPPS V3 • Beginn der Entwicklung in 2008 • 2010 erste Ablösungen der Vorgängerversion • Ziele der Neuentwicklung • Neues Design der Oberfläche • Neue Funktionalitäten um die Flexibilität der Anwendung zu erweitern • Beibehaltung Datenbankdesign (geringe Migrationskosten) • Umfang • ca. 6.300 Masken • ca. 2.800 Prozeduren • ca. 4.500 Userclasses
Neues Design der Oberfläche • Definition von Frame Templates • Definition von Field Templates • Definition von Grundoperationen (Speichern/Neuanlage/Änderung/Aktualisieren/Export/Druck/…)
Frame Templates • Definition von Frame Templates • Jeder Maskengrundtyp hat ein eigenes OpenRoad Frame Template(Verwaltungsmaske/Übersichtsmaske mit Tabelle/Druckprogramm/… • Jedes Template definiert die Oberflächenelemente und das Sourcecode Gerüst(Userclasses, Events, Functions) • Alle Grundoperationen sind als Funktionspointer angelegt und werden (wenn notwendig) lokal überschrieben
Field Templates • Definition von Field Templates • Nutzung für Standardfelder (z.B. Matchcodefelder, Feldstrukturen)
Definition von Grundoperationen // Zentrale Definition if CurObject.phCloseFrame is not null then CurObject.phCloseFrame.Call(); endif; • Buttons und Menüpunkte sind zentral jeweils mit einem Funktionspointer versehen • Der Funktionspointer kann dann lokal überschrieben werden. // LokaleÜberschreibung procedure InitFrame( ) = declare iMode = integer not null with default, enddeclare begin FramePilot.phSaveFrameAndGo = CurFrame.Scope.GetProcHandle('saveFrameAndGo'); FramePilot.phCloseFrame = CurFrame.Scope.GetProcHandle('closeFrame'); end
Neue Funktionen • Ziel der neuen Funktionen: • Endanwender soll xdPPS an kundenspezifische Anforderungen anpassen können • Maskengestaltung (Feldpositionen/Farben/Pflichtfelder) • Dynamische Erweiterung Datenmodell • Scripting • Workflow • Realisierung durch dynamische OpenRoadScripte
Feldpositionen • Feldpositionen – Nutzung User3Bias (generell auf FB_MOVEABLE) • mit einer Aktion wird das Frame in den User3Bias geschaltet • Anwender kann Felder neu positionieren und die Positionen abspeichern • Vereinfachung von Masken
Feldfarben • Feldattribute (BgColor/FgColor) können benutzerspezifisch geändert und gespeichert werden
Dynamische Erweiterung Datenmodell • Der Endanwender kann in xdPPS in der Anwendung das Datenmodell erweitern. • Die Änderung ist releasesicher.
Scripting • Der Endanwender kann in xdPPS mit Hilfe von Scripten das Verhalten von Anwendungen ändern. • Scripte können auf Masken- bzw. Feldebene definiert werden. • xdPPS nutzt hier dynamische OpenRoad Prozeduren.
Workflow • xdPPS besitzt hunderte von Ereignissen (z.B. Kunde wird angelegt) • Jedes Ereignis kann jetzt einen Workflow starten, der verschiedene Aktionen durchführen kann. • Mögliche Aktionen: • Benachrichtigungen • Start von Programmen/Auswertungen • Ausführung von xdPPS Aktionen
Vorteile OpenRoad • direkte Unterstützung von SQL im Sourcecode • schnelle und konsistente Anwendungsentwicklung durch Templates • eine Vielzahl von OpenRoad Systemklassen stehen für die Programmierung zur Verfügung • dynamische Programmierung (Makros für Endanwender/dynamische Masken) ist möglich • große Softwareentwicklungen sind möglich
Wünsche an OpenRoad • Unterstützung Bigint für Maskenfelder • In OpenRoad 6 als Variable bereits definierbar; aber Maskenfelder sind nicht als Bigint definierbar • Pixelgenaues Resize für Tabellen • Derzeit nur ein eingeschränktes Resizing möglich (Anzahl Spalten und in einer Spalte Anzahl Zeichen) • Bessere Unterstützung ActiveX Controls • Derzeit muss sehr oft ein Wrapper um das Control gebaut werden, da OpenRoad nicht alle Attribute/Methoden nutzen kann.
Kontakt cimdatasoftware AG Industriestr. 25 91710 Gunzenhausen www.cimdata-sw.de