Ниже приведен пример использования операции SetMs для удаления переменной. В запросе передаются: экземпляр открытого контейнера моделирования, параметры выполнения операции, срез данных, соответствующий удаляемой переменной, и шаблон получения измененных данных. В результате выполнения операция возвращает изменённую модель.
{
"SetMs" :
{
"tMs" :
{
"id" : "CEOHFIGABHNBFOAEACLDIHAAFIBLHLNEJJHHIHEGOIMCAOGA!M!S!CPOKJBJGABHNBFOAEFABNMBGBLLNHOPAEHKDKCJFDLLMFBFKJ"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true",
"item" :
{
"key" : "92146",
"metaModel" :
{
"calculationChain" : "Remove"
}
}
},
"meta" :
{
"item" :
{
"k" : "92146",
"type" : "MetaModel",
"metaModelMd" :
{
"calculationChain" :
{
"its" :
{
"Item" :
{
"k" : "1",
"type" : "Variable"
}
}
}
}
}
}
}
}
}
{
"SetMsResult" :
{
"id" :
{
"id" : "CEOHFIGABHNBFOAEACLDIHAAFIBLHLNEJJHHIHEGOIMCAOGA!M!S!CPOKJBJGABHNBFOAEFABNMBGBLLNHOPAEHKDKCJFDLLMFBFKJ"
}
}
}
public static MsId SetMsDelVar(MsId ms, ulong metaKey, ulong varKeyDel)
{
var setMsOp = new SetMs();
setMsOp.tMs = ms;
setMsOp.tArg = new SetMsArg()
{ // Задаем шаблон изменения данных
pattern = new MsMdPattern()
{
item = new MsItemPattern()
{
key = metaKey,
metaModel = new MsMetaModelPattern()
{
calculationChain = ListOperation.Remove
}
}
},
// Задаем данные, которые необходимо изменить
meta = new MsMd()
{
item = new MsItem()
{
k = metaKey,
type = MsItemType.MetaModel,
metaModelMd = new MsMetaModel()
{
calculationChain = new MsCalculationChainEntries()
{
its = new MsCalculationChainEntry[]
{
new MsCalculationChainEntry()
{
k = varKeyDel,
type = MsCalculationChainType.Variable
}
}
}
}
}
}
}; // Создаем прокси-объект для выполнения операции
var somClient = new SomPortTypeClient();
// Задаем параметры выполнения операции
var result = somClient.SetMs(setMsOp);
return result.id;
}
См. также: