Anwendungsentwicklung mit LC LSX - Teil 1

Die Grundstruktur von LC LSX-Anwendungen

Im Artikel „LotusScript und Datenbanken“ in der Ausgabe SPEZIAL Nr. 13/2006 wurde bereits in Grundzügen auf die Entwicklung von Anwendungen mit dem LC LSX eingegangen. Dabei wurden die verschiedenen Klassen kurz erläutert und an einem Beispiel gezeigt, wie die Struktur typischer Anwendungen aussieht. In dieser Struktur wird eine Verbindung aufgebaut, eine Abfrage durchgeführt, dann werden die Ergebnisse Schritt für Schritt durchlaufen.

Über die minimalistische Struktur der Beispielanwendung hinaus gibt es aber noch einige weitere wichtige Punkte zu beachten:

  • Man muss überlegen, in welcher Form die Abfragen konstruiert werden. Der typische Fall ist, dass man eine vorgegebene Abfrage hat, in der einzelne Elemente dynamisch erzeugt werden. Ein gutes Beispiel sind Abfragen, die alle Datensätze auslesen, die ab einem bestimmten Datum erstellt wurden. In diesem Fall ist das SQL-Statement bis auf das Datum immer gleich. Der dynamische Teil der Informationen kann in der Anwendung beispielsweise aufgrund fester Parameter wie dem aktuellen Datum, durch Vergleich mit Informationen in Notes-Dokumenten oder durch eine Eingabe eines Benutzers ermittelt werden. Die Ermittlung der Informationen, die für die Konstruktion der Abfrage verwendet werden, sollte immer zu Beginn des Codes erfolgen.

  • Die Auswertung der Informationen kann deutlich komplexer werden als im Beispiel des genannten Artikels. Für die Verarbeitung gibt es wenige typische Ansätze. Dazu gehört das Erzeugen oder Verändern von bestehenden Dokumenten, wobei in diesem Fall meist ein Dokument pro Datensatz verwendet wird. Ein anderer ist das Aggregieren von Informationen aus mehreren Datensätzen, um nur eine zusammenfassende Information in ein Dokument zu schreiben. Bei dieser Variante muss man allerdings prüfen, ob man die Aggregation nicht auch über SQL-Statements erreichen kann. Das ist in aller Regel sehr viel effizienter als das wiederholte Durchlaufen einer Schleife für unter Umständen sehr viele Datensätze. Die SQL-Anweisungen arbeiten bei den meisten Datenquellen sehr effizient, auch wenn Informationen aus vielen Datensätzen zusammengefasst werden müssen.

  • Für die Auswertung wurden eine beachtliche Menge von Optionen bereitgestellt, um beispielsweise mehrere Zeilen in einem Schritt verarbeiten zu können.

  • Generell gilt auch, dass man die Anzahl der verwendeten Verbindungen minimieren sollte. Über eine Verbindung lassen sich mehrere Abfragen durchführen. Da der Aufbau von Verbindungen relativ zeitintensiv ist, sollte man Situationen vermeiden, in denen beispielsweise innerhalb einer Schleife immer wieder Verbindungen aufgebaut werden. Solange nichts Besonderes vorliegt, wird innerhalb eines Agents für den Zugriff auf eine Datenquelle auch nur eine Verbindung benötigt.