The flowing script will return all the members of Auxiliary 1 Dimension, for those territories in which a user is in.
The resource could be Owner or member of the sales team or simply the login user.
This is the script:
def OwnerID = <RESOURCE OR USER PARTY ID>
def colect = []
def dimMember = []
def x
def view_TerrRes = newView(‘TerritoryResourceVO’)
def CriteriaTerRes = newViewCriteria(view_TerrRes)
def criteriaRow = CriteriaTerRes.createRow()
def cr = criteriaRow.ensureCriteriaItem(‘ResourceId’)
cr.setOperator(‘=’)
cr.setValue(OwnerID)
CriteriaTerRes.insertRow(criteriaRow)
view_TerrRes.appendViewCriteria(CriteriaTerRes)
view_TerrRes.executeQuery()
while(view_TerrRes.hasNext())
{
def terResRow = view_TerrRes.next()
colect.add(terResRow.TerritoryVersionId)
}
def uniqueTerr = colect.unique()
def terrNumber = uniqueTerr.size()
def col
for(int i = 0;i<uniqueTerr.size();i++)
{
def view_Terr = newView(‘TerritoryDimensionalityPVO’)
def CriteriaTer = newViewCriteria(view_Terr)
def criteriaRow1 = CriteriaTer.createRow()
def cr1 = criteriaRow1.ensureCriteriaItem(‘TerritoryVersionId’)
cr1.setOperator(‘=’)
cr1.setValue(uniqueTerr[i])
CriteriaTer.insertRow(criteriaRow1)
view_Terr.appendViewCriteria(CriteriaTer)
view_Terr.executeQuery()
if(view_Terr.first()?.DimensionName==“Customer Auxiliary 1”){
dimMember.add(view_Terr.first()?.DimensionMemberName)
}
}
return dimMember
dimMember – should be the array holding all Dimension Members for Customer Auxiliary 1
Script can work in a formula field or as a function or in a trigger(have to replace return statement at the end with a setAttribute())