OpenEdge .Net Data Provider für List & Label 24

Der OpenEdge Data Provider für List & Label 24 steht ab sofort als Download zur Verfügung.

Den OpenEdge Sourcecode und die DLL finden Sie wie üblich auch in Ihrer List & Label Installation unter C:\Program Files (x86)\combit\LL24\Beispiele\Progress\OpenEdge. Den C# Sourcecode finden Sie nur hier im Download Bereich.

Entwickelt wurde diese Version unter OpenEdge 11.7 64bit und mit der Visual Studio 2017 Community Edition. Der Data Provider ist mit dem .Net Framework 4.0 compiliert, die OpenEdgeDemo mit .Net Framework 4.6, da die integrierten Progress.Messages.dll und Progress.o4glrt.dll für OpenEdge 11.7 .Net Framework 4.6 voraussetzen.

Falls Sie eine andere OpenEdge Version verwenden und auch über einen .Net Client (wie z.B. dem combit Report Server) auf den OpenEdge Appserver zugreifen möchten, ist es ggf. erforderlich den OpenEdgeProxy mit anderen Einstellungen neu zu generieren.

Der Dataprovider ist in den combit Report Server fest integriert über den Source Code. Ein Wechsel zu einer anderen Version des Data Providers ist hier nur über combit möglich. Der Proxy, d.h. die Schnittstelle zum OpenEdge Appserver kann aber über die Registry konfiguriert werden und somit auf ihre OpenEdge Version angepasst werden.

Für List & Label 24 wurde der Data Provider erweitert um zusätzliche Möglichkeiten, die erforderlich sind, wenn der Data Provider über den OpenEdge Appserver auf Services zugreift (wie der Report Server). Bei einem Database Service, der Zugriff auf eine OpenEdge Datenbank gibt, ist das keine Problem. Anders sieht es allerdings aus, wenn ein Auswertung zum Beispiel Daten in ein ProDataset schreibt und dieses dann in List & Label verarbeitet werden soll. Da List & Label tabellenweise Daten anfordert, muss man das ProDataset zwischen einzelnen Appserver Aufrufen zwischenspeichern (Cache) und auch für unterschiedliche Appserver Agents verfügbar machen.

Um das zu ermöglichen, schickt der Data Provider bei jedem Request eine ClientId (= Instance Guid) mit. Zusätzlich sendet der Data Provider einen neuen „ClientEvent“, wenn bestimmte Dinge passieren. Um einen Cache zu implementieren, macht man etwa folgendes:

  • Client Event „ReportParametersCollected“: Report Parameter auswerten, Daten erstellen und in einen Cache schreiben. Hierzu schreibt man z.B. das Dataset als Json auf die Platte in eine Datei deren Name aus Service Name und ClientId gebildet wird.
  • Beim Zugriff auf Daten lädt man den Cache zurück in das Dataset.
  • Beim einem Dispose() des DataProviders schickt dieser einen letzen Event „ClientDisposed“. Das ist dann der Zeitpunkt einen Cache zu löschen.

Ein Database Service, der Zugriff auf eine komplette Datenbank gibt, hat einen gewissen Charme, war aber bisher nur begrenzt nützlich, da das Feature von „Calculated Tables“ fehlte. Das sind im Prinzip Temp-Tables, die in einen Database Service integriert werden können. Die Daten in diesen Temp-Tables werden erzeugt, wenn die Tabellen angefordert werden. Parameter sind hier z.B. die aktuelle Parent Relation und ggf. auch Report Parameter – beides schickt der Data Provider mit.  Zusätzlich zu „Calculated Tables“ gibt  es auch seit längerem „Calculated Fields“. Ein Beispiel für beides finden Sie im Sports2000Service der Demo.

Ein Beispiel für einen Cache folgt …

 


OpenEdge .Net Data Provider für List & Label 23

Der OpenEdge Data Provider für List & Label 23 steht ab sofort als Download zur Verfügung.

Der Data Provider selbst erforderte nur minimale Anpassungen für die neue List & Label Version.

Allerdings hat List & Label 23 erhebliche Verbesserungen unter der Haube. Aus meiner Sicht als OpenEdge Entwickler sind die wichtigsten vielleicht:

  • Weiter optimierter Designer.
  • Erhebliche Performance Verbesserungen.
  • Report Server ab der Enterprise Version kostenlos mit dabei.

Eine vollständige List der Neuerungen erhalten Sie hier auf der combit Website.

Bitte geben Sie uns ihr Feedback für den Data Provider!


OpenEdge .Net Data Provider für List & Label 22

List & Label 22 und der passende OpenEdge Data Provider sind schon seit einiger Zeit auf dem Markt. Hier sind die Merkmale im Überblick.

