IT und Prozessberatung

Was leisten abas-eB, JEDP und EDP-Protokoll

Anwender wollen Funktionalität und Prozesse ihres abas-ERP erweitern. Um das Verhalten an die Bedürfnisse des Geschäftsmodells und die Prozesse anzupassen, stehen FOP, eine proprietäre, sehr eigenwillige Programmiersprache ohne Kontrollstrukturen und Unterprogrammaufrufe, und das Java-basierte AJO zur Verfügung. Beide Sprachen erlauben ERP-Masken zu steuern. Wo ein PC mit abas-Zugang steht, kann diese geänderte/erweiterte Funktionalität abgerufen werden.

Nachtrag: Nach Angaben von abas soll mit FO2 eine Erweiterung der Sprache FOP in der künftigen Version abas ERP Version 2016r4 zur Verfügung stehen und damit erstmals die Möglichkeit von Kontrollstrukturen haben.

Ziele

Ein ERP ist der informationstechnische Kern einer Firma. Es gibt viele Ziele und Gründe abas-Daten und abas-Funktionalität außerhalb des abas Kerns zur Verfügung stellen wollen. Eine unvollständige Liste ist

  • ausgewählte Daten sicher anzeigen
  • bessere Performanz erzielen
  • Integration in andere Systeme
  • mobiler Zugang intern und extern
  • erhöhte Automation
  • verbesserte Datenqualität
  • Beschleunigung der Prozesse und der Datenerfassung
  • Vermeidung zusätzlicher Lizenzen, sparsamer Umgang mit Lizenzen

Anwendungsbeispiele

Ein Klassiker ist ein Webshop. Sie wollen einen Teil Ihres Portfolios direkt anbieten. Dazu müssen ausgewählte Produktdaten wie Beschreibungen, Sachmerkmale, Preise und Lieferzeiten präsentiert werden. Erfasste Aufträge werden in das ERP eingepflegt. Diese Aspekte müssen in der Sprache des Internet Html(5) angeboten werden. Außerdem sind im Internet deutlich mehr und bessere Sicherheitsvorkehrungen als im Intranet notwendig.

Scannerlösungen sind ein weiterer Klassiker und ein Beispiel für eine mobile interne Anwendung. Technologisch sind Scanner spezielle Browser mit meist begrenzter Pixel-Auflösung. Sie erlauben aktuelle Daten dort einzusehen bzw. einzupflegen wo sie anfallen. Fehlerhafte Übertragung von Papier ins ERP entfällt.

Leitstände aller Art können als elektronische Infotafeln direkt aus dem ERP gespeist werden. Beispielsweise können offene, aktuelle Betriebsaufträge angezeigt werden, oder Bestände. Die Informationen werden besser an den Anwendungsfall angepasst, intuitiv präsentiert.

Ihre Firma ist ein Teil einer Prozesskette und sie müssen schnell und fehlerfrei Daten austauschen. Zum Beispiel mit einer Anbindung zu Tradebyte, plentymarkets, channelPilot und andere mehr.

Ihr Vertrieb braucht eine externe mobile CRM-Lösung um beim Kunden relevante Daten einzusehen und ggf. zu pflegen. Zum Beispiel unterstützen hier LTE-fähige Tablets den Vertrieb mit umfassenden Daten zu den unterschiedlichen Vorgängen.

Direkt an der Produktionsmaschine werden ERP-Daten angezeigt und gepflegt. Vorhandene Betriebsaufträge, aktuelle Lagerbestände, Produktionsfortschritt. Signale der Maschinen können genutzt werden um nicht nur den Fortschritt zu erfassen sondern auch automatisiert Vorgänge anzustoßen z.B. Personalzeiterfassung, Lagerzu- und abgänge. Keine fehlerhaften Buchungen, keine zu späten Buchungen.

Das Überführen von Informationen und Daten in dritte Systeme, zum Beispiel einem BI-System (Business Intelligence).

Für sehr spezielle Anwendungen macht das Auslagern von ERP-Daten Sinn um drastisch verbesserte Performanz zu erzielen. Zum Beispiel wurde, selbst bei optimierten EDP-Aufrufen, ein durchschnittlicher Bedarf für die PREISAUSKUNFT von 30ms gemessen. Das ist unerträglich langsam wenn man Hunderte Preise auf’s mal braucht. Sind die Daten ausgelagert, können die besten verfügbaren IT-Konzepte angewendet werden. Verbesserung um den Faktor 1000 sind nicht ungewöhnlich.

Interessanterweise bieten ausgelagerte Anwendungen Ansätze zum sparsamen Umgang mit Lizenzen. Ein Beispiel: Sie können 3 Computer direkt mit der nativen GUI betreiben um Leitstandinformationen abzurufen, oder eine Webanwendung, die 3 Monitore ansteuert. Im ersten Fall brauchen Sie den ganzen Tag über 3 Volllizenzen, im zweiten Fall belegen Sie nur hin und wieder eine Lizenz wenn Informationen abzurufen sind, eventuell genügt sogar eine günstigere Batchlizenz.

