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 heißt, 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):

 Spaltenname  Datentyp  Inhalt
 ID  Nchar(10)  1
 Barcode  Numeric(18,0)  123456
 Belegnummer  Varchar(50)  45612
 Name  Varchar(50)  Maier AG
 PLZ  Varchar(50)   81785
 Belegdatum  Varchar(50)  15.09.2014










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

 DocuWare Feld   Datentyp
 Belegnummer  Nummerisch
 PLZ  Nummerisch
 Belegdatum  Datum

In der AUTOINDEX-Workflow Konfiguration ist daher eine Zuordnung der externen Felder zu den DW-Feldern nicht möglich.
Deswegen wird eine MSSQL Datenbank-View erstellt, die die Inhalte passend zu den DocuWare-Feldern darstellt und damit eine Zuordnung möglich macht.
Weitere Informationen zu den unten aufgeführten SQL-Befehlen finden Sie hier: CAST and CONVERT (Transact-SQL) - SQL Server | Microsoft Learn

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       ,
        documentnumber,
        name          ,
        postalcode    ,
        documentdate
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 (documentnumber AS int) AS documentnumber,
        name                                          ,
        postalcode                                    ,
        documentdate
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 (documentnumber AS int) AS documentnumber,
        name                                          ,
        CAST (postalcode AS int)                AS postalcode        ,
        convert ([datetime], documentdate, 104) AS documentdate
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


Details zu den MySQL-Funktionen finden Sie hier: MySQL :: MySQL 8.4 Reference Manual :: 14.10 Cast Functions and Operators

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

Anschließend 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:



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