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.


Potrebbe Interessarti

Instant Developer Foundation 22.5 e Fluid: il futuro comincia da qui

La versione 22.5 di Instant Developer Foundation rappresenta un passo tangibile verso il futuro di Instant Developer. Il nuovo motore grafico Fluid è infatti il...

Leggi Tutto

Webinar: Le novità di Instant Developer Cloud 22.5

Nel webinar sulle novità della release 22.5 di Instant Developer Cloud , Giuseppe Lanzi, responsabile dei reparti Customer Care e Systems e Paolo Giannelli, responsabile...

Leggi Tutto

Instant Developer Cloud 22.5: esperienze migliori per te e il tuo software

Instant Developer Cloud 22.5 è una versione progettata per una migliore esperienza di utilizzo da parte degli sviluppatori e di fruizione delle applicazioni per gli...

Leggi Tutto

Rimani Aggiornato

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