Domanda:
Con Active Import era possibile definire l'assegnazione dei campi anche se il tipo di dati non era lo stesso per l'origine esterna (database).
Ciò significa che un campo del database di tipo Testo può essere assegnato anche a un campo Data in DocuWare, purché il contenuto del campo sia adatto. I tipi di database sono stati creati automaticamente da Active Import.
Come si può ottenere questo risultato se si utilizza Autoindex?
Risposta:
Poiché il database di origine può essere riempito da altre applicazioni e non si desidera modificare i tipi di campo, è possibile utilizzare una vista di database per utilizzare i dati con gli stessi tipi di dati dei campi di destinazione in DocuWare.
Esempio:
Database esterno con informazioni sugli indici nella tabella "extdata.dbo.Indexdata" (in MSSQL):
| Nome della colonna | Tipo di dati | Contenuto |
|---|---|---|
| ID | Nchar(10) | 1 |
| Codice a barre | Numerico(18,0) | 123456 |
| Numero documento | Varchar(50) | 45612 |
| Nome | Varchar(50) | Maier AG |
| Codice postale | Varchar(50) | 81785 |
| Data del documento | Varchar(50) | 15.09.2014 |
In DocuWare esistono anche i campi denominati documentnumber, postalcode e documentdate, ma questi campi sono stati creati per essere utilizzati meglio con altri tipi di dati:
| Campo di DocuWare | Tipo di dati |
|---|---|
| Numero documento | Numerico |
| Codice postale | Numerico |
| Data documento | Data |
Pertanto, non è possibile assegnare i campi esterni ai campi DocuWare nella configurazione del flusso di lavoro Autoindex. Per questo motivo, viene creata una vista del database MSSQL che converte il contenuto dei campi di DocuWare e rende possibile l'assegnazione.
Ulteriori dettagli sui comandi di seguito elencati sono disponibili qui: CAST e CONVERT (Transact-SQL) - SQL Server | Microsoft Learn
Innanzitutto, una spiegazione di base:
La vista deve contenere tutti i campi del DB esterno, quindi l'istruzione di base si presenta come segue:
SELECT
ID ,
barcode ,
documentnumber,
nome,
codice postale,
data del documento
FROM
extdata.dbo.Indexdata
Per convertire un campo di testo in un campo numerico, si usa il comando CAST:
CAST (<nome del campo> COME <tipo di dati desiderato>) COME <nome della colonna nella vista>
Per il campo "documentnumber", l'istruzione SELECT deve essere adattata come segue:
SELECT
ID ,
codice a barre ,
CAST (documentnumber AS int) AS documentnumber,
nome ,
codice postale ,
documentdate
FROM
extdata.dbo.Indexdata
Per i campi data, si deve usare CONVERT invece di CAST:
CONVERT ([datetime], <nome campo>, 104) AS <nome colonna nella vista>
L'istruzione completa per creare la vista:
CREATE VIEW AIX_VIEW
AS
SELECT
ID ,
Codice a barre ,
CAST (documentnumber AS int) AS documentnumber,
nome ,
CAST (postalcode AS int) AS postalcode ,
convert ([datetime], documentdate, 104) AS documentdate
FROM
extdata.dbo.Indexdata
Dopo che questa istruzione è stata eseguita con successo, il DB "extdata" contiene ora una vista chiamata "AIX_VIEW", che contiene automaticamente il contenuto della tabella di origine "Indexdata" se interrogata, ma che fornisce i tipi di dati corrispondenti al campo in DocuWare.
Ora è possibile impostare una connessione a questo database "extdata" in DocuWare Administration per poter utilizzare questa vista quando si configura un flusso di lavoro Autoindex:
Tutti i campi esterni possono ora essere assegnati ai campi corrispondenti di DocuWare.
Si prega di notare: Questo articolo è una traduzione dall'inglese. Le informazioni contenute in questo articolo si basano sulla versione originale in inglese del/i prodotto/i. Potrebbero esserci piccoli errori, ad esempio nella grammatica utilizzata nella versione tradotta dei nostri articoli. Sebbene non possiamo garantire la completa accuratezza della traduzione, nella maggior parte dei casi la troverete sufficientemente informativa. In caso di dubbi, si prega di fare riferimento alla versione inglese di questo articolo.
