Il Rule Editor facilita la creazione di veri e propri Dizionari Controlli al di fuori del Package.
Per produrre gli esiti delle regole modificate e/o definite dal Power User attraverso il Viewer e archiviati su un apposito Rule Repository, occorre:
✓ definire un Rule Executor, ossia un Rule Engine alimentato dinamicamente sulla base dei dati registrati sul Rule Repository;
✓ scatenare l’esecuzione del Rule Executor all’interno di un Chapter del Book;
✓ visualizzare i risultati dei controlli effettuati su un'apposita Grid.
Il Rule Executor è un Rule Engine definito mediante opportune Dynamic Properties. Le principali proprietà dinamiche da configurare sono:
✓ RuleList, serializzazione XML delle regole ricavato interrogando la RuleTable;
✓ DataLink, oggetto dal Package sul cui output applicare le regole;
✓ RuleMode, modalità di esposizione degli esiti (i.e. ByRow o ByColumn).
La serializzazione XML della Rule List è la seguente:
<RuleList>
<Rule>
<Name> … </Name>
<TriggerExpression> … </TriggerExpression>
<Description> … </Description>
<UseMessage>
<UseDescription>
<UseSeverity>
<Conditions>
<RuleCondition>
<Condition> … </Condition>
<WBS> … </WBS>
<OutputExpression01> … </OutputExpression01>
<OutputExpression02> … </OutputExpression02>
<Severity> … </Severity>
<Message> … </Message>
<Descrition> … </Descrition>
<EnabledResolved> … </EnabledResolved>
</RuleCondition>
<RuleCondition> … </RuleCondition>
</Conditions>
<OutputName01> … </OutputName01>
<OutputName02> … </OutputName02>
</Rule>
<Rule> … </Rule>
</RuleList>
Tutto il contenuto del nodo <Rule> può essere ricavato dalla Rule Table. In particolare:
✓ il contenuto del nodo <Name> coincide con il campo RuleNameColumn;
✓ il contenuto del nodo <OutputName> coincide con il campo OutputNameColumn;
✓ tutti gli altri nodi corrispondono al contenuto del campo RuleDefinitionColumn.
Ogni nodo <Rule> ammette fino a 10 nodi di tipo <OutputName> numerati da 01 a 10. |
Le proprietà DataLink e RuleMode possono essere impostate anche staticamente, mediante il visualizzatore delle Proprety del Rule Engine.
In caso il DataLink sia definito dinamicamente, per visualizzarne tutte le colonne è necessario impostare la proprietà UnexpectedColums a Read. |
La proprietà statica VisibleEntities, presente nel visualizzatore Property di un Rule Engine, permette invece di elencare gli oggetti del Package ammessi nella definizione delle Rule. In particolare, in caaso il Power User utilizzi risorse non censite tra le entità visibili, il Rule Executor restituirà un errore in fase di esecuzione.