Importazione documenti: Esempio di archiviazione automatica delle email

Questa pagina vuol essere un esempio sull’Importazione dei documenti attraverso la scheda di QualiWare Server Daemon, relativa alla configurazione per l’archiviazione delle email con estrazione dei metadati tramite cartella su Exchange o su IMAP.

QWSD - QualiWare Server Daemon, Importazione documenti, Nuova importazione

 

Ipotizziamo di volere configurare QualiWare Server Daemon affinché monitori periodicamente la cartella Assistenze risolte dell’indirizzo di posta elettronica assistenza[at]qualiware.it, eseguendo l’importazione delle mail contenute in essa. Eseguita l’importazione in QualiWare, i messaggi vengono spostati in una sottocartella di Assistenza denominata Storico.

QWSD - QualiWare Server Daemon, Importazione documenti, Parametri d'importazione, Cartella su Exchange, Parametri Office365

 

Parametri di importazione

In questo caso di esempio vengono definiti i parametri d’importazione dalla Cartella su Exchange, dove la cartella Assistenza risolte viene monitorata da QualiWare Server Daemon per importare le nuove email, mentre la cartella Storico è di destinazione delle email una volta che sono state importate in QualiWare.

QWSD - QualiWare Server Daemon, Importazione documenti, Parametri d'importazione, Cartella su Exchange

Il prerequisito per la corretta configurazione è aver configurato l’accesso applicativo al Tenant di Office365 tramite autenticazione oAUTH2.0.

 

Configurare la query

Una volta definiti i parametri d’importazione si configura la query per determinare i valori dai metadati di ogni email importata: oggetto, mittenti, destinatari.

QWSD - QualiWare Server Daemon, Importazione documenti, Parametri d'importazione, Cartella su Exchange, Query

In caso d’importazione dalla Cartella su Exchange sono disponibili i seguenti parametri aggiuntivi (preceduti dal carattere “:”), che contengono informazioni relative al messaggio:

  • :SUBJECT, contiene il soggetto del messaggio;
  • :DATERECEIVED, contiene la data ricezione;
  • :TIMERECEIVED, contiene l’ora ricezione;
  • :DATESENT, contiene la data d’invio;
  • :TIMESENT, contiene l’ora d’invio;
  • :CATEGORY, contiene la categoria;
  • :SENDER, contiene l’indirizzo del mittente;
  • :TORECIPIENTS, contiene gli indirizzi dei destinatari;
  • :CCRECIPIENTS, contiene gli indirizzi dei destinatari in conoscenza;
  • :MESSAGEID, contiene l’ID del messaggio.

Utilizzando i parametri aggiuntivi si crea la query come l’esempio che segue.

select distinct ltrim(str(year(:DATERECEIVED))) as TIPO_CONT,
right('000000'+ltrim(str(coalesce((select max(convert(integer,NUMERO)) from DOCUMENT where TIPO='MAIL' and TIPO_CONT=ltrim(str(year(:DATERECEIVED)))),0)+1)),6) as NUMERO,
case when :SUBJECT='' then '*' else :SUBJECT end as TITOLO,
:SUBJECT as CUSTOM1,
:DATESENT as DATE1,
replace(:TIMESENT,':','') as CUSTOM6,
:DATERECEIVED as DATE2,
replace(:TIMERECEIVED,':','') AS CUSTOM7,
:SENDER as CUSTOM2,
:TORECIPIENTS as CUSTOM3,
:CCRECIPIENTS as CUSTOM4,
:MESSAGEID as CUSTOM27,
(select min(o.CODICE+' - '+c.RAGSOC) from ORGCF o join CLIFOR c on o.CODICE=c.CODICE
where CLIENTE=1 and left(o.CODICE,1) in ('C','R') and o.EMAIL is not null and
 (:SENDER like '%'+o.EMAIL+'%' or :TORECIPIENTS like '%'+o.EMAIL+'%' or :CCRECIPIENTS like '%'+o.EMAIL+'%')) as CUSTOM5,
case when patindex('%#TT%',:SUBJECT)<>0 then substring(:SUBJECT,patindex('%#TT%',:SUBJECT)+1,12) else '' end as CUSTOM8

 

Commenti ad alcune parti della query

Di seguito vengono riportate alcune annotazioni di rilievo che commentano la query:

 

select distinct ltrim(str(year(:DATERECEIVED))) as TIPO_CONT,

Questa istruzione valorizza il campo TIPO_CONT estraendo l’anno dal metadato :DATERECEIVED perché la Categoria documentale di destinazione utilizza la numerazione automatica “ANNO + progressivo”.

 

 

right('000000'+ltrim(str(coalesce((select max(convert(integer,NUMERO)) from DOCUMENT where TIPO='MAIL' and TIPO_CONT=ltrim(str(year(:DATERECEIVED)))),0)+1)),6) as NUMERO,

Questa istruzione valorizza il campo NUMERO col progressivo corretto, andando a prendere l’ultimo valore del campo NUMERO della Categoria documentale MAIL, valore che viene incrementato di uno.
Attraverso l’istruzione RIGHT si esegue la formattazione del risultato, andandolo ad adeguare al formato a sei cifre con l’inserimento degli zeri partendo da destra del risultato.

 

 

case when :SUBJECT='' then '*' else :SUBJECT end as TITOLO,

Nelle archiviazioni all’interno di una categoria documentale il campo TITOLO dev’essere valorizzato. Attraverso questa istruzione se l’oggetto dell’email è vuota, il campo TITOLO viene valorizzato con un asterisco. In caso contrario, il campo viene valorizzato con quanto contenuto nel campo dell’oggetto della mail.

 

 

(select min(o.CODICE+' - '+c.RAGSOC) from ORGCF o join CLIFOR c on o.CODICE=c.CODICE
where CLIENTE=1 and left(o.CODICE,1) in ('C','R') and o.EMAIL is not null and
 (:SENDER like '%'+o.EMAIL+'%' or :TORECIPIENTS like '%'+o.EMAIL+'%' or :CCRECIPIENTS like '%'+o.EMAIL+'%')) as CUSTOM5,

In questa porzione di codice viene verificata la presenza nelle email del mittente, dei destinatari e dei CC, di un indirizzo appartenente ad un cliente/fornitore censito in anagrafica. A tal fine, vengono utilizzate le tabelle ORGCF e CLIFOR.
Se la mail è presente, viene utilizzato questo valore anche per recuperare i relativi codice cliente/fornitore e ragione sociale.

 

 

case when patindex('%#TT%',:SUBJECT)<>0 then substring(:SUBJECT,patindex('%#TT%',:SUBJECT)+1,12) else '' end as CUSTOM8

In questo esempio, si ipotizza che la mail faccia riferimento a un ticket di assistenza, il cui identificativo univoco è indicato nell’oggetto, preceduto dalla stringa ‘#TT’, esempio:

Oggetto: Richiesta di Assistenza #TT202404090012 – Supporto per importazione strumenti ed attrezzature

In questa porzione di codice è possibile rilevare la presenza della stringa ‘#TT’ selezionando solo la componente identificativa del ticket, valorizzando il campo CUSTOM8 col risultato.

 

Conclusioni

Terminata la procedura d’importazione delle email, il sistema le riporta in una categoria documentale dedicata, che è raggiungibile dall’albero documentale dove sono presenti tutti i dati richiamati dalla query.

QWSD - QualiWare Server Daemon, Importazione documenti, Esempio elenco email importate

Una volta importate, ciascuna emali può essere gestita come un qualsiasi altro documento, con i rispettivi metadati che la definiscono all’interno del form.

QWSD - QualiWare Server Daemon, Importazione documenti, Esempio Form documento importato