Verwendung eines DMS mit GUPTA Team Developer 6.1 unter Win32 in Form eines Workshops bei einem bayerischen Kunden vor Ort

Das DMS stellt benötigte Funktionen bereit für:

  • den Import von neuen Dokumenten
  • den Import von überarbeiteten Dokumenten
  • der Suche von Dokumenten
  • den Export von Dokumenten
  • administrative Funktionen wie Ping, Versionsinfo …

Es sollte ein Weg aufgezeigt werden, wie die Funktionalitäten des DMS vom Team Developer verwendet werden können. Die bestehende ActiveX-Schnittstelle des DMS sollte nicht mehr verwendet werden, da lt. Hersteller des DMS diese nicht weiter supported wird und evtl. in der Folgeversion  entfallen könne. Web Service war die Alternative.

Bei dem DMS-Web Service handelt es sich um eine Schnittstelle mit recht komplexen und verschachtelten Datenstrukturen. Weiterhin besteht bei der Weitergabe von Dokumenten an den Web Service die Forderung, dass hierbei MTOM (Message Transmission Optimization Mechanism, eine W3C-Empfehlung für die Übertragung binärer Daten in Web Services) aktiviert sein muss.

Am ersten Tag ging es darum, einen Weg zu finden, den Web Service vom Team Developer aus, zu konsumieren.

Win32: Die Web Service Proxy-Klassen wurden zwar vom Web Service-Wizard des Team Developer erstellt, allerdings wurde das Request falsch erstellt, wodurch jede Web Service-Anfrage mit entsprechender Fehlermeldung verlief.

.NET: Mittels des .NET Web Service-Wizard wurde die Schnittstellen-DLL erstellt, konnte auch für einige Funktionen mit einfachen Datentypen verwendet werden, aber Funktionen mit verschachtelten Strukturen konnten auch hier nicht verwendet werden.

Damit schlugen die Versuche, den Web Service mit Team Developer eigenen Mitteln zu konsumieren, fehl.

Die Einbindung des Web Services in ein C#-Test-Projekt mit Visual Studio konnte mit Erfolg stattfinden. Die nachfolgend erstellten Testfunktionen für die Web Service-Schnittstelle konnten mit Erfolg erstellt werden. Hierbei ging es um folgende Funktionalitäten:

  • Ping
  • Versionsinfo abfragen
  • Dokumente suchen
  • Import eines Dokumentes

Auf dieser Grundlage wurden die Funktionalitäten aus der Testanwendung in eine .NET-DLL extrahiert und diese im Team Developer-Test-Projekt eingebunden. Somit wurde der Web Service in einem .NET-Assembly gekapselt und konnte dann vom Team Developer verwendet werden.

Ein entsprechendes Test-Projekt wurde begonnen, einige Funktionen zur Demonstration erstellt.

Für weitere Funktionen fehlte dann doch die Zeit, aber der gezeigte Weg war für den Kunden hilfreich und durchführbar. Der Import erfolgte bisher nur mit kleinen Dokumentgrößen, die scheinbar auch ohne MTOM-Aktivierung auskommen. Ein Test mit größeren Dokumenten muss noch erfolgen und die MTOM-Aktivierung mittels WSI 3.0 erfolgen.

Eine weitere Unterstützung durch MD Consulting ist vorgesehen.

20140425


Anbindung eines Dokumenten-Scanners in eine Team Developer-Anwendung mittels TWAIN-Schnittstelle für einen Schweizer industriellen Hersteller

Der manuelle Prozess der Dokumentenverwaltung/-suche sollte durch eine edv-technische Lösung ersetzt werden. Dazu sollten die Dokumente/Pläne, welche bisher in Dokumenten-Ordnern in Papierform abgelegt, gesucht und entnommen wurden, eingescannt werden und diese, als PDF gespeicherten Dokumente entweder im Filesystem oder in der Datenbank gespeichert werden.

