What's new di SitePainter Infinity
COPYRIGHT 1989-2009 by ZUCCHETTI S.p.A. Tutti i diritti riservati. Questa pubblicazione contiene informazioni protette da copyright. Nessuna parte di questa pubblicazione può essere riprodotta, trascritta o copiata senza il permesso dell'autore. TRADEMARKS Tutti i marchi di fabbrica sono di proprietà dei rispettivi detentori e vengono riconosciuti in questa pubblicazione. Ultima revisione Dicembre 2009 ZUCCHETTI S.p.A. E-mail: infotools@zucchetti.it Indirizzi sito WEB: http:\\www.zucchetti.it http:\\www.zucchettitools.com
Sommario What's New...1 1.1 Cache dei risultati di query - Memcached... 1 1.2 Configurazioni VZM custom per utenti e gruppi... 2 1.3 Foundling child ripetuti... 3 1.4 Campi e/o variabili obbligatori sotto condizione... 4 1.5 Query remote... 5 1.6 Skip tab sequence e Confirm edit... 6 1.7 Iniziata la gestione della storicizzazione sui dati... 7 1.8 SPI Portalstudio: Grafici Ring e Time (line)... 8 1.9 SPI Portalstudio: Label, Image e MenuView server-side... 9 1.10 SPI Portalstudio: LinkZoom... 10 1.11 SPI Portalstudio: Titoli della Grid parametrici valorda variabile... 12 SOMMARIO I
Capitolo 1 What's New Ecco l'elenco delle nuove implementazioni della build 56. 1.1 Cache dei risultati di query - Memcached Una delle cause più frequenti di degrado delle prestazioni è l'aumento di carico del database. L'attività di profiling del database può individuare un set specifico di query che determinano l'ingente carico per la frequenza con cui vengono eseguite. In tale circostanza è indicato attivare il caching dei risultati delle query: alla prima interrogazione il risultato viene memorizzato e riutilizzato per le interrogazioni successive. Il caching dei risultati delle query viene attivato dal disegnatore di vqr, nella zona Query, pannello Access, gruppo Cache. Le modalità di caching sono due: All l'intera frase SQL viene utilizzata come chiave di ricerca tra i risultati memorizzati; se la frase non è mai stata eseguita allora viene effettuata l'interrogazione al database e memorizzato il risultato. Le interrogazioni successive della stessa query saranno evase molto più velocemente in quanto il risultato verrà restituito dalla memoria di cache senza l'esecuzione della frase nel database. WHAT'S NEW 1
Without parms i risultati che verranno tenuti in memoria sono quelli che partono da una frase SQL che non contenga filtri e ordinamenti impostati dall'utente. Sono esclusi quegli ordinamenti impostati direttamente nella query tramite il disegnatore. Inoltre sono escluse tutte le query che prendono i risultati dal cinquantunesimo in poi (utilizzo della clausola TOP 50). Questa modalità è pensata per salvare i risultati principali, quelli che tutti gli utenti vedono appena entrano in una applicazione, ma appena richiedono dei risultati filtrati o ordinati a piacere la query viene effettuata senza impostare il caching. Il tempo di permanenza dei risultati nella cache è stabilito dall'impostazione seconds. Il valore 0 equivale alla durata di default (attualmente 10 secondi). La modalità None disabilita il caching. Memcached Memcached è un sistema di caching distribuito utilizzato dai più trafficati siti del web. Memcached diviene importante per applicazioni installate in load balancing; infatti quando l'applicazione è distribuita su più application server il modo di caching descritto sopra non è sufficientemente efficiente in quanto ogni application server ha una propria istanza di cache. Dal punto di vista probabilistico quindi ogni istanza tende a memorizzare gli stessi dati presenti nelle cache degli altri server, introducendo inefficienza. Delegando la gestione della cache al sistema Memcached si ottiene un'unica cache condivisa da ogni application server dedicato all'applicazione. 1.2 Configurazioni VZM custom per utenti e gruppi Figura 1 - Salvataggio di un vzm da disegnatore delle query Le configurazioni di zoom potranno essere salvate specificando per quale utente, gruppo e istanza sono visibili. Nella maschera delle opzioni dello zoom, o durante la creazione del file vzm dal disegnatore delle query è possibile specificare a chi è rivolta quella configurazione. custom il file di configurazione sarà salvato nella cartella 'custom' relativa all'istanza che si sta utilizzando. group si deve digitare il numero del gruppo a cui si vuole associare questa configurazione di zoom. 2 WHAT'S NEW
user si deve digitare il numero dell'utente a cui si vuole associare questa configurazione di zoom. Nota bene Non è possibile selezionare sia un gruppo che un utente nella stessa configurazione di zoom. La priorità nella scelta di una configurazione di zoom per un utente è: zoom associato all'utente nella cartella custom zoom associato all'utente nella cartella dell'applicazione zoom associato a uno dei gruppi dell'utente nella cartella custom zoom associato a uno dei gruppi dell'utente nella cartella dell'applicazione zoom generico (senza specifica su utente/gruppo) nella cartella custom zoom generico (senza specifica su utente/gruppo) nella cartella dell'applicazione 1.3 Foundling child ripetuti Nella Build 55 sono stati introdotti i Foundling child, nella Build 56 si è pensato di far diventare un figlio foundling come un figlio normale (ad esempio con controlli dei check), si può determinare l'ordine di presentazione dei figli. Si è introdotto inoltro il concetto di foundling child ripetuti, quindi è possibile collegare un qualsiasi figlio anche a una entità di tipo detail o masterdetail, con dipendenza dalle chiavi ripetute. WHAT'S NEW 3
Figura 2 - Impostazioni di un figlio foundling ripetuto I figli foundling possono essere posizionati all'interno di un tab aggiunto alla gestione padre oppure in un box collassabile posto in fondo alla prima pagina delle gestione padre. Nel caso in cui la prima pagina non permetta di inserire box collassabili (ci devono essere altre zone collassabili) i figli verranno collocati tutti nei tab successivi. E' possibile specificare se il box contenente il figlio verrà caricato espanso o collassato. Il titolo del tab e del box che contiene il figlio può essere specificato nel campo "Container title". E' possibile, inoltre, stabilire quando un figlio è editabile/visibile, il calcolo per queste opzioni viene effettuato a livello del padre includente, quindi nella maschera di inserimento saranno visibili le variabili del padre. 1.4 Campi e/o variabili obbligatori sotto condizione A partire da questa release è stata inserita la possibilità di condizionare l'obbligatorietà su campi e variabili delle varie entità. 4 WHAT'S NEW
Figura 3 - Un esempio di obbligatorio condizionato La logica dell'obbligatorietà non è cambiata: prima viene valutata la condizione e se questa risulta vera il campo diventa obbligatorio. 1.5 Query remote Per un agevole scambio dati tra applicazioni diverse è stata implementata la modalità remota nelle query: un'applicazione, una volta configurata, può esporre i risultati di una propria query; conoscendo i dati per accedervi, un'altra applicazione può utilizzare i risultati esposti creando WHAT'S NEW 5
nel proprio contesto una propria query che "punta" alla query remota. Le modalità di collegamento sono Native o SOAP. Native l'applicazione "fornitore" produce i risultati in un formato interno; per abilitare tale funzionalità bisogna aggiungere alla gestione sicurezze la la procedura "SPVQRProducer" (come da immagine sotto riportata). I dati di utente e password, salvati nel file vqr dell'applicazione "consumatore", vengono scambiati in modo offuscato. SOAP può collegarsi ad un'applicazione SitePainter dotata del modulo SPSOAP. In questa modalità i parametri elencati nel WSDL (tra cui nome utente e password) devono essere specificati come parametri stessi della query. 1.6 Skip tab sequence e Confirm edit Figura 4 - un esempio delle nuove opzioni Nella zona 'Special Definitions' degli elementi Field/Variable sono state introdotte due nuove opzioni. Talvolta risulta necessario fare in modo che un elemento sia selezionabile solo con il puntatore del mouse. L'opzione "Skip tab sequence" consente di escludere l'elemento dalla sequenza di tab. Selezionando questa opzione il cursore non entrerà più in questo elemento quando l'utente preme il tasto TAB di tabulazione. 6 WHAT'S NEW
Un elemento può essere collegato ad una serie di calcoli molto complessi e che cambiano parecchi valori dell'intera gestione a seguito della modifica del proprio valore. Per esempio, modificare il tipo del documento o il listino può portare ad una profonda modifica dei valori già digitati. L'opzione "Confirm edit" permette di chiedere conferma dopo che l'utente ha modificato il valore dell'elemento per segnalare che verranno modificati (e quindi forse persi) parecchi valori già inseriti. All'uscita dal control verrà presentato il messaggio in una finestra di tipo confirm (con le opzioni ok/cancella). Rispondendo affermativamente alla domanda il valore del campo verrà modificato, altrimenti verrà mantenuto il valore originale. 1.7 Iniziata la gestione della storicizzazione sui dati Figura 5 - Un esempio di gestione della storicizzazione Una delle problematiche più frequenti che sta capitando in ambito del mondo paghe, ma non sono li, è quella della storicizzazione del dato e della sua relativa attualizzazione. A partire da questa versione sono state introdotte delle opzioni che permettono di gestire questa casistica sui dati trattati delle singole entità. Questa feature, non ancora del tutto completata, ma con la parte di architettura ben definita, permette di mantenere traccia delle modifiche che vengono via via applicate alle tuple delle tabelle gestite dalle entità di SITEPAINTER INFINITY e di recuperare i dati storicizzati attualizzandoli rispetto ad una data o ad un intervallo di date. Abilitando la storicizzazione del dato a livello di design all'elenco dei campi saranno aggiunti i campi di sistema per la gestione dello storico. WHAT'S NEW 7
Figura 6 - Salvataggio con storicizzazione In fase di codifica, al momento per il solo skin Infinity, la toolbar di gestione è stata modificata per prevedere il salvataggio con storicizzazione. 1.8 SPI Portalstudio: Grafici Ring e Time (line) Figura 7 - Esempio di grafico Ring In SITEPAINTER PortalStudio sono state aggiunte due nuove tipologie di grafici: i grafici di tipo Ring e i grafici di tipo Time (Line). Questa tipologia di grafico è molto simile al grafico Pie. L'unica differenza differenza è a livello grafico. 8 WHAT'S NEW
Figura 8 - Esempio di grafico Time (Line) Questa tipologia di grafico è molto simile al grafico Line. La differenza più importate è che i valori da indicare sull'asse X sono delle date. Inoltre, per evitare che le etichette presenti sull'asse X siano troppo numerose e impediscano la lettura, è data la possibilità di sfoltire il numero di etichette da presentare. Questo non inciderà nel disegno del grafico. 1.9 SPI Portalstudio: Label, Image e MenuView server-side Come per la componente Grid, nelle componenti Label, Image e MenuView, è stata la proprietà 'Server side'. Selezionando questa proprietà in una di queste componenti in concomitanza con un dataobj (SQLDataObj o XMLDataObj) con modalità di estrazione dati 'Server-only', in esecuzione sarà possibile passare un recordset al client in modo che la componente Label, Image e/o MenuView utilizzino i dati. WHAT'S NEW 9
Figura 9 - Esempio di label Server side La modalità "Server-only" settata sull'sql Data Object unito al flag 'Server side' su una label, un'immagine o un MenuView fa in modo che la query venga eseguita lato server e la label, l'immagine o il MenuView, o meglio tutto l'html necessario, venga prodotto sul server (in modo da poter essere indicizzato) e venga presentato solo dopo averne completato la produzione. 1.10 SPI Portalstudio: LinkZoom In SITEPAINTER PortalStudio è stata aggiunta una nuova componente, utilizzabile nei portlet: LinkZoom. Questa componente permette di simulare l'azione dei link delle entità Sitepainter. 10 WHAT'S NEW
Figura 10 - L'oggetto LinkZoom Figura 11 - Un esempio di utilizzo Inserendo un oggetto di questo tipo nel portlet, comparirà l'immagine di una piccola lente e, cliccandoci sopra si aprirà lo zoom utilizzando la configurazione VZM di default per quell'entità. WHAT'S NEW 11
1.11 SPI Portalstudio: Titoli della Grid parametrici valorda variabile Figura 12 - Un esempio di titolo parametrico Capita molto spesso di voler avere i titoli delle colonne di una griglia basati si valori parametrici. A partire da questa release c'è la possibilità di customizzare i titoli della colonne delle griglie con il valore di una variabile. Come riportato in figura la sintassi da utilizzare nel 'Title of column' è: Esempio di codice %NomeVariabile% 12 WHAT'S NEW