Der Data Provider ist eine Kombination aus einer .Net DLL und einem ABL Backend. DLL und Backend sind entkoppelt und kommunizieren über JSON. List & Label kann in einer ABL Applikation oder einer .Net Applikation integriert sein. Damit die DLL mit ihrem Backend kommunizieren kann, ist es erforderlich einen Service Adapter in .Net bzw. ABL zu implementieren. Beispiele für beide werden mitgeliefert.

Folgende Konfigurationen sind möglich:

  • ABL Clients mit oder ohne Appserver.
  • .Net Clients über Appserver. .Net OpenClient Proxy wird mitgeliefert.
  • combit Report Server. Der Data Provider wurde von combit in den Report Server integriert.
  • Web Reporting oder Mobile Reporting. Das ist kein spezielles Feature des Data Providers, setzt aber eine reine .Net Implementierung eines Data Providers voraus. Für entsprechende Lösungen gibt es von combit .Net ASP Beispiele.

Wichtige Features des Data Providers:

  • Dynamische, abstrakte OpenEdgeService Klasse. Eigene Services erben von dieser Klasse.
  • Direkter Zugriff auf Datenbanken (komplette Datenbank oder Teile einer Datenbank).
  • Zugriff auf existierende ProDatasets. Dem Services reicht die Handle eines gefüllten Datasets aus.
  • Filtern, Sortieren und Beschränkung der Datenmenge auf die in einem Projekt verwendete Felder.
  • Schicken aller verwendetet Fremdschlüsselfelder zusammen mit den Feldern der aktuellen Tabelle.
  • Unterstützt Advanced Sorting und Advanced Filtering.
  • Unterstützt Native Aggregate Functions.  Hierfür gibt es einen Expression Parser, der auf dem Shunting-yard Algorithmus basiert.
  • Verwenden von Report Parametern als Filter für den Service. combit hat hierzu List & Label erweitert. Dieses Feature ermöglich es, Parametermasken in das List & Label Projekt zu verlagern. Das ist essentiell für den Report Server, das Web Reporting und macht auch die OpenEdge ABL Anbindung einfacher.

Es wird also Zeit für Sie, das ganze mal auszuprobieren. Die aktuelle Version des Data Providers und der Demo Applikation steht auf der Download Seite bereit. Die Samples wurden um einige Beispiele erweitert. Wenn Sie noch keine Erfahrung mit dem Data Provider haben, empfehle ich Ihnen zunächst die Demo zum Laufen zu bringen, und damit Erfahrungen für Ihr eigenes Projekt zu sammeln.

Viel Erfolg!

 


OpenEdge .Net Data Provider für List & Label 21

OEDP

Die erste Version des Data Providers war ein Hybrid aus einer .Net Adapter DLL und ABL Code. Technisch war diese Lösung ok, wegen der erforderlichen .NET – ABL Bridge Calls für jeden Datensatz und jedes Feld aber zu langsam. Es gab mit diesem Ansatz aber leider keine Möglichkeit die Performance zu verbessern.

Daraus entstand die Idee einer neuen Version mit folgenden Features:

  • Data Provider als pure .Net DLL in C#
  • Kommunikation mit OpenEdge über JSON
  • Service orientiertes Backend
  • Appserver fähig
  • Unterstützung von ABL Clients und .Net Clients
  • Generische Datenbank Services mit minimalen Entwicklungsaufwand
  • Tools zum Generieren von Datenbank Services aus einem Progress Meta Schema
  • und vor allem – schnell!

Das war eine Herausforderung!

Aber hier ist nun der brandneue OpenEdge .Net Data Provider für List & Label und steht für Sie hier zum Download bereit.

Es gibt auch einen Beitrag hierzu im sehr interessanten combit Dev Blog.

Bitte lesen Sie meine Dokumentation bevor Sie starten. Probieren Sie die mitgelieferte Demo aus, bevor Sie das ganze in Ihr Projekt einbinden.

Ich hoffe, dass das ganze ein Erfolg wird und auch Ihnen hilft den Reporting Aufwand zu minimieren.

Viel Glück!



OpenEdge Data Provider für List & Label released

Es ist soweit. Das erste Release des Data Providers steht zum Download bereit.

Im Download Bereich finden Sie die Software und eine kurze Dokumentation.

Die Software enthält auch eine Sports2000 Sample Application, die Ihnen den Einstieg erleichtern soll und eventuell auch eine wertvolle Vorlage für eine eigene Lösung sein kann. Auf jeden Fall ist sie aber eine Basis zum Ausprobieren sämtlicher List & Label Designer Features – Multi-Table Reports, Drill-Down, Filtern und Sortieren im Designer, Echtdatenvorschau, usw. – ohne eine einzige Zeile Code schreiben zu müssen!

Die Sports2000 Sample Application verwendet einen eigenen, von der Basisklasse abgeleiteten Data Provider, der das komplette Schema der Sports Datenbank inklusive aller Relationen registriert. Vielleicht ist das ja auch ein Ansatz für Ihr eigenes Projekt …

Enjoy!