13.07.2015 Views

Caché Upgrade Checklists - InterSystems Documentation

Caché Upgrade Checklists - InterSystems Documentation

Caché Upgrade Checklists - InterSystems Documentation

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

DevelopersIn addition, the internal management of nested queries is now more consistent in how references to fields within queriesare resolved. The basic rules are that:1. Every group (including the outer report tag) defines a "query context" at the "level" of the group. The level specifieshow deeply nested the group is from the top of the report definition. If a group does not define a new query, then ituses its the query of its parent group as if it was its own.2. References to fields within a ,, or node are resolved by looking at the query of theparent node.3. References to fields within and nodes are resolved by looking at the query at the same levelas the node.For example, inName comes from Table1. InName cannot be resolved and an error message is generated. In the sequenceName will be resolved to that in Table2. And finally, givenName will be resolved to Table1.Non-Existent FieldsReferences to non-existent fields within a query now result in “ ” for the value of the field and not the value, “not found”.Sibling GroupsIt is now possible for a ReportDefinition to define more than one group node at the same level. These are referred to as“sibling” groups and are descibed in more detail in the Zen Reports documentation. There are some special rules in effectfor sibling groups:• Column break logic only applies to the first sibling-- breakOnField and breakOnExpression are ignored for any groupthat is not the first sibling.• Aggregates are only computed if they appear within the first sibling.Sibling groups are typically used when each sibling defines its own query, usually referring to a breaking field from theouter query in their common WHERE clause. They are also used where the siblings do not define their own queries. In thiscase, the first sibling tests for break conditions and outputs its records, then the subsequent siblings are processed with thesame break field.Node LevelAs a convenience, the Report Engine defines a variable, %node(level) to be equal to the current number at the givengrouping level. You can use this within an expression within a ReportDefinition. For example,<strong>Caché</strong> <strong>Upgrade</strong> <strong>Checklists</strong> 207

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!