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 Perfetto4 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 Perfetto4 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 Perfetto4 e un'applicazione esterna segue i seguenti passi:
- l'utente inserisce o modifica o cancella un documento;
- Perfetto4 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;
- Perfetto4 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;
- Perfetto4 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;
- Perfetto4 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 Perfetto4 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="Perfetto.WorkingReports.Documents.JobWorkingReports"
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="Perfetto.WorkingReports.Documents.JobWorkingReports"
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 Perfetto4.
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.
|
Parametri output
| Nome | Descrizione |
| returnMessages | valore usato per ritornare un messaggio a Perfetto4 |
Valore di ritorno
Valore booleano usato per informare Perfetto se deve effettuare il rollback dell'operazione.
Commenti