The following HierarchyFile example uses nested generator statements to create an element hierarchy 4 levels deep from 4 generations of parent class names. Under the hierarchy built from class names, are two main group elements: Networking (with Switch and Router child elements) and Performance.
structure.parent.parent.parent.name
structure.parent.parent.name
structure.parent.name
structure.name
Networking
Switch
Router
Performance
<?xml version="1.0" standalone="no"?> <!DOCTYPE hierarchy PUBLIC "-//Novell, Inc.//DTD hierarchy 2.0//EN" "http://www.ManagedObjects.com/dtds/hierarchy_2.0.dtd"> <hierarchy case="yes"> <generator affected="no" class_from_field="structure.parent.parent.parent.objectClass" field="structure.parent.parent.parent.name"> <generator affected="no" class_from_field="structure.parent.parent.objectClass" field="structure.parent.parent.name"> <generator affected="no" class_from_field="structure.parent.objectClass" field="structure.parent.name"> <generator affected="yes" class_from_field="structure.objectClass" field="structure.name"> <group name="Networking" class="net_lan" > <group name="Switch" class="telcom_switch"> <param name="match.0.type" value="FIXED" /> <param name="match.0.expr" value="gen_device=${formula.util.encodeURL($parent.parent.name)}" /> <param name="match.0.root" value="gen_container=Switches/demo=SNMP+Manager/root=Elements" /> </group> <group name="Router" class="device_router"> <generator field="#set($s=${structure.id}%32)$s" class="gen_port"> <param name="match.0.type" value="FIXED" /> <param name="match.0.expr" value="port=${name}/server=${formula.util.encodeURL($parent.parent.parent.name)}" /> <param name="match.0.root" value="gen_container=Routers/demo=SNMP+Manager/root=Elements" /> <param name="script" value="element.DisplaySourceElements=true" /> </generator> </group> </group> <group name="Performance" class="gen_container" > <param name="match.0.type" value="REGEXP" /> <param name="match.0.expr" value="[^\x2f]*/${parent.objectClass}=${formula.util.encodeURL(${formula.util.escapeRegExp($parent.name)})}" /> <param name="match.0.root" value="Hosts=Hosts/tec=Tivoli+T%2FEC/root=Elements" /> <param name="match.1.type" value="LDAP" /> <param name="match.1.expr" value="(cn=${parent.name})" /> <param name="match.1.root" value="gen_container=Hosts/script=Sitescope/root=Elements" /> </group> <group name="Tickets" class="gen_action" > <param name="match.0.type" value="CLASS" /> <param name="match.0.expr" value="(&(cn=${parent.name})(objectClass=*))" /> <param name="match.0.root" value="remedy=ARS+Help+Desk/root=Elements" /> </group> </generator> </generator> </generator> </generator> </hierarchy>