Es galt folgende Punkte zu betrachten und umzusetzen:

  1. Einscannen der Dokumente und speichern in verschiedenen Formaten (pdf, jpg)
  2. Speichern und Verwalten der Dokumente im Dateisystem
  3. Speichern und Verwalten der Dokumente in der Datenbank

Lösung:

  1. Um die Twain-Schnittstelle zum Dokumentenscanner ansprechen zu können, wurde auf die EZTwain-DLL von Atalasoft zurückgegriffen. Diese DLL und die notwendigsten Funktionalitäten wurde in die Team Developer-Applikation eingebunden und ein kleines Testprogramm erstellt. 
    Im Weiteren wurde der Scanvorgang in der TD-Applikation verfeinert, so dass der Anwender nicht mit der Twain Schnittstelle agieren muss, die ganzen Einstellungen also von der TD-Anwendung gesetzt werden konnten.
  2. Das Speichern der eingescannten Dokumente erfolgte bereits über die Twain-Scanfunktion. Hier wurde das Organisieren im Dateisystem und die Ablage der File-Informationen in der Datenbank betrachtet.
  3. Das Speichern von BLOB-Daten in der Datenbank haben wir näher betrachtet. Für diesen Workshop waren 2 Tage angesetzt. Der Kunde kam mit seinem Scanner zu uns ins Erdinger Büro und brachte auch seine Team Developer-Anwendung mit.

Da die Einbindung der Twain-DLL recht zügig erfolgte, konnte abschließend noch die Einbindung eines Time Scheduler Controls über die ActiveX-Schnittstelle betrachtet und eine kleine Demoanwendung erstellt werden.

20140417


Erstellung der Funktionalität „Krankenstatistik“ als Erweiterung einer bestehenden Kundensoftware bei einer Behörde in Mecklenburg-Vorpommern

Kurz vor dem Rollout der Kundenanwendung wurden noch erheblich Bugs festgestellt, welche seitens des Kunden nicht gelöst werden konnten. MD Consulting wurde gerufen. 

Bei der Software handelt es sich um eine Lösung für die Erfassung von Personal- und Maschinenleistungszeiten und die Übergabe der erforderlichen Daten an SAP. Zusätzlich sollte dies um eine Abbildung von Krankenstatistiken unter Nutzung der bestehenden Klassenbibliotheken erweitert werden.

Bei der genaueren Analyse der Anforderungen wurde festgestellt, dass diese sehr vielschichtig sind. Für die Abrechnung der Waldarbeiter für die Krankentageerfassung, wird ein komplettes neues Formular benötigt. Aus der Zeiterfassung werden mindestens die Krankenstunden in Summe benötigt. Weiterhin wird die auflaufende Krankheitstagesumme je rollendem Jahr für die Verfahrenseinleitung benötigt. Für interne Statistiken wird eine detaillierte Gliederung der Krankheitsfälle und Tage nach Beschäftigtengruppen und Varianten der Krankheiten aus dem Servicebereich Personal gefordert.

Diese sehr unterschiedlichen Anforderungen gleichzeitig zu erfüllen ist eine Herausforderung, die innerhalb des bisherigen Zeiterfassungsinstrumentariums nicht umsetzbar ist.
Daher soll für die Anforderungen einer Krankenstatistik ein neuer separater Erfassungsbereich geschaffen werden, der möglichst einfach aber inhaltlich stark detaillierte Informationen enthält und die Krankentage darstellen kann.

Fazit:
Statement unseres Kunden:

Guten Morgen Herr …,
anliegend das Testergebnis zur Software „Zeiterfassung und Krankenstatistik“, insgesamt ein gutes Ergebnis!

Mit freundlichen Grüßen und noch einen schönen Tag …

20140407


Entwickeln von Anwendungen für mobile Endgeräte mit TD Mobile in Form eines Workshops bei einem Kunden aus der Automobilbranche in Hessen

Der Kunde möchte mit dem TD Mobile mehrere Projekte realisieren. Im Fokus stehen zunächst:

