Bei intensiver Nutzung von Confluence kristallisiert sich schnell die Anforderung heraus, dass die Wiki Seiten mit strukturierten Daten aus anderen Quellen verknüpft werden. Aus Sicht der Administration einer Confluence Instanz muss dies aber in sauberen Bahnen zu verwalten sein. Aus diesem Grund hat die Scandio PocketQuery entwickelt.

PocketQuery erlaubt es, dass der Administrator beliebige Datenbanken mittels JDBC anbinden und in beliebiger Form darstellen kann. Hierzu wurde im Administrationsbereich von Confluence eigens ein Verwaltungsbereich für PocketQuery erstellt. In diesem Bereich werden die Datenquellen, die Abfragen und die zugehörigen Templates verwaltet. So kann sichergestellt werden, dass nur erlaubte Abfragen in Confluence Anwendung finden. Bereits definierte Abfragen können dediziert einem, mehreren oder allen Wiki Bereichen zugeordnet werden.

PQ_admin-overview

Pocketquery Abfragen werden über ein Confluence Makro in die Seite eingebettet. Hier kann nur noch der Query-Name mit den zugehörigen Parametern angegeben werden. SQL Eingaben durch den Benutzer sind aus gutem Grund nicht möglich.

PQ_contact_query_management

Als Datenquellen können alle erlaubten JDBC Verbindungen gewählt werden. Die Treiber müssen logischerweise in der Java Applikation zur Verfügung stehen. Für die Verbindung werden Treiber, die Datenquelle und der Benutzer samt Passwort angegeben.

PQ_database

Ist eine Datenquelle angelegt kann diese für Abfragen verwendet werden. Eine Abfrage ist ein beliebiges SQL Statement, das mit Named-Parameters verwendet werden kann. Jeder Parameter kann bei der Makro-Benutzung vergeben werden. Ein Beispiel:

SELECT * FROM contact WHERE company = :company

PQ_contact-query

Bei der Makro-Verwendung kann nun in das Parameterfeld company=Scandio eingegeben werden. PocketQuery erlaubt Wildcard für Parameter wie zum Beispiel @page. Hier würde der aktuelle Seitenname an das Query übergeben werden.

Nach der Erstellung der Abfrage kann diese sofort verwendet werden. Als Ausgabe wird eine sortierbare Tabelle verwendet.

PQ_contact_table

Ist es gewünscht, die Ausgabe anzupassen so kann die Standardausgabe durch ein eigenes Template ersetzt werden. Die Template-Sprache ist wie bei Confluence üblich Velocity. Hier ein Beispiel, das zu oben genanntem SQL Statement passt:

PQ_contact_template

Um die Ergebnisse einer Abfrage als Diagramm darzustellen hat die Scandio die Google Charts API integriert und zur Vereinfachung der Nutzung eine JavaScript API implementiert. Die Abfrage

SELECT year, sum(revenue) totalRevenue
FROM billing GROUP BY year ORDER BY year

könnte als folgendes Diagramm dargestellt werden.

PQ_barchart

Scandio PocketQuery für Atlassian Confluence wird derzeit kostenfrei zur Verfügung gestellt und kontinuierlich weiterentwickelt.