Il Dynamic Loader è un oggetto del Package che consente di richiamare dinamicamente un altro Package come Library (disponibile a partire da IrionDQ 2016 Update 6).
Dynamic Loader non è un oggetto EAsT e quindi non può essere richiamato direttamente in altri oggetti del Package, ma necessita di essere istanziato con una particolare sintassi all'interno di un Query Engine. |
Per la definizione di un oggetto Dynamic Loader, occorre compilare:
✓ il tab General, con le informazioni anagrafiche relative all'oggetto;
✓ il tab Input Query, con il richiamo dinamico ai Package da importare come Library.
La compilazione del tab Input Query comporta la definizione di una query SQL contenente i campi obbligatori:
✓ Name, percorso assoluto o relativo del Package referenziato all’interno del Catalog;
✓ Root, nome logico assegnato alla Library all’interno del Package.
Inoltre, è possibile definire un campo Override nella query, contenente, in formato XML, gli eventuali override di singoli oggetti del Package su quelli della Library.
ESEMPIO DI INPUT QUERY Un esempio di Input Query costruita a partire da un oggetto Catalog Examiner che estrae i Package da utlizzare in Library:
SELECT Name = ce.FullName, Root = ce.NAME, Override = -- List of overrides '<Override> <Item> <LibraryItem>\__LibraryDatalink1__</LibraryItem> <PackageItem>\__LocalDatalinkX__</PackageItem> </Item> <Item> <LibraryItem>\__LibraryDatalink2__</LibraryItem> <PackageItem>\__LocalDatalinkY__</PackageItem> </Item> </Override>' FROM [Catalog Examiner] ce |
Al fine di richiamare un Dynamic Loader in un Query Engine, la sintassi da utilizzare è la seguente:
SELECT * FROM [<path del Dynamic Loader>|<Root>\<oggetto della Library>]
Come per il caso statico, anche nell'uso del Dynamic Loader, i Package richiamati come Library necessitano l'impostazione della External Visibility appropriata (Visible, Can Override o Must Override). |
Non è possibile lanciare Entity di tipo Book quando queste provengono da una libreria caricata dinamicamente. |
Il tab Dynamic Properties permette la definizione dinamica delle property del Dynamic Loader. Si noti, in particolare, che per la definizione dinamica della Input Query il campo da richiamare è Query.