1. Für Partnerunternehmen und Außendienstmitarbeiter soll eine mobile Anwendung für Tablets erstellt werden, mit der leicht – z.B. während einer Messe oder an einem Promotionstand – neue Mitglieder erfasst werden können. Hierzu sind u.a. die Unterschrift des Antragstellers, sowie eine Authentifizierung des erfassenden Partners erforderlich.

2. Für Reparaturfälle oder den Abschleppdienst soll eine mobile Anwendung die Kommunikation und Abrechnung erleichtern. Hierzu soll beispielsweise nach Auftrag der Abschleppwagen getrackt werden (Stichwort geolocation), um ungefähre Ankunftszeiten zu kommunizieren und später die Abrechnung auf der Basis der gefahrenen Kilometer zu erstellen.

Weitere Projekte sind in Planung. Der durchgeführte Workshop diente dazu einen Entwickler des Kunden in die Lage zu versetzen die geplanten Projekte zu bewerten, zu planen und umzusetzen.

Somit wurde der zweitägige Workshop durchgeführt, um dem Kunden die Möglichkeiten und Arbeitsweise des TD Mobile aufzuzeigen. Hierbei wurde speziell auf die Fragen des Kunden eingegangen und Lösungen für die bereits identifizierten Probleme entwickelt. Offene Punkte des TD Mobile wurden dokumentiert und werden im Nachgang gemeinsam mit Gupta einer Lösung zugeführt.

Der Kunde wird jetzt damit beginnen ein/zwei Pilotprojekte zu entwickeln und auf Basis seiner Erfahrung die nächsten Schritte planen.

20140403_02


Migrationsunterstützung einer TD Anwendung von 2.0 nach 6.2 bei einem Schweizer IT-Unternehmen für die Kundenverwaltung von Telefon(mobile)-Kunden

Die Quellcode-Dateien der Anwendung lagen in Textform von (*.apt) vor.  Bei der Migration wurde auf *.apl/*.app umgestellt. Das Textformat jedoch beibehalten. Manche Libraries lagen als *.apc vor und mussten in Standard APLs geändert werden. Sie wurden zunächst rein formal modifiziert um ein kompilieren zu ermöglichen.

Nach formaler Migration und grundsätzlicher Connectivity (Oracle), konnte die Anwendung gestartet und der Login-Dialog angezeigt werden.

Zum endgültigen Start der Anwendung mussten dann noch ein paar Hürden genommen werden:

  • Anpassung der globale Variable für das SqlStatement
  • Anpassung Konstanten zur DB Versionsverwaltung
  • Entfernen nicht verwendeter Dateien
    Bemerkenswert: Die Verschlüsselung des DB Kennworts über eine kundeneigene C-DLL funktioniert weiter ohne manuelle Eingriffe.

Die Anwendung kann nun über den Login-Dialog hinaus gestartet und die verschiedenen Masken aufgerufen, Reports gestartet, eine Exe generiert.

  • Es folgte eine grobe anwendungstechnische Prüfung, zunächst aus der Entwicklungsumgebung, nach Generierung einer Laufzeitumgebung auch aus dieser. Beide Prüfungen waren erfolgreich.
  • Weiter führten wir Untersuchung der in den *.apc Dateien enthaltenen Funktionalität durch.
    Für die ursprünglichen *.apc Libraries werden wieder *.apl Dateien aus den original Quellcode-Dateien (soweit vorhanden) eingebunden. Die zugehörigen DLLs entfallen dadurch.

20140403


Auftrag zur Integration von Web Services in eine GUPTA Team Developer 1.5-Anwendung bei einem Softwarehaus in Österreich

In einer Team Developer-Anwendung, genauer einer Warenwirtschaft, sollte der Aufruf von Web Services ermöglicht werden. Der (kleine) Haken an diesem Projekt ist, dass die Anwendung unter Team Developer 1.5 entwickelt wurde, und dieser Versionsstand des Entwicklungswerkzeuges die Verwendung von Web Services nicht unterstützt.

MD Consulting hat also beschlossen, ein zusätzliches Programm in Form eines Modules zu entwickeln, welches das Vorhaben dennoch ermöglicht. Folgende Funktionsaufrufe müssen für die Software realisiert werden:

  • Artikelpreisabfrage
  • Artikelverfügbarkeitsabfrage
  • Kombinierte Abfrage von Preis und Verfügbarkeit
  • Bestellung
  • Artikelliste
  • Artikelsuche

Da eine spätere Migration der gesamten Warenwirtschaft auf die Team Developer Version 5.1 in Betracht gezogen wird, wird das neue Modul ebenfalls in dieser Version entwickelt, um es später ohne weitere Anpassungen in die neue Version der Anwendung integrieren zu können.

Funktionsweise des Moduls

Der „Web Service-Caller“ wird aus der Warenwirtschaft mittels einer Funktion aufgerufen. Dem Caller werden nachfolgend folgende Parameter übergeben: die Funktionsnummer und die benötigten Recieve-Parameter der gewählten Funktion. Über den Return-Code des Web Service-Callers erhält nun das Programm eine kurze Info, ob der Aufruf fehlerfrei von Statten gegangen ist. Die jetzt anstehende Übergabe der Response-Werte kann über zwei favorisierte Wege erfolgen: Entweder werden die angefragten Informationen durch eine Datei (XML oder Text) oder über die Datenbank, die als Schnittstelle beider Anwendungen fungiert, übergeben.

Die Arbeitsschritte von MD Consulting setzen sich in diesem Projekt wie folgt zusammen:

  • Absprachen mit dem Auftraggeber und Aufbau der Testumgebung
  • Erstellung der Web Service-Proxy-Klassen
  • Einbindung der Proxy-Klassen und Erstellung der benötigten Funktionalitäten
  • Gesamt Test inkl. Test-Client
  • Dokumentation des Projektes

Neue Version des Warenwirtschaftssystems erfolgreich fertig gestellt!

Das internationale Warenwirtschafts-, Kassen- und Servicesystem, welches bei einem der weltweit größten Handelskonzerne im Einsatz ist, wird seit mehreren Jahren von MD Consulting in enger Zusammenarbeit mit dem Auftraggeber kontinuierlich weiterentwickelt und gepflegt.
Das Warenwirtschaftssystem beinhaltet zwei Teilsysteme, basierend auf SQL-Windows zur Abwicklung der Geschäftsprozesse für den Verkauf, Logistik, Rechnungswesen. Weiterhin gehören zum dezentralen System Kassensysteme, Hintergrundprozesse für die Datenversorgung/-auswertung und Schnittstellen zu SAP, AS400 und DWH, die zum überwiegenden Teil mit C realisiert sind.

Vom Projektleiter und seinem 11-köpfigen Team bei MD Consulting mussten eine ganze Reihe von Herausforderungen bewältigt werden. Mit der Übernahme und der Realisierung des Projektes war eine umfangreiche Einarbeitung sowie ein hoher Koordinierungs- und Abstimmungsaufwand zwischen MD Consulting und dem Auftraggeber verbunden. Auch die konzeptionellen Arbeiten, die Problematik der unterschiedlichen Sprachvarianten und die umfangreichen Tests verschiedenster Konstellationen gehören dazu.

Von der Übernahme des dezentralen Gesamtsystems bis zum produktiven Einsatz in mehreren Ländern wurden lediglich acht Monate benötigt.

Derzeit wird im Rahmen des Projekts der vollständige Geschäftsprozess für die Serviceabwicklung inkl. SAP-Schnitt-stelle von MD Consulting analysiert und in neuen Modulen implementiert. Das Warenwirtschaftssystem wird für den Einsatz in weiteren zusätzlichen Ländern unter Beachtung der gesetzlichen Notwendigkeiten sowie der Anforderungen, die sich aus der Integration des Service-Geschäftsprozesses ergeben, modifiziert.

In der neuen Version gab es grundlegende inhaltliche und technische Änderungen:

  • Integration von Java-Komponenten über WebServices
  • Hintergrund ist die strategische Entscheidung die Business Logik in serverseitige Java-Komponenten zu portieren. Da die vollständige Umstellung bei einem hochkomplexen und umfangreichen System einen sehr langen Umstellungszeitraum erfordert, wurde der Weg der sog. „weichen Migration“ gewählt. Über mehrere Versionen hinweg werden einzelne Teilbereiche portiert. Zur Verbindung beider Welten werden WebServices verwendet, die eine in Java programmierte Business-Logik zur Verfügung stellen und innerhalb der Gupta-Komponenten über SOAP eingebunden sind.
  • Vereinheitlichung der internationalen Geschäftsprozesse
  • Vollständige Abbildung der Geschäftsprozesse für Lieferantenvereinbarungen und Provisionen
  • Einführung eines integrierten Transferkonzepts mit Kommunikation zwischen den Märkten über Datenpakete
  • Einführung eines erweiterten Bewertungssystems für die Warenflüsse nach dem FIFO Prinzip

Zur Dimension des Gesamtprojektes:
Neben vier großen Hauptkomponenten des Systems gehören noch unzählige Schnittstellen- und Zusatzprogramme, d. h. in Zahlen – mehr als 350 Sourcecode-Dateien – dazu. Die Software kommt auf ca. 17.000 Clients mit den Betriebssystemen Windows 95, Windows NT und Windows XP aber auch auf Linux-Servern zum Einsatz.
In diesem Projekt entstand das 
MD-Tool „Web Service-Proxy-Generator für SQLWindows™“.

20140326


Migration Oracle 12c – Neue Features und die praktische Umsetzung in Form eines Oracle-Workshops bei einem Kunden in Hamburg

Ausgangssituation:
Oracle Datenbank 10gR2 auf Win2003

  • Sicherung mit Export

Ziel:
Migration zu Oracle 12cR1 SEO (Standard Edition One) auf Win2008R2 in VMware

Schwerpunkte:

  • Installation der Software Oracle 12c Edition SE auf Testserver
  • Aufsetzen der Datenbank mit Database Configuration Assistent
    – Simulation der realen Verzeichnisstruktur
    – Hinweise für spätere Nutzung
    – Anpassung der Parameter
  • Überblick New Features 11g, Selektion der wichtigsten Punkte für Edition SE
  • Überblick New Features 12c, Selektion der wichtigsten Punkte für Edition SE
  • Unterweisung der wichtigsten Konzepte Backup und Recovery
    – Konfiguration des Testsystems für Online-Backup
    – Übungen Backup und Recovery

20140314


Inhouseseminar Oracle 11g bei einer Behörde in Thüringen

Ausgangssituation:
Oracle Datenbank 9i

  • wöchentlich Offline-Backup mit Betriebssystem / tgl. Export Full Daten-bank
  • Datenverlust akzeptabel- keine notwendigen Arbeiten

Oracle Datenbank 11gR2 Enterprise Edition (11.2.0.2.0) auf Win2008R2

  • System 1:
    auf VMware Win2008R2 2 Single-Instanzen
  • System 2:
    physischer Server Win2008R2 mit 4 Single-Instanzen

Aufgaben:
1. Für System 2: Durchführung einer Duplizierung der Datenbank auf einem anderen Host zu Testzwecken bzw. als Ausfallsystem.

2. Konfiguration einer Online-Backupmethode mit Konfiguration mit möglichst hoher Sicherheit auf vorhandenem System 2.

Lösung für Aufgabe 1:
Test und Übergabe einer Anleitung zur Duplizierung mit RMAN

Lösung für Aufgabe 2:
am Produktivsystem Datenbank ORCL

  • Einstellung ARCHIVELOG- Modus
  • bisherige Spiegelung der Control Files als akzeptabel bewertet
  • neu Spiegelung der Online Redo Log Files
  • 2 Archivierungsziele
    log_archive_dest_1=“location= db_recovery_file_dest optional“
    log_archive_dest_2=“location= D:\<Verzeichnis> mandatory“
    db_recovery_file_dest_size erhöht
    Konfiguration RMAN
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    Redundanz zunächst auf 1 beibehalten
  • mit OEM DB Console Erstellung eines Backupjobs:
    – Auswahl benutzerdefiniert (nicht Oracle empfohlen gewählt!)
    – Umfang: gesamte Datenbank
    – Backupset auf Disk inkl. der nicht gesicherten archivierten Redo Logs
    – Löschen der veralteten Backups 
    – Zeitpunkt tägl. 2:00
    – Ziel NetAppServer

Testjob mit Teilbackup der DB erfolgreich, wieder gelöscht
Job weitergeleitet

Anmerkung:
Kontrolle aller Parameter ergab
audit_trail=db –

Neufestlegung (Auditing wird nicht be-nötigt) 
audit_trail=none

20140313


Anpassung einer Applikation in Form eines Workshops bei einem Renovierungsdicounter in Niedersachsen

Die bei unserem Kunden eingesetzte Software wurde bereits in einem vorangegangenen Migrationsworkshop von der Version Team Developer 1.5 auf die Version Team Developer 6.0 migriert. Da eine Umsetzung als .NET-Applikation angestrebt wurde. Es wurde die .NET-Fähigkeit der Software-Lösung gewährleistet.
Daher ist zur Zeit die Software in den Versionen 1.5 und 6.1 im Einsatz, was zu einem erhöhten Wartungsaufwand führt, da Änderungen meist in beiden Ständen durchgeführt werden müssen.
Ziel ist daher, einen Programmstand in der Version Team Developer 6.1 zu erhalten.

Inhalt des Workshops:
Hauptschwerpunkte lagen in der Beseitigung von Fehlverhalten des Programmes im täglichen Einsatz:

  • Im MDI-Window werden keine Scrollbalken angezeigt, wenn das Child-Window größer als der Clientbereich ist. Ein Testprogramm zeigte, dass die Ursache nicht im Team Developer begründet liegt. Ein Test im Team Developer 6.2 funktionierte einwandfrei, so dass hier nicht weiter analysiert wurde.
  • Anzeige eines doppelten Fensters beim Start des EDIFACT-Prozesses. Das Fenster wurde bei Owner hWndForm angezeigt, allerdings 2 mal. Bei Owner hWndMDI wurde es erstellt, lag allerdings hinter dem aufrufenden Fenster und konnte auch nicht in den Vordergrund geholt werden. Ursache war hier eine vorher durchgeführte Änderung im Framework. Dies musste nun für diesen Prozess ebenfalls angepasst werden, d.h. die Owner der erstellten Fenster wurden korrigiert.
  • Flackern des MDI-Menüs beim Öffnen und Schließen von Child-Fenstern. Anfrage an den Gupta-Support, ob hier eine bessere Möglichkeit besteht, ein dyn. Menü am MDI anzuzeigen.
  • Bei Verwendung einer C#-Dll wurde innerhalb der TD-DIE ein Fehler angezeigt. Grund dafür war der Umstand, dass das Projekt auf einem Netzlaufwerk angelegt war. Befindet sich das Projekt auf einem lokalen Laufwerk, funktioniert alles einwandfrei.
  • VisTblFindString führt keine exakte Suche durch – Meldung an den Gupta-Support.

Tool-Umstellung:

  • Die beiden Tools „Table Builder“ und „Field Wizard“ (beides CDK-Tools zur Unterstützung einer einheitlichen Source- und GUI-Gestaltung) wurden von der Version Team Developer 1.5 auf die Version Team Developer 6.1 migriert.
  • Anpassungsbedarf bestand bei der Erstellung von Background-Items.
  • Probleme traten hier in der Version Team Developer 6.1 auf, da hier die Zuweisung der zugrundeliegenden DIE-Outline nicht funktionierte. Ein Test zeigte, dass dies in der Version Team Developer 6.2 behoben wurde und dort die beiden Tools funktionierten.
    Meldungen an den Gupta-Support:
    Problem mit der Funktion cdkI-tem.GetPrevSibling, wenn das zurückliegende Item ein Comment oder Background-Item ist.

Ergebnis:
Eine komplette Umstellung auf Team Developer 6.2 wird angestrebt.

20140220