Ниже приведен пример использования операции SetMs для удаления переменной из уравнения. В запросе передаются: экземпляр открытого контейнера моделирования, параметры выполнения операции и индекс удаляемой переменной. В результате выполнения операция возвращает изменённое уравнение.
{ "Envelope" : { "Body" : { "SetMs" : { "tMs" : { "id" : "S119!M!S!C1" }, "tArg" :
{ "pattern" : { "obInst" : "true" }, "meta" : "", "metaGet" : { "obInst" : "true", "item" :
{ "key" : "4411", "problem" : { "metamodel" : { "calculationChain" : "Get", "tag" : "false", "calcChainPattern" : {
"modelPattern" : { "generatedName" : "true" } } } } } }, "execParams" :
{ "modelsFactors" : { "its" : { "Item" : { "modelKey" : "4996", "factorIndex" : "1" }
} }, "execSaveMetaModel" : "true", "execSaveProblem" : "true", "execRemoveFactor" : "true" } } } } } }
{ "Envelope" : { "Body" : { "SetMsResult" :
{ "id" : { "id" : "S119!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", "calculationChain" : { "its" : { "Item" : { "k" : "4996",
"id" : "OBJ4996", "n" : "Varable[t] = A1*Varable[t] + A2*БД временных рядов!d12[t]", "vis" : "1", "type" : "Model", "excluded" : "0", "model" : { "generatedName" : "Varable[t] = A1*Varable[t]" } }
} }, "visualController" : "" } } } } } } } }
Функция SetMsRemoveFactor удаляет из уравнения указанную переменную. Входные параметры:
ms. Экземпляр открытого контейнера моделирования;
modelKey. Ключ модели, содержащей переменную;
eqKey. Ключ уравнения, из которого удаляется переменная.
В результате выполнения функция возвращает модель, содержащую изменённое уравнение.
public static MsItem SetMsRemoveFactor(MsId ms, ulong modelKey, ulong eqKey) { var setMsOp = new SetMs(); setMsOp.tMs = ms; setMsOp.tArg = new SetMsArg() { // Задаем шаблон изменения данных pattern = new MsMdPattern() { }, meta = new MsMd() { }, // Задаём шаблон извлечения данных metaGet = new MsMdPattern() {
item = new MsItemPattern() { key = modelKey, problem = new MsProblemPattern() { metamodel = new MsMetaModelPattern() { tag = false, calculationChain = ListOperation.Get, calcChainPattern = new MsCalculationChainPattern()
{ modelPattern = new MsModelPattern() { generatedName = true } } } } } },// Задаём параметры выполнения операции execParams = new MsMdExecParams() { execSaveProblem = true,
execSaveMetaModel = true, execRemoveFactor = true, modelsFactors = new MsModelsFactors() { its = new MsModelFactor[] { new MsModelFactor() { // Задаём ключ уравнения modelKey = eqKey, // Задаём индекс переменной
factorIndex = 1 } } } } }; // Создаем прокси-объект для выполнения операции var somClient = new SomPortTypeClient(); // Выполняем операцию var result = somClient.SetMs(setMsOp); return result.meta.item; }
См. также: