Tipps und Tricks

Datatables filtern

Es sollen Dokumente aus Werten einer Datenbank-Tabelle nachverschlagwortet werden. Die Dokumente werden durchlaufen und zu jedem Dokument wird ein Select auf die Datenbank-Tabelle abgesetzt, um die Werte für die Verschlagwortung auszulesen.

Bei mehreren tausend Dokumenten muss jedes Mal ein neuer Select auf die Datenbank-Tabelle, in der vielleicht nur einige hundert Datensätze enthalten sind, abgesetzt werden, um die relevanten Werte zu ermitteln. Das belastet den SQL-Server und kostet Performance.

Lösung mit dem ILS:

Der ILS bietet die Möglichkeit, die benötigten Daten aus der Datenbank in eine interne Tabelle zu laden, um bei der Verschlagwortung hierauf zugreifen zu können. Die interne Tabelle wirkt als eine Art Zwischenspeicher der Daten.

Ansatz der Konfiguration: Es wird per SimpleDTImportSQL-Aufgabe einmalig im Job die Datenbank-Tabelle für die Verschlagwortung in eine Datatable eingelesen und in jedem Durchlauf der Dokumente ein neuer Filter auf die Datatable gesetzt.

Dazu wird in der Jobdefinition eine Konstante erzeugt, die den Feldnamen und einen Platzhalter für das Filterkriterium enthält, z.B. V_Filter - Filialnummer = ‘[[FilialNr]]‘

In der LoopStart Aufgabe für das Durchlaufen der Dokumente muss dann im Bearbeiten eine Funktion FStrErsetzen implementiert werden, die den jeweiligen Wert des Dokuments mit dem der Filtervariablen ersetzt. Die Filtervariable wird dann in der LoopStart Aufgabe für die Datenbank-Tabelle sowohl bei Reset-Counter als auch bei Filter angegeben.

Zurück