Creating an attribute-driven hierarchy
You can use the Dimension Write
function to
create an attribute-driven hierarchy.
In this function, Alea:AttributeLevel/@TableID
is 0-based.
As opposed to that, in the Dimension CreateAttributeTable
and
Dimension ImportAttributeValues
functions,
Alea:AttributeTable/@ID
is 1-based.
Request
In this request, replace \t with an actual horizontal tabulator.
<Alea:Document xmlns:Alea="http://www.misag.com">
<Alea:Request RequestID="3" Class="Dimension" Method="Write">
<Alea:Dimension Name="Product" FirstBatch="true" LastBatch="true">
<Alea:DimensionTemplate Name="Product" />
<Alea:Hierarchy Name="Size2" SourceHierarchy="Product">
<Alea:TopLevel Element="All sizes" />
<Alea:AttributeLevel TableID="0" AttributeName="SIZE" EmptyValueElement="Unknown size" />
<Alea:BaseLevel Hidden="false" />
</Alea:Hierarchy>
</Alea:Dimension>
</Alea:Request>
</Alea:Document>
The hierarchy is defined in multiple steps. At first, the root level is
defined (Alea:TopLevel
). It contains the name of the top
element (Alea:TopLevel/@Element
). This level is optional. A
hierarchy without this level might have multiple root members.
This is followed by zero or more levels that are based on attributes
(Alea:AttributeLevel
). The necessary information is the
number of the attribute table (Alea:AttributeLevel/@TableID
) and the name of the attribute (Alea:AttributeLevel/@AttributeName
). Optionally, a name can be
defined that is used in the case that the attribute is not correctly defined (Alea:AttributeLevel/@EmptyValueElement
). This element name is
used if the attribute value cannot be used as an element name. This can happen in multiple
situations like invalid characters, relations that violate the tree structure or non-unique
element names. If no attribute level is defined, the base elements are children of the
Alea:TopLevel
element - if that is defined. If the
EmptyValueElement
is not specified, or it is not usable,
a name is generated. The members on the base level of this hierarchy (Alea:BaseLevel
) are defined by one of the hierarchies created
from parent-child relations. The name of that hierarchy is is specified here:
Alea:Hierarchy/@SourceHierarchy
.