Changing Selection of Elements on Specified Level

Below is the example of using the ChangeDimSelection operation to select elements of the specified level. The request contains moniker of opened dictionary instance and identifier of the level that contains the elements to be selected. The response contains summary information about the selected elements.

In the C# example level identifier and moniker are sent as input parameters of the function.

SOAP request:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ChangeDimSelection xmlns="http://www.fsight.ru/PP.SOM.Som">
<tDim xmlns="">
  <id>S1!M!S!S1</id>
  </tDim>
<tArg xmlns="">
  <newInstance>true</newInstance>
  <elSelectOp>Unknown</elSelectOp>
  <elRelative>Unknown</elRelative>
<setLevel>
  <k>18446744073709551615</k>
  <id>LEVEL1</id>
  <selectOp>Select</selectOp>
  </setLevel>
  </tArg>
  </ChangeDimSelection>
  </s:Body>
  </s:Envelope>

SOAP response:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ChangeDimSelectionResult xmlns="http://www.fsight.ru/PP.SOM.Som" xmlns:q1="http://www.fsight.ru/PP.SOM.Som" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <id xmlns="">S1!M!S!S8</id>
<selectionInfo xmlns="">
<firstSelected>
  <n>Item 1</n>
<a>
  <it>First element</it>
  <it>1</it>
  <it>1</it>
  <it>0</it>
  <it>A000123</it>
  </a>
<ea>
  <it v="First element" />
  <it v="1" />
  <it v="1" />
  <it v="0" />
  <it v="A000123" />
  </ea>
  <k>1</k>
  <h>0</h>
  <o>0</o>
  </firstSelected>
<lastSelected>
  <n>Fifth element</n>
<a>
  <it>Fifth element</it>
  <it>5</it>
  <it>5</it>
  <it>0</it>
  <it>A000127</it>
  </a>
<ea>
  <it v="Fifth element" />
  <it v="5" />
  <it v="5" />
  <it v="0" />
  <it v="A000127" />
  </ea>
  <k>5</k>
  <h>0</h>
  <o>0</o>
  </lastSelected>
  <selectedCount>3</selectedCount>
<schema>
  <k>4294967295</k>
  <vis>1</vis>
  <applyOnlyOnce>0</applyOnlyOnce>
  <onceApplied>0</onceApplied>
  <applyOnRebuild>0</applyOnRebuild>
  </schema>
  </selectionInfo>
  </ChangeDimSelectionResult>
  </soapenv:Body>
  </soapenv:Envelope>

JSON request:

{
"ChangeDimSelection" :
{
"tDim" :
{
"id" : "S1!M!S!S1"
},
"tArg" :
{
"newInstance" : "true",
"elSelectOp" : "Unknown",
"elRelative" : "Unknown",
"setLevel" :
{
"k" : "18446744073709551615",
"id" : "LEVEL1",
"selectOp" : "Select"
}
}
}
}

JSON response:

{
"ChangeDimSelectionResult" :
{
"id" : "S1!M!S!S8",
"selectionInfo" :
{
"firstSelected" :
{
"n" : "First element",
"a" :
{
"it" :
[
"First element",
"1",
"1",
"0",
"A000123"
]
},
"ea" :
{
"it" :
[
{
"@v" : "First element"
},
{
"@v" : "1"
},
{
"@v" : "1"
},
{
"@v" : "0"
},
{
"@v" : "A000123"
}
]
},
"k" : "1",
"h" : "0",
"o" : "0"
},
"lastSelected" :
{
"n" : "Fifth element",
"a" :
{
"it" :
[
"Fifth element",
"5",
"5",
"0",
"A000127"
]
},
"ea" :
{
"it" :
[
{
"@v" : "Fifth element"
},
{
"@v" : "5"
},
{
"@v" : "5"
},
{
"@v" : "0"
},
{
"@v" : "A000127"
}
]
},
"k" : "5",
"h" : "0",
"o" : "0"
},
"selectedCount" : "3",
"schema" :
{
"k" : "4294967295",
"vis" : "1",
"applyOnlyOnce" : "0",
"onceApplied" : "0",
"applyOnRebuild" : "0"
}
}
}
}
public static ChangeDimSelectionResult SelectLevel(DmId moniker, string lvlId)
{
var somClient = new SomPortTypeClient(); //Proxy object for operation execution
//Operation execution parameters
var tSel = new ChangeDimSelection()
{
tArg = new ChangeDimSelectionArg()
{
newInstance = true,
elSelectOp = DmElSelectOp.Unknown,
elRelative = DmElRelative.Unknown,
setLevel = new DmSelectLevelArg() { id = lvlId, k = ulong.MaxValue, selectOp = DmElSelectOp.Select },
},
tDim = moniker
};
//Apply alternative hierarchy and select elements
var result = somClient.ChangeDimSelection(tSel);
return result;
}

See also:

ChangeDimSelection: Operation