Below is the example of using the ChangeDimSelection operation to apply an alternative hierarchy in the selection of the dictionary elements. The request contains moniker of opened dictionary instance and the alternative hierarchy identifier and also the parameters for changing the selection, according to which the selection is made after applying the alternative hierarchy. The response contains the summary information on the selected elements and the moniker of the new instance of the dictionary.
{
"ChangeDimSelection" :
{
"tDim" :
{
"id" : "S1!M!S!S1"
},
"tArg" :
{
"newInstance" : "true",
"setHierarchy" :
{
"id" : "SOURCE1"
},
"elSelectOp" : "Unknown",
"elRelative" : "Unknown",
"next" :
{
"elSelectOp" : "Select",
"elRelative" : "All"
}
}
}
}
{
"ChangeDimSelectionResult" :
{
"id" : "S1!M!S!S6",
"selectionInfo" :
{
"firstSelected" :
{
"n" : "One elemen",
"a" :
{
"it" :
[
"One elemen",
"1",
"1",
"0",
"A000123"
]
},
"ea" :
{
"it" :
[
{
"@v" : "One elemen"
},
{
"@v" : "1"
},
{
"@v" : "1"
},
{
"@v" : "0"
},
{
"@v" : "A000123"
}
]
},
"k" : "1",
"h" : "0",
"o" : "0"
},
"lastSelected" :
{
"n" : "Third element",
"a" :
{
"it" :
[
"Third element",
"3",
"3",
"1",
"A000125"
]
},
"ea" :
{
"it" :
[
{
"@v" : "Third element"
},
{
"@v" : "3"
},
{
"@v" : "3"
},
{
"@v" : "1"
},
{
"@v" : "A000125"
}
]
},
"k" : "3",
"h" : "0",
"o" : "1"
},
"selectedCount" : "3",
"schema" :
{
"k" : "4294967295",
"vis" : "1",
"applyOnlyOnce" : "0",
"onceApplied" : "0",
"applyOnRebuild" : "0"
}
}
}
}
public static ChangeDimSelectionResult ApplyHierarchy(DmId moniker, string hierarchyId)
{
var somClient = new SomPortTypeClient(); //Proxy object for operation execution
//Operation execution parameters
var tSel = new ChangeDimSelection()
{
tArg = new ChangeDimSelectionArg()
{
newInstance = true,
setHierarchy = new DmHierArg() { id = hierarchyId },
//After alternative hierarchy is applied, select all elements
next = new DmSelectionArg()
{
elRelative = DmElRelative.All,
elSelectOp = DmElSelectOp.Select
}
},
tDim = moniker
};
//Apply alternative hierarchy and select elements
var result = somClient.ChangeDimSelection(tSel);
return result;
}
See also: