This is the first item in an on-going series of blog posts designed to help our readers get the most out of Oracle Hyperion DRM (Database Relationship Manager).
This post addresses a limitation in the way Oracle Hyperion DRM allows users to define queries. Specifically, Oracle Hyperion DRM allows you to structure queries using parentheses but does not allow you to put a NOT in front of criteria grouped in this way.
What if you were making a complex query and wanted to exclude nodes that meet two conditions? For instance you want to select all nodes that are below the top node, except leaf nodes if they are also linked in from another hierarchy. In Oracle Hyperion DRM terms what you are trying to achieve is:
- Level Greater Than 1 And Not (Leaf Equal True And Linked Equal True)
You cannot code this as it stands in an Oracle Hyperion DRM query. However, the following rule of logic can help:
- not-(A and B) is logically equivalent to (not-A or not-B)
Our example now becomes:
- Level Greater Than 1 And (Leaf Equal False Or Linked Equal False)
Which as the screenshot below shows can be implemented in Oracle Hyperion DRM in the following way: