Instant Developer

Tips&Tricks Instant Developer Foundation: chi è stato e quando?

| 10 Febbraio 2016 | Giuseppe Lanzi
grafico 2 Instant Developer

Nello sviluppo di applicazioni multi utente, specialmente in ambito gestionale, è spesso necessario prevedere un modo per rispondere alla domanda “chi è stato a cambiare questo dato, e quando è stato fatto?”. È un tema che tratto spesso anche nelle consulenze presso chi comincia con la document orientation o con chi sta avviando un nuovo progetto software. Visto l’interesse che molti hanno dimostrato verso questo argomento ho pensato di scriverci un post.

A venire in nostro aiuto anche questa volta è la Document Orientation, mediante due funzionalità in particolare: l’uso del Document Helper per globalizzare gli eventi e la capacità di salvare un qualunque documento in xml. Ma andiamo con ordine.

La prima cosa da ottenere è che qualsiasi documento che viene salvato nell’applicazione registri le proprie variazioni da qualche parte. In questo progetto di esempio ho creato una cartella logs nel database, dove scrivere il DNA del documento, la sua conversione in XML ottenuta tramite la funzione saveToXML, l’utente che ha effettuato la modifica e il momento in cui è avvenuta l’operazione. Ottenere questo risultato è semplice, basta implementare una propria estensione di IDDocumentHelper e implementare l’evento onGlobalAfterSave come in questa immagine.

globalaftersave Instant Developer

A questo punto qualsiasi modifica su qualsiasi documento effettuata dall’applicazione viene registrata nella tabella. Semplicemente tutte.

La seconda cosa è far sì che l’utente possa vedere la storia delle modifiche di un certo documento, sempre a prescindere dal tipo del documento stesso. Nella schermata di gestione dei prodotti trovate un albero che mostra l’albero delle categorie e prodotti dell’applicazione, utilizzando l’albero si viene automaticamente portati alla videata per l’editing dei dati e qui è possibile salvare. Per far vedere la storia delle modifiche all’utente ho implementato un comando di menu contestuale che apre una seconda videata.

A questo punto si pone la terza cosa da risolvere: come poter mostrare le modifiche apportate a qualsiasi documento senza scrivere codice specifico? Semplice: utilizzando l’oggetto XMLDocument. Navigando l’XML del documento salvato in precedenza nei log è infatti possibile conoscere lo stato completo del documento al momento del salvataggio, questo comprende sia il nuovo valore di tutte le proprietà del documento sia il valore che esse eventualmente avevano quando è stato letto dal database. Con una tabella IMDB e le righe di codice qui sotto il gioco è fatto.

loadXMLChanges Instant Developer

Che ne dite? Ci sono domande? 🙂

Giuseppe Lanzi
Technical Support Manager
Mi occupo di assistenza e consulenza tecnica, dei corsi di formazione e dei sistemi rivolti ai clienti. Amo la tecnologia e ogni tipo di nuovo gadget, mi interesso di fotografia e prendo al volo ogni occasione di scoprire un nuovo gioco.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *


Potrebbe interessarti

Instant Developer Cloud 24.0: Sviluppa con stile, proteggi il tuo lavoro

Instant Developer Cloud 24.0 si è vestito con una nuova grafica più moderna, così da oggi ti offre un ambiente di lavoro ancora più piacevole...

Leggi Tutto

Instant Developer e PayPal: l’integrazione in 3 passaggi

Nella realizzazione di applicazioni web B2C per la vendita di prodotti e servizi verso gli utenti finali è sempre necessario integrare uno o più sistemi...

Leggi Tutto

Comunicazione Backend–Frontend efficace: Una Guida con Instant Developer

In un mondo dove le applicazioni diventano sempre più complesse, rendere efficace la comunicazione backend - frontend è più che mai fondamentale. Instant Developer non...

Leggi Tutto

Rimani Aggiornato

Iscriviti alla nostra newsletter per ricevere aggiornamenti su novità, eventi, release, webinar e tante altre notizie sui prodotti Instant Developer.

    Presa visione dell'informativa (disponibile qui) resa da Pro Gamma SpA, acconsento al trattamento dei miei dati personali per l'invio di newsletter.*