Friday, November 9, 2012

Lets not get confused with 'Hierarchy Sort Order'

On a Hierarchy we have 3 different Sort Properties,

1. Hierarchy Sort Order:

          This is used to specify the position of a Hierarchy in a Hierarchy Group
          when you have multiple hierarchies under a Hierarchy Group ( Sytem 
          category)
          Ex: -1, 0, 1
               Accounts
                                         CASH   -1 
                            FUND    0 
                         
2. Default Hierarchy Sort:

            Specifies the default sort order for all the users, when not selected
            hierarchies will get sorted Alphanumerically.

            A custom derived property with 'SORT' Data Type can be assigned based             on requirement.

3. User Hierarchy Sort:

           If User wanted to have a own representation of hierarchy structure, it is            possible by assigning a custom property to User Hierarchy Sort,

           When assigned it takes precedence over the default hierarchy Sort.



Enjoy Learning!

Thursday, November 8, 2012

Custom Ordering of Nodes in Oralce Hyperion DRM

Most of us are aware that DRM sorts data in Alphanumeric by default, and we can have a custom sort order by defining a derived property of 'SORT' data type based on the requirement and assign the same as hierarchy default sort order.

For Ex: sorting the nodes using it's Node ID.

With the latest release of DRM 11.1.2.X you can have your hierarchy sorted in what ever the way you wish to based on your business requirement,

Ex:

P1    core.sortorder
  X    0
  A    0
  D    0
  C    0


With the earlier versions the above order is not possible as DRM tries to sort it alphanumerically ( if there is no sort order selected, default nature of DRM) or if you apply a custom sort order it will get sorted based on it.
Ex: Sort by node type,

In order to achive the above order we need to use the 'core.SortOrder' as the 'default Hierarchy sort order',
By default this property is a Hidden property and we explicitly needs to make it available for selection.

We can use this while Importing your Data or on a existing hierarchy,
what happens is when you move a node under a particular parent
Ex: Move the node 'D' as a sibling to node 'X',
DRM will prompt you as 'Put as Sibling or reorder', when selected the node 'D' will be placed after the node 'X' and also the property 'core.SortOrder' will get updated.

You can get more clarity when you try to view Audit ( transaction History) and see what action script System has generated.


Ex:

P1     core.SortOrder
  X     0
  D     1
  A     2
  C     3


Remember core.SortOrder is applicable only for the nodes under a particular parent, sort order number differs for each node under different parents.

When applied on a existing hierarchy it will not dynamically changes the hierarchy structure, we need to explicitly re-order the hierarchy based on our requirement

Also when an import performed, by default all the nodes will be assigned with 'core.SortOrder' as '0' and it will get changed when a re-order happens.

Enjoy Learning!