Ansichten:

Frage:
Mit Active Import war es möglich bei der Indexerweiterung anhand externer Datenquellen (Datenbanken) die Feldzuweisungen auch vorzunehmen, wenn der Datentyp nicht identisch war. Das heisst, ein Datenbankfeld vom Typ Text konnte auch einem Datumsfeld in DocuWare zugewiesen werden, solange der Feldinhalt passt. Das „casten“ der Datentypen hat Active Import dabei selbst übernommen.

Mit AUTOINDEX ist das aktuell nicht möglich, weshalb im Vorfeld sichergestellt werden muss, dass die externen Daten mit demselben Datentyp vorliegen wie in DocuWare. Nur dann kann eine Feldzuweisung vorgenommen werden.

Lösung:
Da die Quell-Datenbank möglicherweise von anderen Applikationen gefüllt wird und man daher die Feldtypen nicht ändern will, bietet sich die Verwendung einer Datenbank-View an, um damit die Daten mit denselben Datentypen zu verwenden wie die Zielfelder in DocuWare.

Beispiel:
Externe Datenbank mit Indexinformationen in der Tabelle „extdata.dbo.Indexdata“ (in MSSQL):

 

In DocuWare gibt es ebenfalls die Felder Belegnummer, PLZ und Belegdatum, dort sind die Felder aber zur besseren Verwendung mit anderen Datentypen angelegt:



In der AUTOINDEX-Workflow Konfiguration ist daher eine Zuordnung der externen Felder zu den DW-Feldern nicht möglich. Aus diesem Grund wird eine MSSQL-Datenbank-View erstellt, die die Inhalte passend zu den DocuWare-Feldern darstellt und damit eine Zuordnung möglich macht.

Zunächst eine grundsätzliche Erläuterung:

Die View soll alle Felder der externen DB beinhalten, daher sieht das Grundgerüst wie folgt aus:
SELECT ID, Barcode, Belegnummer, Name, PLZ, Belegdatum FROM extdata.dbo.Indexdata

Um nun aus einem Textfeld ein nummerisches Feld zu machen, kommt der CAST-Befehl zum Einsatz:

CAST(<Feldname> AS <gewünschter Datentyp>) AS <Spaltename in der View>

Für das Feld „Belegnummer“ ist das SELECT-Statement beispielsweise folgendermaßen anzupassen:

SELECT ID, Barcode, CAST(Belegnummer AS int) AS Belegnummer, Name, PLZ, Belegdatum FROM extdata.dbo.Indexdata

Bei Datumsfeldern muss CONVERT anstelle von CAST verwendet werden:

CONVERT([datetime], <Feldname>, 104) AS <Spaltename in der View>

Das vollständige Statement zur Erstellung der MSSQL View:

CREATE VIEW AIX_VIEW
AS SELECT ID, Barcode, CAST(Belegnummer AS int) AS Belegnummer, Name, CAST(PLZ AS int) AS PLZ, convert([datetime], Belegdatum, 104) AS Belegdatum
FROM extdata.dbo.Indexdata

Als Vergleich ein Beispiel für eine MySQL View:

CREATE VIEW AIX_VIEW
AS SELECT  ID, Barcode, CAST(Belegnummer AS SIGNED) AS Belegnummer, Name, CAST(PLZ AS SIGNED) AS PLZ , CAST(Belegdatum as DATETIME) AS Belegdatum
FROM extdata.dbo.Indexdata

Nachdem dieses Statement erfolgreich ausgeführt wurde, existiert in der DB “extdata” nun eine View namens “AIX_VIEW”, die bei einer Abfrage automatisch immer die Inhalte der Quelltabelle „Indexdata“ beinhaltet, die Datentypen aber passend zu DW liefert.

Anschliessend kann in der DW-Administration eine Datenbankverbindung auf diese DB „extdata“ eingerichtet werden um diese View bei der Konfiguration eines AUTOINDEX-Workflows verwenden zu können:



Nun können alle externen Felder auch den dazugehörigen DW-Feldern zugewiesen werden.