Sommario
Nel presente articolo è descritta la tecnologia Business Object Events Notification e come può essere utilizzata.
Che cos'è la funzione B.O.E.N. (Business Object Events Notification)?
La funzione B.O.E.N. è la tecnologia che consente a Perfetto di interagire via Web Service con i metodi web di un'applicazione esterna e di inviare delle notifiche a fronte di operazioni fatte dagli utenti.
La comunicazione tra Perfetto e un'applicazione esterna e la gestione delle notifiche si fondano sulla presenza di uno o più file xml di sottoscrizione all'interno del prodotto. Il file di sottoscrizione può contenere le informazioni relative ai metodi web dell'applicazione esterna e la descrizione delle operazioni di notifica.
Le chiamate all'applicazione esterna e il lancio di notifiche avvengono quando l'utente compie delle azioni sui documenti che hanno associato almeno un file di sottoscrizione. Tali eventi sono l'inserimento, la modifica e la cancellazione di un documento.
Il processo di comunicazione tra Perfetto e un'applicazione esterna segue i seguenti passi:
- l'utente inserisce o modifica o cancella un documento
- Perfetto controlla se esiste un file di sottoscrizione per il documento
- l'applicazione chiama il metodo web scritto nel file di sottoscrizione, passando i dati del documento in formato xml
- Perfetto attende la risposta del servizio web
- l'applicazione mostra i messaggi ritornati dal metodo web
Il processo di notifica è strutturato nel modo seguente:
- l'utente inserisce o modifica o cancella un documento
- Perfetto controlla se esiste un file di sottoscrizione per il documento
- l'applicazione controlla se nel file di sottoscrizione è presente un'azione di notifica, blocco o messaggio di avvertimento
- Perfetto mostra il messaggio nel file di sottoscrizione
File di sottoscrizione
Il file di sottoscrizione è un file xml che contiene le informazioni relative all'interazione tra Perfetto e un'applicazione esterna e alle azioni di notifica dell'applicazione.
I file di sottoscrizione devono essere memorizzati nella cartella contenete i file personalizzati:
<cartella installazione>/<nome prodotto>/Custom/ Companies/
<nome azienda>/ActionSubscriptions. Invece della cartella <nome azienda> è possibile usare la cartella AllCompanies, in questo caso la sottoscrizione è valida per tutte le aziende.
La struttura del file di sottoscrizione è la seguente:
<Subscriptions> <Subscription namespace=""
operation=""
profile=""
action=""
when=""
webServer=""
port=""
webService=""
webNS=""
method=""
message="" />
</Subscriptions>
Elemento | Attributo | Significato | Obbligatorio |
Subscriptions | dichiara le sottoscrizioni | si | |
Subscription | dichiara la singola sottoscrizione | si | |
namespace | namespace del documento | si | |
operation | valore dell'operazione da eseguire:
|
si | |
profile | nome profilo di esportazione utilizzato per il passaggio dati del documento | solo per WM | |
action | valore dell'azione da intercettare:
|
si | |
when | valore che indica quando deve agire il trigger prima o dopo la transazione:
|
solo per WM | |
webServer | host del server del web service | solo per WM | |
port | porta usata per comunicare con il web service | opzionale (default=80) | |
webService | nome del web service da chiamare | solo per WM | |
webNS | namespace del web service da chiamare | solo per WM | |
method | metodo del web service che deve esssere chiamato dal trigger | solo per WM | |
message | il messaggio da visualizzare tenta di eseguire l'azione sottoscritta sul documento specificato per le operazioni DENY e WARNING | solo per notifica |
Di seguito un esempio di file di sottoscrizione:
<Subscriptions> <Subscription namespace="Document.ImpiantiNet.Rapportini.INRapportini.Rapportino"
operation="WM"
profile="Default"
action="1"
when="AFTER"
webServer="http://localhost/"
port="80"
webService="WebServiceSample/WorkingReportManager.asmx"
webNS="http://tempuri.org/"
method="InsertWorkingReport"
/>
<Subscription namespace="Document.ImpiantiNet.Rapportini.INRapportini.Rapportino"
operation="WARNING"
action="3
message="WARNING! This document is managed by the Test Web Application."
/>
</Subscriptions>
Struttura metodo web
Il metodo web dell'applicazione esterna deve avere una precisa interfaccia per poter essere chiamata da Perfetto.
La struttura del metodo deve essere la seguente:
bool <nome metodo>( string callerNS, int action, string when, string [] dataExport,
ref string [] returnMessages )
Parametri input
Nome | Descrizione |
callerNS | namespace del documento chiamante |
action | valore dell'azione:
|
when | valore che indica quando deve essere richiamato il metodo:
|
dataExport | Dati in formato xml dei documenti esportati in base al profilo di esportazione dichiarato nel file di sottoscrizione. L'esportazione del documento avviene prima o dopo la transazione:
|
Parametri output
Nome | Descrizione |
returnMessages | valore usato per ritornare un messaggio a Perfetto |
Valore di ritorno
Valore booleano usato per informare Perfetto se deve effettuare il rollback dell'operazione.
Commenti