Ниже приведен пример использования операции GetMs для создания переменной на основе ряда из БД временных рядов. В запросе передается экземпляр открытого контейнера моделирования, шаблон для изменения модели и временной ряд. В ответе приходит описание созданной переменной.
{ "GetMs" : { "tMs" : { "id" : "S70!M!S!C1"
}, "tArg" : { "pattern" : { "obInst" : "true", "item" : { "key" : "4412", "metaModel" :
{ "tag" : "false", "visualControllerPattern" : "" } } }, "execParams" : { "rubFacts" : {
"it" : { "k" : "10113", "vis" : "true", "atts" : { "its" : { "it" : [
{ "k" : "9", "id" : "COUNTRY", "n" : "Страна", "vis" : "true", "value" : "313" } ] } }
} }, "inputRubKey" : "2940", "execSaveProblem" : "true", "execGetVariablesByFactors" : "true" } } } } } }
{ "GetMsResult" : { "id" : {
"id" : "S70!M!S!C1" }, "meta" : { "obInst" : { "obDesc" : { "@isShortcut" : "0", "i" : "MODELSPACE",
"n" : "Контейнер моделирования", "k" : "1581", "c" : "5121", "p" : "1580", "h" : "0" } }, "dirty" : "0", "item" : {
"k" : "4412", "id" : "MODEL_DEL_METAMODEL", "n" : "model_del", "vis" : "1", "type" : "MetaModel", "metaModelMd" : { "k" : "4412", "visualController" : {
"variablesByFactors" : { "its" : { "Item" : { "slice" : { "k" : "0", "id" : "OBJ_TSDB!313",
"n" : "БД временных рядов!d12", "vis" : "1", "variableKey" : "4563", "stubKey" : "2940", "selections" : { "its" : { "Item" : {
"id" : { "id" : "208" }, "variant" : "313" } } }, "aggregator" : "None", "parametrizedDimensions" :
{ "its" : { "Item" : { "dimension" : "0", "parameter" : "0" } } },
"unitInfo" : { "unit" : "4294967295", "measure" : "4294967295", "baseUnit" : "4294967295", "unitsDimensionKey" : "0" }, "level" : "None" }, "variableExists" : "0"
} } } } } } }
public static MsItem GetMsRubVar(MsId ms, uint metaModelKey, RubFact varRub, uint rubKey)
{
var getMsOp = new GetMs()
{
tMs = ms,
tArg = new GetMsArg()
{
pattern = new MsMdPattern()
{
item = new MsItemPattern()
{
key = metaModelKey,
metaModel = new MsMetaModelPattern()
{
tag = false,
visualControllerPattern = new MsMetaModelVisualControllerPattern() { }
}
}
},
execParams = new MsMdExecParams()
{
execGetVariablesByFactors = new MsMdExecGetVariablesByFactors()
{
rubFacts = new RubFact[] { varRub },
inputRubKey = rubKey
}
}
}
};
// Создаем прокси-объект для выполнения операции
var somClient = new SomPortTypeClient();
// Добавление переменной из БД временных рядов
var result = somClient.GetMs(getMsOp);
var metaVC = result.meta.item.metaModelMd.visualController;
var vars = metaVC.variablesByFactors;
foreach (MsVariableByFactor vbf in vars.its)
{
Console.WriteLine("Добавлена переменная: " + vbf.chainEntry.n);
Console.WriteLine(" - переменная существует: " + vbf.variableExists);
};
return result.meta.item;
}
См. также: