SetDmUserResult SetDmUser(DmId tDim, SetDmUserArg tArg)
tDim. Calculated dictionary instance moniker.
tArg. Operation execution parameters.
The SetDmUser operation changes calculated dictionary metadata.
This operation enables the user to change calculated dictionary structure: attributes, blocks, indexes, dictionary levels, macro for building an element tree and other settings that affect dictionary work. A calculated dictionary should be opened for edit. To execute the operation, in the tDim field specify calculated 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.
Below is the example of using the operation to change calculated dictionary structure, that is, a new attribute 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.
{
"SetDmUser" :
{
"tDim" :
{
"id" : "S1!M!S!DM1"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true",
"attrs" : "Add"
},
"meta" :
{
"attrs" :
{
"its" :
{
"it" :
[
{
"k" : "-1",
"id" : "ADDITIONAL",
"n" : "Additional value",
"dt" : "3"
}
]
}
}
},
"metaGet" :
{
"obInst" : "true",
"attrs" : "Get"
}
}
}
}
{
"SetDmUserResult" :
{
"id" :
{
"id" : "S1!M!S!DM1"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@ds" : "",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "8",
"@hf" : "0",
"i" : "DIM_USER",
"n" : "Dictionary",
"k" : "175067",
"c" : "1027",
"p" : "175063",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"trackElementDependents" : "0",
"isPermanent" : "1",
"isTemp" : "0"
}
},
"dirty" : "1",
"attrs" :
{
"its" :
{
"it" :
[
{
"k" : "1",
"id" : "NAME",
"n" : "Name",
"vis" : "1",
"dt" : "1",
"predefined" : "Name",
"dataDomain" : "0",
"nullable" : "1",
"hasHierarchy" : "0"
},
{
"k" : "2",
"id" : "ID",
"n" : "Identifier",
"vis" : "1",
"dt" : "2",
"predefined" : "Ident",
"dataDomain" : "0",
"nullable" : "1",
"hasHierarchy" : "0"
},
{
"k" : "3",
"id" : "ORDER",
"n" : "Order",
"vis" : "1",
"dt" : "2",
"predefined" : "Order",
"dataDomain" : "0",
"nullable" : "1",
"hasHierarchy" : "0"
},
{
"k" : "4",
"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" : "3",
"id" : "ORDER"
},
"reverseOrder" : "0"
}
]
}
}
},
"hideInaccessibleElements" : "1",
"reverseOrder" : "0"
}
}
}
public static SetDmUserResult ChangeUserDimension(DmId moniker)
{
var somClient = new SomPortTypeClient(); //Proxy object for operation execution
//Operation execution parameters
var tSet = new SetDmUser()
{
tArg = new SetDmUserArg()
{
pattern = new DmUserMdPattern()
{
attrs = ListOperation.Add
},
meta = new DmUserMd()
{
attrs = new DmUserAttrs()
{
its = new DmUserAttr[]
{
new DmUserAttr()
{
id = "ADDITIONAL",
n = "Additional value",
dt = 3, //DbDataType.Float
k = ulong.MaxValue
}
}
}
},
metaGet = new DmUserMdPattern()
{
attrs = ListOperation.Get
}
},
tDim = moniker
};
//Change calculated dictionary
var result = somClient.SetDmUser(tSet);
return result;
}
See also: