In Sme.UP ERP è possibile collegarsi a caselle di posta IMAP per rilevare l’arrivo di mail e, a fronte del contenuto dello specifico messaggio arrivato, permettere al sistema gestionale di agire di conseguenza.

I protagonisti

Ascoltatore

Ci riferiremo all’entità che ascolta la mail con il nome di Ascoltatore. 

Decisore

Ci riferiremo a chi deciderà il da farsi a fronte dell’arrivo di un messaggio con il nome di Decisore.

Il funzionamento

A fronte delle credenziali di collegamento di un account, l’Ascoltatore si collega alla casella di posta e, all’arrivo di qualunque messaggio in tale casella di posta, scarica il messaggio in locale, eventualmente un percorso di rete, lo scompatta nelle sua componenti (mittente, oggetto, corpo, allegati, metadati) e comunica l’arrivo del messaggio al Decisore.

Nel codice del Decisore è presente l’algoritmo specifico che decide cosa fare della mail arrivata: spostarla, leggerne il contenuto, copiarne gli allegati, etc. E’ quindi il Decisore che risponde alla domanda “perché il sistema sta monitorando la casella di posta?”.

Tutto questo avviene avvalendosi delle funzionalità messe a disposizione, in Sme.UP ERP, dal costruttore A37.

Si rimanda agli approfondimenti sullo specifico argomento ma, per dare una panoramica, A37 è il costruttore che permette al gestionale di ricevere eventi dal mondo esterno, sia dal mondo fisico (IIOT etc.) sia dal mondo virtuale (file-system, posta, etc.).

La configurazione

L’implementazione dell’Ascoltatore che si collega alla casella di posta e resta in ascolto, è contenuta come plugin in Sme.UP Provider e viene attivata configurando uno script di A37. I parametri necessari all’attivazione sono i dati per il collegamento IMAP, i percorsi per il salvataggio e la scomposizione del messaggio di posta e i riferimenti al nome del Decisore.

Di seguito un esempio di configurazione implementabile tramite uno script LOA37

::A37.SUPPRV DtaQ="CODICEPROVIDER"

-- unità fisica
::SEZ Cod="EM1" Txt="Ascolta Casella"
::A37.CLSSEZ Class="Smeup.smeui.iotspi.connectors.imap.ImapFolderConnector" TOg="" Ogg="" Pgm="X8"
-- variabili configurazione unità fisica
::A37.CNFSEZ Name="Server" Value="indirizzo-server[:porta]"
::A37.CNFSEZ Name="Protocol" Value="[imaps]"
::A37.CNFSEZ Name="Username" Value="user"
::A37.CNFSEZ Name="Password" Value="password"
::A37.CNFSEZ Name="Poll" Value="5000"
::A37.CNFSEZ Name="Folder" Value="Inbox"
::A37.CNFSEZ Name="SaveDir" Value="\\server\condivisione\cartella"
::A37.CNFSEZ Name="ExplodeMsg" Value="true"
::SUB Cod="M00" Txt="Mail Listener"
-- varibili di configurazione dell'unità logica
::A37.SUBVAR Name="Sender" Txt="Mittente" TpDato="STRING" DftVal="*BLANKS" TpVar="IN"
::A37.SUBVAR Name="EmlFile" Txt="File messaggio" TpDato="STRING" DftVal="*BLANKS" TpVar="IN"
::A37.SUBVAR Name="MessageID" Txt="ID Messaggio su cartella IMAP" TpDato="STRING" DftVal="*BLANKS" TpVar="IN"
-- variabili di messaggio
::A37.MSGVAR Name="EmlFile" IO="I" Ogg="J7EML"
::A37.MSGVAR Name="From" Ogg="INMAIL"
::A37.MSGVAR Name="To" Ogg=""
::A37.MSGVAR Name="Subject" IO="I" Ogg=""

Nel dettaglio

::A37.SUPPRV DtaQ="CODICEPROVIDER"

indica qual’è il provider su cui verrà attivato l’Ascoltatore

::A37.CLSSEZ Class="Smeup.smeui.iotspi.connectors.imap.ImapFolderConnector" TOg="" Ogg="" Pgm="X8"

nella specifica CLSSEZ sono presenti il parametro Class che riporta la classe java attiva l’ascolot ed il parametro Pgm che indica chi sarà il Decisore. Il valore X8 di esempio indica che il programma che si occuperà di trattare i dati originati dall’Ascoltatore sarà il LOA37_X8.

::A37.CNFSEZ Name="Server" Value="indirizzo-server[:porta]" 
::A37.CNFSEZ Name="Protocol" Value="[imaps]" 
::A37.CNFSEZ Name="Username" Value="user" 
::A37.CNFSEZ Name="Password" Value="password" 
::A37.CNFSEZ Name="Poll" Value="5000" 
::A37.CNFSEZ Name="Folder" Value="Inbox" 
::A37.CNFSEZ Name="SaveDir" Value="\\server\condivisione\cartella" 
::A37.CNFSEZ Name="ExplodeMsg" Value="true"

Indicano, nell’ordine,

  • indirizzo e opzionalmente la porta del server di Posta
  • opzionalmente il protocollo imap/imaps. Se non specificato s’intende imap
  • utente di autenticazione dell’account
  • password di autenticazione dell’account
  • periodo di polling della cartella (in millisecondi)
  • nome della cartella
  • percorso di salvataggio ed eventuale esplosione del messaggio
  • parametro che abilità l’esplosione del messaggio nei suoi elementi costituenti

Il resto dello script va lasciato com’è nell’esempio perché indica le strutture dati di comunicazione fra il plugin ed il costruttore A37.

Una volta sistemato lo script ed avviato il Provider definito per l’attivazione della funzione la funzionalità è attiva.

Esempi di utilizzo

Per chiarire meglio come funziona riportiamo un paio di esempi di implementazione., entrambi basati sulla possibilità di tenere traccia nel sistema delle conversazioni mail.

Helpdesk sviluppo, la conversazione.

L’inserimento di un TASK al Helpdesk del Laboratorio tramite l’Area Riservata del nostro sito, genera una richiesta di assistenza nel sistema informativo di Sme.UP.

Questa richiesta origina un messaggio mail, contenente nell’Oggetto il riferimento al TASK, che mette in contatto il richiedente, il laboratorio (la cui casella di posta è soggetta al monitoraggio da parte dell’Ascoltatore) e l’incaricato della risoluzione. Mantenendo la comunicazione all’interno di questa conversazione a 3, il sistema è in grado di tenere aggiornata l’evoluzione del TASK automaticamente, estraendo dai singoli messaggi scambiati i testi e gli allegati che andranno ad arricchire rispettivamente le note e gli allegati del TASK stesso.

CRM e gestione Opportunità

All’interno dell’applicazione CRM di Sme.UP ERP è possibile tenere traccia dell’evoluzione di una Opportunità, processo che coinvolge più persone, usando lo strumento della conversazione mail. Il meccanismo è simile a quello dell’esempio precedente. Mantenere nell’Oggetto della mail il riferimento all’oggetto Opportunità e in Cc l’indirizzo monitorato dall’Ascoltatore. A scatenare gli accadimenti nel sistema informativo è un Decisore, in questo caso un programma standard di nome LOA37_35 che, a fronte della ricezione dell’informazione “è arrivata una mail riferita alla Opportunità XXXXXXX, che ti ho salvato in questo percorso ….. , da parte di tizio.caio@acme.com”, reagisce creando un evento applicativo con causale evento 011, che contiene i seguenti campi principali:

  • N§NOTA                  Oggetto email
  • N§ALF3                   Codice opportunità (ricavato dell’oggetto)
  • N§ALF2                   Referente (derivato dall’opportunità)
  • N§ALF1                   Nominativo collegato (derivato dal referente)
  • N§RESP                   Responsabile (derivato dall’oppotunità)
  • C$NOTA                  Viene creata una o più righe di note nell’NTSTRU con il corpo del messaggio

Per eventuali dettagli sulla specifica soluzione si prega di fare riferimento all’ambito applicativo del CRM

Conclusione

Con questo articolo si è voluto porre l’attenzione sul fatto che, con l’ascolto delle mail, Sme.UP ERP può utilizzare questo strumento come canale di input, rendendo quindi semplice la creazione di sistemi di acquisizione dati o, addirittura, di sistemi di interazione sulla logica dei BOT.

Buon ascolto di mail a tutti