Скрипт создавать в ScriptLibrary. Конкретный скрипт будет такой (я так понял что название верхнего контейнера "SERVERS/TERMINALS"):
Code Select
// Hash map to avoid duplicates
global processedNodes = %{};
// Find "Entire Network" object and start enumeration from it
return CalculateTotal(FindObject("SERVERS/TERMINALS"));
// This function walks object tree recursively starting from given root
sub CalculateTotal(rootObject)
{
sum = 0.0;
// Walk all child objects
foreach(o : GetObjectChildren(rootObject))
{
if (classof(o) == "Node")
{
if ((processedNodes[o->id] == null) && (o->name ilike "TER00*"))
{
v = GetDCIValueByDescription(o, "Terminal - Active Sessions");
if (v != null)
sum += real(v);
processedNodes[o->id] = 1; // actual value is irrelevant, it's just a flag
}
}
else if (classof(o) == "NetObj")
{
// For all other objects, go down the tree
// There can be additional checks for object class, like
// if (o->type == 5)
sum += CalculateTotal(o);
}
}
return sum;
}