SetDmStd

Syntax

SetDmStdResult SetDmStd(DmId tDim, SetDmStdArg tArg)

Parameters

tDim. Moniker of opened table dictionary instance.

tArg. Operation execution parameters.

Description

The SetDmStd operation changes table dictionary metadata.

Comments

This operation enables the user to change table dictionary structure: attributes, blocks, indexes, dictionary levels and other settings that affect dictionary work. A table dictionary should be opened for edit. To execute the operation, in the tDim field specify table dictionary instance moniker, and in the tArg field specify change parameters. The moniker can be obtained on executing the OpenDim operation. In the tArg.pattern field specify the pattern that will be used to make changes, and in the tArg.meta field specify changed metadata. After making changes save the dictionary by using the SaveObject or SaveObjectAs operation. The operation results in the updated metadata if the tArg.metaGet pattern was specified.

Example

Below is the example of using the SetDmStd operation to change table dictionary structure, that is, a new attributes is added to the dictionary. The request contains the dictionary moniker, the pattern that determines whether it is necessary to add a new attribute, and metadata with specified new attribute parameters. The response contains updated information about all dictionary attributes.

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">
<SetDmStd xmlns="http://www.fsight.ru/PP.SOM.Som">
<tDim xmlns="">
  <id>S1!M!S!DM9</id>
  </tDim>
<tArg xmlns="">
<pattern>
  <obInst>true</obInst>
  <attrs>Add</attrs>
  </pattern>
<meta>
<attrs>
<its>
<it>
  <k>18446744073709551615</k>
  <id>ADDITIONAL</id>
  <n>Additional value</n>
  <dt>3</dt>
  </it>
  </its>
  </attrs>
  </meta>
<metaGet>
  <obInst>true</obInst>
  <attrs>Get</attrs>
  </metaGet>
  </tArg>
  </SetDmStd>
  </s:Body>
  </s:Envelope>

SOAP response:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<SetDmStdResult 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="">
  <id>S1!M!S!DM9</id>
  </id>
<meta xmlns="">
<obInst>
<obDesc ds="" isShortcut="0" isLink="0" ver="4" hf="0">
  <i>DIM_1</i>
  <n>Dim_1</n>
  <k>116</k>
  <c>1025</c>
  <p>103</p>
  <h>0</h>
  <hasPrv>0</hasPrv>
  <ic>0</ic>
  <isPermanent>1</isPermanent>
  <isTemp>0</isTemp>
  </obDesc>
  </obInst>
  <dirty>1</dirty>
<attrs>
<its>
<it>
  <k>117</k>
  <id>NAME</id>
  <n>Name</n>
  <vis>1</vis>
  <dt>1</dt>
  <predefined>Name</predefined>
  <dataDomain>0</dataDomain>
  <nullable>1</nullable>
  <hasHierarchy>0</hasHierarchy>
  </it>
<it>
  <k>118</k>
  <id>ID</id>
  <n>Identifier</n>
  <vis>1</vis>
  <dt>2</dt>
  <uniqueIndex>INDEX1</uniqueIndex>
  <predefined>Ident</predefined>
  <dataDomain>0</dataDomain>
  <nullable>1</nullable>
  <hasHierarchy>0</hasHierarchy>
  </it>
<it>
  <k>119</k>
  <id>ORDER</id>
  <n>Order</n>
  <vis>1</vis>
  <dt>2</dt>
  <predefined>Order</predefined>
  <dataDomain>0</dataDomain>
  <nullable>1</nullable>
  <hasHierarchy>0</hasHierarchy>
  </it>
<it>
  <k>122</k>
  <id>PARENT</id>
  <n>Parent</n>
  <vis>1</vis>
  <dt>2</dt>
  <dataDomain>0</dataDomain>
  <nullable>1</nullable>
  <hasHierarchy>0</hasHierarchy>
  </it>
<it>
  <k>177</k>
  <id>CODE</id>
  <n>Code</n>
  <vis>1</vis>
  <dt>1</dt>
  <dataDomain>0</dataDomain>
  <nullable>1</nullable>
  <hasHierarchy>0</hasHierarchy>
  </it>
<it>
  <k>178</k>
  <id>ADDITIONAL</id>
  <n>Additional value</n>
  <vis>1</vis>
  <dt>3</dt>
  <dataDomain>0</dataDomain>
  <nullable>1</nullable>
  <hasHierarchy>0</hasHierarchy>
  </it>
  </its>
  <ident>1</ident>
  <name>0</name>
  <order>2</order>
<orders>
<its>
<it>
<attr>
  <k>119</k>
  <id>ORDER</id>
  </attr>
  <reverseOrder>0</reverseOrder>
  </it>
  </its>
  </orders>
  </attrs>
  <deduplicateCondition>None</deduplicateCondition>
  <deduplicateExpression />
  <hideInaccessibleElements>1</hideInaccessibleElements>
  <reverseOrder>0</reverseOrder>
  </meta>
  </SetDmStdResult>
  </soapenv:Body>
  </soapenv:Envelope>

JSON request:

{
"SetDmStd" :
{
"tDim" :
{
"id" : "S1!M!S!DM9"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true",
"attrs" : "Add"
},
"meta" :
{
"attrs" :
{
"its" :
{
"it" :
[
{
"k" : "18446744073709551615",
"id" : "ADDITIONAL",
"n" : "Additional value",
"dt" : "3"
}
]
}
}
},
"metaGet" :
{
"obInst" : "true",
"attrs" : "Get"
}
}
}
}

JSON response:

{
"SetDmStdResult" :
{
"id" :
{
"id" : "S1!M!S!DM9"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "4",
"@hf" : "0",
"i" : "DIM_1",
"n" : "Dim_1",
"k" : "116",
"c" : "1025",
"p" : "103",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"isPermanent" : "1",
"isTemp" : "0"
}
},
"dirty" : "1",
"attrs" :
{
"its" :
{
"it" :
[
{
"k" : "117",
"id" : "NAME",
"n" : "Name",
"vis" : "1",
"dt" : "1",
"predefined" : "Name",
"dataDomain" : "0",
"nullable" : "1",
"hasHierarchy" : "0"
},
{
"k" : "118",
"id" : "ID",
"n" : "Identifier",
"vis" : "1",
"dt" : "2",
"uniqueIndex" : "INDEX1",
"predefined" : "Ident",
"dataDomain" : "0",
"nullable" : "1",
"hasHierarchy" : "0"
},
{
"k" : "119",
"id" : "ORDER",
"n" : "Order",
"vis" : "1",
"dt" : "2",
"predefined" : "Order",
"dataDomain" : "0",
"nullable" : "1",
"hasHierarchy" : "0"
},
{
"k" : "122",
"id" : "PARENT",
"n" : "Parent",
"vis" : "1",
"dt" : "2",
"dataDomain" : "0",
"nullable" : "1",
"hasHierarchy" : "0"
},
{
"k" : "177",
"id" : "CODE",
"n" : "Code",
"vis" : "1",
"dt" : "1",
"dataDomain" : "0",
"nullable" : "1",
"hasHierarchy" : "0"
},
{
"k" : "178",
"id" : "ADDITIONAL",
"n" : "Additional value",
"vis" : "1",
"dt" : "3",
"dataDomain" : "0",
"nullable" : "1",
"hasHierarchy" : "0"
}
]
},
"ident" : "1",
"name" : "0",
"order" : "2",
"orders" :
{
"its" :
{
"it" :
[
{
"attr" :
{
"k" : "119",
"id" : "ORDER"
},
"reverseOrder" : "0"
}
]
}
}
},
"deduplicateCondition" : "None",
"deduplicateExpression" : "",
"hideInaccessibleElements" : "1",
"reverseOrder" : "0"
}
}
}
public static SetDmStdResult ChangeStandartDimension(DmId moniker)
{
var somClient = new SomPortTypeClient(); //Proxy object for operation execution
//Operation execution parameters
var tSet = new SetDmStd()
{
tArg = new SetDmStdArg()
{
pattern = new DmStdMdPattern()
{
attrs = ListOperation.Add
},
meta = new DmStdMd()
{
attrs = new DmStdAttrs()
{
its = new DmStdAttr[]
{
new DmStdAttr()
{
id = "ADDITIONAL",
n = "Additional value",
dt = 3, //DbDataType.Float
k = uint.MaxValue
}
}
}
},
metaGet = new DmStdMdPattern()
{
attrs = ListOperation.Get
}
},
tDim = moniker
};
//Change table dictionary
var result = somClient.SetDmStd(tSet);
return result;
}

See also:

Working with Dictionaries