Tabellen- und Stichwortfelder in URL-Integrationen nutzen

Das Problem

Heute kontaktierte mich mein Kunde Michael mit einer spezifischen Herausforderung, die er bei der Nutzung von DocuWare hatte. Vor einigen Wochen hatte ich ihm eine Lösung für ein Problem vorgeschlagen, und nun war er mit einer neuen Situation konfrontiert. In seinem DocuWare-Archiv verwendet er ein Indexfeld vom Typ „Tabelle“, das ihm erlaubt, pro Dokument mehrere Zeilen zu speichern. Die eigentliche Schwierigkeit bestand darin, dass Michael diese Werte in einer DocuWare-Integrations-URL nutzen wollte. Dies sollte einfach und unkompliziert sein, war es aber nicht. Die Notwendigkeit, auf diese Tabellenfelder zuzugreifen, stellte sich als komplexeres Problem heraus, als zunächst angenommen, denn DocuWare sieht nicht vor, dass man Tabellenfelder in Suchanfragen innerhalb der Integrations-URLs nutzen kann. Um jetzt aber nicht das ERP umprogrammieren zu müssen, wollte er meine Hilfe.

Die Lösung

Das spezifische Problem betraf ein DocuWare-Cloud-System, aber die gefundene Lösung ist auch für On-Premise-Systeme anwendbar. Da die Daten in einem Microsoft SQL Server gehalten werden (bei Azure für die Cloud-Version), war es möglich, lesenden Zugriff auf die Indexdatenbank zu erhalten. Die Lösung bestand darin, die Werte aus der Tabelle in ein „normales“ Textfeld im Archiv zu übertragen. Durch den lesenden Zugriff auf die Indexdatenbank konnten wir die Daten lesen und transformieren. Anschließend konnten diese Daten mit DocuWare AutoIndex in das eigens geschaffene Feld SUCHTEXT geschrieben werden.

Die Magische Formel

Die eigentliche Magie in der Lösung bestand darin, einen AutoIndex Workflow in DocuWare zu erstellen, bei dem der Matchcode die DocuWare DocId ist. Als Datenquelle wurde die Indexdatenbank ausgewählt, und die Daten wurden daraus per SQL Query abgefragt. Der Schlüssel zu dieser innovativen Lösung war der SQL-Befehl STRING_AGG. Dieser Befehl gibt mehrere Werte einer Gruppe in einem String zurück, anstatt das Feld SUCHTEXT für jeden Eintrag zu überschreiben. Genau das wurde mit STRING_AGG erreicht. Beispiel:

SELECT 
  STRING_AGG(ISNULL(NULLIF(DWKEYWORD, ''), '-'), ',')
    WITHIN GROUP(ORDER BY ISNULL(NULLIF(DWKEYWORD, ''), '-')) NAME,
  DWDOCID
FROM STICHWORTTABELLE
GROUP BY DWDOCID

Schlussfolgerungen

Dieses Beispiel zeigt, wie kreatives Denken und technisches Know-how zusammenwirken können, um eine Lösung für ein komplexes Problem zu finden, ohne aufwendige Anpassungen oder zusätzliche Programmierungen vorzunehmen. Wenn Sie auch vor einer Herausforderung in Ihrem Dokumentenmanagement-System stehen oder an innovativen Lösungen für Ihre IT-Probleme interessiert sind, zögern Sie nicht, mich zu kontaktieren. Gemeinsam können wir die optimale Lösung für Ihr Unternehmen finden.