Ниже приведен пример использования операции GetMs для переименования переменной моделирования. В запросе передаются: экземпляр открытого контейнера моделирования, шаблон получения изменённых данных, параметры выполнения операции и срез данных, соответствующий переменной. В ответе приходит описание переименованной переменной.
{ "Envelope" : { "Body" : { "GetMs" :
{ "tMs" : { "id" : "S84!M!S!C1" }, "tArg" : { "pattern" : { "obInst" : "true",
"item" : { "key" : "4411", "problem" : { "metamodel" : { "calcChainPattern" : "", "visualControllerPattern" : {
"variableRubricatorKey" : "true", "chainWorkbookKey" : "true", "freeVariables" : "true" } } } } }, "execParams" : {
"name" : "Переменная моделирования 3 (переименованная)", "slice" : { "k" : "0", "id" : "360", "n" : "Переменная моделирования 3", "vis" : "true", "variableKey" : "4590", "stubKey" : "4413", "selections" :
{ "its" : { "Item" : { "id" : { "id" : "4426" }, "variant" : "360"
} } }, "aggregator" : "None", "parametrizedDimensions" : { "its" : { "Item" : {
"dimension" : "0", "parameter" : "0" } } }, "unitInfo" : { "unit" : "4294967295", "measure" : "4294967295", "baseUnit" : "4294967295",
"unitsDimensionKey" : "0" }, "level" : "None" }, "execRenameVariable" : "true" } } } } } }
{ "Envelope" : { "Body" : { "GetMsResult" : { "id" : { "id" : "S84!M!S!C1"
}, "meta" : { "obInst" : { "obDesc" : { "@isShortcut" : "0", "i" : "MODELSPACE", "n" : "Контейнер моделирования",
"k" : "1581", "c" : "5121", "p" : "1580", "h" : "0" } }, "dirty" : "0", "item" : { "k" : "4411",
"id" : "MODEL_DEL", "n" : "model_del", "vis" : "1", "type" : "Problem", "problemMd" : { "metamodel" : { "k" : "4412", "visualController" :
{ "variableRubricatorKey" : "4413", "chainWorkbookKey" : "4445", "freeVariables" : { "its" : { "Item" : { "k" : "0",
"id" : "360", "n" : "Переменная моделирования 3 (переименованная)", "vis" : "1", "variableKey" : "4590", "stubKey" : "4413", "selections" : { "its" : { "Item" :
{ "id" : { "id" : "4426" }, "variant" : "360" } } }, "aggregator" : "None",
"parametrizedDimensions" : { "its" : { "Item" : { "dimension" : "0", "parameter" : "0" } }
}, "unitInfo" : { "unit" : "4294967295", "measure" : "4294967295", "baseUnit" : "4294967295", "unitsDimensionKey" : "0" }, "level" : "None" }
} } } } } } } } } } }
Функция GetMsRenameVar переименовывает указанную переменную. Входные параметры:
ms. Экземпляр открытого контейнера моделирования;
modelKey. Ключ модели, содержащей переменную;
varSlice. Срез данных, соответствующий переменной.
В результате выполнения функция возвращает модель, содержащую изменённую переменную.
public static MsItem GetMsRenameVar(MsId ms, ulong modelKey, MsFormulaTransformSlice varSlice) { var getMsOp = new GetMs(); getMsOp.tMs = ms; getMsOp.tArg = new GetMsArg() { // Задаем шаблон изменения данных pattern = new MsMdPattern() { item = new MsItemPattern()
{ key = modelKey, problem = new MsProblemPattern() { metamodel = new MsMetaModelPattern() { calcChainPattern = new MsCalculationChainPattern() { }, visualControllerPattern = new MsMetaModelVisualControllerPattern()
{ variableRubricatorKey = true, chainWorkbookKey = true, freeVariables = true } } } } }, execParams = new MsMdExecParams()
{ name = varSlice.n + " (переименованная)";, slice = varSlice, execRenameVariable = true } }; // Создаем прокси-объект для выполнения операции var somClient = new SomPortTypeClient(); // Задаем параметры выполнения операции var result = somClient.GetMs(getMsOp); return result.meta.item; }
См. также: