La property CompatibilityMode del Book consente di specificare se un'esecuzione debba avvenire utilizzando tutte le funzionalità della versione corrente della piattaforma, oppure in modalità di compatibilità con precedenti versioni.
Fino alla versione IrionEDM2016 Update 10, nel Book, era presente la property booleana IsInCompatibilityMode. A partire da IrionEDM 2016 Update 10 SR 1 essa è sostituita ed estesa dalla property CompatibilityMode. |
La property può assumere uno dei seguenti valori:
✓ Current, ossia la versione corrente del framework con tutte le funzionalità attualmente disponibili
✓ 4.5, ossia la retrocompatibilità con IrionDQ 2014
✓ 5.10, ossia la retrocompatibiilità con IrionDQ 2016 ed IrionEDM 2016 fino alla Update 10.
Selezionando il CompatibilityMode Current (predefinito), tutto funziona come previsto dalla versione di IrionEDM attuale.
Selezionando il CompatibilityMode 5.10, si hanno i seguenti comportamenti:
✓ Nel Custom Ribbon i tool di tipo DropDown, DropDownList e DropDownButton che possiedono un Command a cui viene passato il parametro attraverso la sintassi mycommand(@Value) continueranno a “quotare” a runtime il parametro tra apici singoli. Ciò significa che il valore del parametro sarà sempre considerato come stringa e non potrà utilizzare le funzionalità avanzate di valutazione di espressioni SQL e/o l’utilizzo di parametri e funzioni speciali (ad esempio: @ActiveViewer, ViewerType(), ActiveColumn()).
✓ Nel Custom Ribbon i tool di tipo Calendar che possiedono un command a cui viene passato il parametro attraverso la sintassi mycommand(@Value) continueranno a funzionare passando il valore della data come stringa. Quindi il command dovrà avere il parametro di tipo stringa. Nella CompatibilityMode Current, il parametro dovrà essere Datetime o DateTime2.
✓ I command RunEntity hanno due property aggiuntive per specificare la modalità di esecuzione (Sincrona/Asincrona) e il lifetime della entity eseguita (autonoma, legata alla entity chiamante, legata al command RunEntity stesso). In precedenza, invece, le esecuzioni erano sincrone, con lifetime il command, se eseguite da workflow, o senza finestra di UI; negli altri casi erano asincrone con lifetime autonoma. Di qui la necessità di impostare il compatibility mode a 5.10 per tutti i book dotati di command RunEntity, al fine di mantenere il precedente comportamento.
✓ Quando viene eseguito un Book che ha come StartCommand un comando di tipo diverso da CommandRunChapter (ad esempio un CommandRunSql) che nello script esegue un CommandRunChapter che lancia un chapter denominato “DefaultChapter” e che dipende da parametri, mostra ugualmente la griglia di richiesta dei parametri (con il CompatibilityMode Current la griglia di richiesta parametri non viene mostrata proprio come se il chapter avesse un nome diverso da “DefaultChapter”; la griglia di richiesta parametri deve essere visualizzata solo se lo StartCommand è un CommandRunChapter).
Selezionando il CompatibilityMode 4.5, si hanno i seguenti comportamenti:
✓ È concesso che il nome delle tabelle e delle relazioni del model contengano il carattere “due punti” (:). Nelle versioni superiori a 4.5 non è consentito perché i due punti servono per l’utilizzo degli shared filters.
✓ È concesso che i command abbiano lo stesso nome delle tabelle del model
✓ Tra la versione 4.5 e la 5 è stata cambiata la semantica delle strutture interne: dalla versione 5 al nome della tabella del model corrisponde una view contenente anche le colonne calcolate e le lookup mentre nelle versioni precedenti corrispondeva alla tabella risultato del datalink senza colonne extra. Quindi, nel caso vi siano dei commands che accedono a tabelle con colonne calcolate o lookup non esplicitando tutte le colonne ma usando una wild card (*) continueranno a non essere restituite le computed e le lookup.