Value Roll Ups to Area Objects

What will be the best way to roll up values ( for some specific attributes) from child objects to Area Objects in System Platform. The way must be dynamic (static scripting with + is not suitable) as the child objects could be added or deleted in the area or could be reassigned to a different area. As an eg, my Data Hall is an Area Object, which has Cabinets having kW attribute in it. It is required to have sum of all kW at Data Hall level. This is very easily done in PI with simple steps of configuration but couldn't find anything much simpler in System Platform

  • why not just....

    1) add a string array to your Area (to store list of objects in the area)

    2) manually store/upload list of names of the objects for that area to the array (script it if you want from CSVXML file) 

    3) in the Area have a script that only runs when string array.Dimension1 >= 1 and then use a loop though the array in script and then for each string use the Indirect method to get your values and then you can sum of all the configured string points and store in the area totals.  

    4) run it periodically

    > I have done a couple of project going one step further and each Object in the area populate its own object name in the area so it auto configures the array on deployment of the object but you need to check for duplicates and errors

  • I did this same thing for a client. I just queried the galaxy database to get the list of contained objects for the given object/area and stored those in a local attribute as a csv string. This script would run only when the object starts up. Then I add another script that will execute periodically, iterate the object list/csv, bind to the object using indirect, and sum the values up into another local attribute. This way all I need to do is add/remove the child objects, redeploy the tree, and it will automatically aggregate the data for me. It would be nice if there was an easier way. It's definitely not a non-programmer friendly approach, but it does make for a nice loosely coupled setup.

  • Hello Tim, thanks for the answer. This is the exact method we ended up using even though support screams when we over user Indirect Binding and that's why the need for more inbuilt method.