Technologien

Die wesentliche Basis, um mit dem abas-ERP zu kommunizieren, ist das EDP-Protokoll. Es beschreibt wie Daten angefordert und gepflegt werden können. Das Protokoll selbst kann theoretisch in jeder Programmiersprache umgesetzt werden.

Wichtig ist zu wissen, dass das EDP-Protokoll ungeschützt ist. Kennworte und Daten können im Klartext mitgelesen werden. Das Protokoll sollte durch geeignete Maßnahmen geschützt werden.

JEDP ist eine Java-Bibliothek von abas, die das EDP-Protokoll unterstützt.

abas eB ist eine Webanwendung, die JEDP nutzt. Mit abas eB kann aus Datenbank- und Infosystemmasken automatisch eine Html-Maske generiert werden. Die generierte Html-Maske enthält keinen Code um Felderereignisse, wie beispielsweise den Feldaustritt, weiter zu leiten. Im Ergebnis verhält sich die Html-Maske grob anders als die native ERP-GUI (getestet mit abas ERP 2014r4 und abas eB 2014r4). Für die meisten Anwendungen erachte ich dies als völlig unbrauchbar.

Ganz offensichtlich gibt es eine Hierarchie von Unterbau EDP-Protokoll über JEDP zu Überbau abas-eB.

Generell haben solche Hierarchien folgende Eigenschaften

  • Was man mit Unterbau nicht kann, kann der Überbau auch nicht.
  • Überbauten können vorhandene Unterbau-Funktionalität jedoch verhindern
  • Überbauten führen neue Konzepte ein, die im Idealfall für Produktivitätsgewinne sorgen, manchmal aber auch Umständlichkeiten erzeugen.

Das führt zu drei Aspekten mit denen man das jeweilige Hierarchieelement bewertet.

  1. Was ist möglich?
  2. Welche Möglichkeit wird verhindert?
  3. Bei welchen Szenarien wird man produktiver, bei welchen unproduktiver?

Einschränkungen des EDP-Protokoll

Soll eine Datenbank- oder Infosystemmaske über EDP angesprochen werden, müssen die Einschränkungen des EDP-Protokoll akzeptiert und beachtet werden. Eine besondere Einschränkung ist, dass Aufrufe via EDP gewisse (FOP-) Befehle unwirksam machen.

  • .kommando
  • .browser
  • .chart
  • alle DDE-Befehle

Dem FOP-Programmierer tut vor allen die Unwirksamkeit des .kommando weh. Mit .kommando -warten kann die aktuelle Maske ausgesetzt werden und eine weitere Maske aufgerufen werden. Erst nach Abschluss der zweiten Maske kann in der ersten weiter gearbeitet werden.

Mit .kommando -parallel kann eine weitere Maske zugeschaltet werden.

Technisch wäre es zwar denkbar, das EDP-Protokoll um diese Möglichkeit zu erweitern, die abas-Entwicklung hat dies nach meinem Kenntnisstand weder geplant geschweige denn umgesetzt.

Man kann die Funktionalität von .kommando durchaus emulieren. Es setzt jedoch geeignete Vorgaben für FOPs und EDP-Clients voraus.

Die Java-Bibliothek JEDP

Diese Bibliothek wird in abas Installationen unter s3/java/lib/jedp.jar zur Verfügung gestellt. Technisch konnte ich bislang keine Einschränkungen gegenüber dem EDP-Protokoll feststellen.

Unklar sind die Lizenzbedingungen für JEDP. Toolhersteller, die keine eigene abas Instanz betreiben, könnte die Verwendung möglicherweise untersagt werden.

Allerdings stehen mit JEDP nicht die, etwa 60, Befehle des EDP-Protokolls zur Verfügung sondern es wird ein Überbau angeboten, der manche Befehle zusammenfasst und manche Befehle aufteilt.

Das ist an sich nicht falsch. Nur gibt die abas-Entwicklung keine öffentlich verfügbare Anleitung bzw. Einführung dieses Überbaus heraus. Der Anwender darf raten wie Befehle aus dem EDP-Protokoll wohl mit JEDP umgesetzt werden. Zwar wird ein Javadoc zum jedp.jar ausgeliefert. Der Nutzwert des Inhalts wie ist bei den meisten Javadocs eher gering und nicht als Einführung in die verwendeten Konzepte geeignet.

Zur Übung mag man mal herausfinden wie mit JEDP Kleindialoge behandelt werden.

Die Webanwendung abas-eB

Auf Basis der Webanwendung abas eB, die auch die Basis der Mobile Serie ist, erstellt(e) die abas Projektierung Webshops und Scannerlösungen. Fast vier Jahre war ich in diesem Umfeld für abas tätig. Dass es zur Verwendung von abas eB meines Erachtens bessere Alternativen gibt, habe ich schon im Beitrag http://wwwapp.de/20151210/bsp/scannerloesung-fuer-abas-erp-ohne-abas-eb/ dargelegt.

Mittlerweile bietet abas (e-solutions) B2C Webshops auf Basis von Shopware an. Dafür wurde extra eine eigene Schnittstelle geschaffen. Einige Shops auf Basis von abas eB wurden nach Shopware migriert. Darf man dies als Zustimmung zu meiner obigen Einschätzung werten?

Leider enthält abas-eB meines Erachtens zahlreiche Schwachpunkte. Den Nutzen dieser Anwendung für den Kunden erachte ich als eher fragwürdig. Einige der Schwachpunkte sind:

Nur Datenbanken und Infosysteme berücksichtigt

abas-eB kann nur mit Datenbanken und Infosysteme umgehen. Beispielsweise unterstützt abas-eB keine Tippkommandos. Bei Scannerlösungen ist das problematisch, denn Umbuchungen sind einerseits typische Anwendungsfälle und andererseits im abas-ERP als Tippkommando implementiert. Der Anwender muss sich umständlich über Zusatzdatenbanken den Weg zur Umbuchung erarbeiten.

Mit EDP und JEDP können Tippkommandos ohne Umwege angesprochen werden.

Performanzbremse

abas-eB handhabt Eingaben äußerst ungeschickt. Jede einzelne Änderung führt zu einem kompletten Laden. Das ist besonderes störend wenn der Tabellenbereich gefüllt werden soll. Der „optimistische Editor“ kann aus folgenden Gründen nicht zur Pflege von Tabellen verwendet werden.

Zum einen werden keine Tabellenoperationen wie „Zeile einfügen“ oder „Zeilen löschen“ für die Masken generiert. Zum anderen scheitert die generierte API schlicht beim Setzen eines Tabellenwertes einer zuvor erzeugten Zeile (getestet und dokumentiert mit abas ERP 2014r4 und abas eB 2014r4).

Eine Verdoppelung der Eingabefelder führt zu einer Vervierfachung des Zeitbedarfs. Wartezeiten von einigen Minuten können nicht ausgeschlossen werden. Nach 5 Minuten schließt abas-eB sogar die EDP-Verbindung wegen Inaktivität, sofern noch die Standardeinstellungen gelten. In unserem Testbeispiel schafft es abas eB gerade mal knapp 1500 Zeilen anzulegen bevor die EDP-Verbindung zwangsweise unterbrochen wird (getestet und dokumentiert mit abas ERP 2014r4 und abas eB 2014r4)

Mit EDP und JEDP können alle Eingaben an das ERP versandt werden und nach Abschluss der Stand komplett geholt werden. Das ist erheblich performanter als das Vorgehen von abas eB.

Kleindialoge

Die FOP-Programmierer kennen für Kleindialoge die FOP-Befehle

  • .box
  • .menue
  • .lesen

Seit einiger Zeit unterstützt auch das EDP-Protokoll Kleindialoge. abas-eB hat für Kleindialoge keinerlei Unterstützung. Zum einen fehlt in den verwendeten Versionen von jedp.jar meist die Klassen zur Unterstützung von Kleindialogen, zum anderen setzen Kleindialoge eine durchgängige Ajax-Architektur der Web-GUI voraus. Und letzteres unterstützt der Komponentengenerator in den mir bekannten Versionen nicht.

Veraltet

Die meisten Scanner-Projekte basieren auf abas eB 2008, das ist hoffnungslos veraltet und wird von der abas-Entwicklung längst nicht mehr unterstützt. Viele abas-eB-Projekte setzen eine eB-Version ein, die zum Releasezeitpunkt seitens abas schon abgekündigt ist. abas-eB-Projekte können nicht einfach auf einen neuen Versionsstand gebracht werden, dazu gibt es schlicht keine Werkzeuge und Unterstützung.

Fazit

Der Einsatz von abas-eB stellt meiner Ansicht nach ein nicht optimales Unterfangen dar, zumindest was die mir bekannten Versionen bis 2015 angeht. Es gibt schlicht bessere Alternativen.

JEDP kann eingesetzt werden wenn man mit Java programmieren möchte, und bereit ist, zu raten und zu forschen wie man die teilweise versteckte Funktionalität anzuwenden hat.

Wer mit anderen Sprachen arbeiten will, oder sich nicht auf die Konzepte von JEDP einlassen will, oder der rechtlich unabhängig von abas agieren will, arbeitet direkt gegen das EDP-Protokoll.

2016-12-14

sprachliche Überarbeitung, manches klarer formuliert

2016-12-19, 2017-01-05

sprachliche Überarbeitung

, , , , , ,

Comments are currently closed.

Durch die weitere Nutzung der Seite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn Sie diese Website ohne Änderung der Cookie-Einstellungen verwenden oder auf "Akzeptieren" klickst, erklären Sie sich damit einverstanden.

Schließen