Ниже приведен пример использования операции SetMs для удаления уравнения. В запросе передаются: экземпляр открытого контейнера моделирования, параметры выполнения операции и шаблон получения измененных данных. В результате выполнения операция возвращает модель без уравнения.
{
"Envelope" :
{
"Body" :
{
"SetMs" :
{
"tMs" :
{
"id" : "S46!M!S!C1"
},
"tArg" :
{
"pattern" :
{
"obInst" : "true"
},
"meta" : "",
"metaGet" :
{
"obInst" : "true",
"scenarios" : "Get",
"item" :
{
"key" : "4411",
"problem" :
{
"metamodel" :
{
"calculationChain" : "Get",
"mmParams" : "Get",
"tag" : "true",
"calcChainPattern" :
{
"modelPattern" :
{
"transform" :
{
"transformVariable" :
{
"slices" : "Get",
"transformSlice" :
{
"selection" : "Get"
}
}
}
}
},
"visualControllerPattern" :
{
"variableRubricatorKey" : "true",
"chainWorkbookKey" : "true",
"freeVariables" : "true"
}
},
"scenarios" : "Get",
"details" : "true"
}
}
},
"execParams" :
{
"modelKeys" :
{
"l" : "4454"
},
"execSaveMetaModel" : "true",
"execSaveProblem" : "true",
"execRemoveModel" : "true"
} } } } } }
{
"Envelope" :
{
"Body" :
{
"SetMsResult" :
{
"id" :
{
"id" : "S46!M!S!C1"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@isShortcut" : "0", "i" : "MODELSPACE", "n" : "Контейнер моделирования", "k" : "1581", "c" : "5121", "p" : "1580",
"h" : "0"
}
},
"dirty" : "0",
"scenarios" :
{
"nodes" :
{
"it" :
[
{
"@isFolder" : "0",
"k" : "1628",
"id" : "OBJ1628",
"n" : "Базовый",
"vis" : "1",
"scenDesc" :
{
"@isShortcut" : "0",
"i" : "OBJ1628",
"n" : "Базовый", "k" : "1628", "c" : "5124", "p" : "1627", "h" : "0" } },
{
"@isFolder" : "0",
"k" : "4182",
"id" : "OBJ4182",
"n" : "Новый сценарий",
"vis" : "1",
"scenDesc" :
{
"@isShortcut" : "0", "i" : "OBJ4182", "n" : "Новый сценарий", "k" : "4182", "c" : "5124", "p" : "1627", "h" : "0" }
}
]
}
},
"item" :
{
"k" : "4411",
"id" : "MODEL_DEL",
"n" : "model_del",
"vis" : "1",
"type" : "Problem",
"problemMd" :
{
"metamodel" :
{
"k" : "4412",
"calculationChain" :
{
"its" : ""
},
"mmParams" :
{
"its" : ""
},
"tag" :
{
"props" :
{
"graph" : "<mxGraphModel><root><mxCell id="0"\/><mxCell id="1" parent="0"\/><mxCell id="2" style="fillColor=#F7F7F7;strokeColor=#DEDEDE;fontFamily=Calibri;fontSize=12;fontStyle=1;rounded=1;" parent="1" vertex="1" PPVariable="1" StubKey="-1" IsWasCreatedLocally="1"><Object variableKey="4447" modelKey="-1" CellName="Input Varable" as="value"><Object k="0" n="Input Varable" vis="1" variableKey="4447" stubKey="4413" aggregator="None" level="None" as="variableSlice"><Object as="selections"><Object as="its"><Array as="Item"><Object variant="349"><Object msid="4426" id="4426" as="id"\/><\/Object><\/Array><\/Object><\/Object><Object as="parametrizedDimensions"><Object as="its"><Array as="Item"><Object dimension="0" parameter="0"\/><\/Array><\/Object><\/Object><Object unit="4294967295" measure="4294967295" baseUnit="4294967295" unitsDimensionKey="0" as="unitInfo"\/><\/Object><\/Object><mxGeometry x="72" y="24" width="150" height="50" as="geometry"\/><\/mxCell><mxCell id="3" style="fillColor=#D5DEF7;strokeColor=#85A0E3;fontFamily=Calibri;fontSize=12;fontStyle=1;rounded=1;" parent="1" vertex="1" PPVariable="1" StubKey="-1" IsWasCreatedLocally="1"><Object variableKey="4449" modelKey="4454" CellName="Output Varable" as="value"><Object k="0" n="Output Varable" vis="1" variableKey="4449" stubKey="4413" aggregator="None" level="None" as="variableSlice"><Object as="selections"><Object as="its"><Array as="Item"><Object variant="350"><Object msid="4426" id="4426" as="id"\/><\/Object><\/Array><\/Object><\/Object><Object as="parametrizedDimensions"><Object as="its"><Array as="Item"><Object dimension="0" parameter="0"\/><\/Array><\/Object><\/Object><Object unit="4294967295" measure="4294967295" baseUnit="4294967295" unitsDimensionKey="0" as="unitInfo"\/><\/Object><\/Object><mxGeometry x="320" y="20" width="150" height="50" as="geometry"\/><\/mxCell><mxCell id="4" style="startArrow=none;endArrow=open;endSize=7;rounded=1;elbow=horizontal;editable=0;edgeStyle=recursiveEdgeStyle" edge="1" parent="1" source="2" target="3"><mxGeometry relative="1" as="geometry"\/><\/mxCell><\/root><\/mxGraphModel>"
}
},
"visualController" :
{
"variableRubricatorKey" : "4413",
"chainWorkbookKey" : "4445",
"freeVariables" :
{
"its" :
{
"Item" :
[
{
"k" : "0", "id" : "349", "n" : "Input Varable", "vis" : "1", "variableKey" : "4447", "stubKey" : "4413",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "4426"
},
"variant" : "349"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "None"
},
{
"k" : "0",
"id" : "350",
"n" : "Output Varable",
"vis" : "1",
"variableKey" : "4449",
"stubKey" : "4413",
"selections" :
{
"its" :
{
"Item" :
{
"id" :
{
"id" : "4426"
},
"variant" : "350"
}
}
},
"aggregator" : "None",
"parametrizedDimensions" :
{
"its" :
{
"Item" :
{
"dimension" : "0",
"parameter" : "0"
}
}
},
"unitInfo" :
{
"unit" : "4294967295",
"measure" : "4294967295",
"baseUnit" : "4294967295",
"unitsDimensionKey" : "0"
},
"level" : "None" } ] } } }
},
"scenarios" :
{
"its" : ""
},
"details" :
{
"period" :
{
"identificationStartDate" : "1990-01-01", "identificationEndDate" : "2012-08-29", "forecastStartDate" : "2012-08-30", "forecastEndDate" : "2020-01-01", "identificationStartDateParamID" : "", "identificationEndDateParamID" : "",
"forecastStartDateParamID" : "", "forecastEndDateParamID" : "", "autoPeriod" : "0", "identificationStartOffset" : "0", "identificationEndOffset" : "0",
"forecastEndOffset" : "0" }, "currentPoint" : "2012-08-30" } } } } } } } }
Функция SetMsDelEq удаляет указанное уравнение из модели. Входные параметры:
ms. Экземпляр открытого контейнера моделирования;
modelKey. Ключ модели, содержащей уравнение;
eqKey. Ключ открытого уравнения.
В результате выполнения функция возвращает модель без уравнения.
public static MsItem SetMsDelEq(MsId ms, ulong modelKey, long eqKey)
{
var setMsOp = new SetMs();
setMsOp.tMs = ms;
setMsOp.tArg = new SetMsArg()
{ // Задаем шаблон изменения данных
pattern = new MsMdPattern() { },
// Задаем данные, которые необходимо изменить
meta = new MsMd() { },
// Задаём шаблон извлечения измененных данных
metaGet = new MsMdPattern()
{
scenarios = ListOperation.Get,
item = new MsItemPattern()
{
key = modelKey,
problem = new MsProblemPattern()
{
details = true,
scenarios = ListOperation.Get,
metamodel = new MsMetaModelPattern()
{
calculationChain = ListOperation.Get,
mmParams = ListOperation.Get,
tag = true,
calcChainPattern = new MsCalculationChainPattern()
{
modelPattern = new MsModelPattern()
{
transform = new MsFormulaTransformPattern()
{
transformVariable = new MsFormulaTransformVariablePattern()
{
slices = ListOperation.Get,
transformSlice = new MsFormulaTransformSlicePattern()
{selection = ListOperation.Get}
}
}
}
},
visualControllerPattern = new MsMetaModelVisualControllerPattern()
{
variableRubricatorKey = true,
chainWorkbookKey = true,
freeVariables = true
}
}
}
}
},
execParams = new MsMdExecParams()
{
execSaveProblem = true,
execSaveMetaModel = true,
modelKeys = new long[] { eqKey },
execRemoveModel = true
}
}; // Создаем прокси-объект для выполнения операции
var somClient = new SomPortTypeClient();
// Задаем параметры выполнения операции
var result = somClient.SetMs(setMsOp);
return result.meta.item;
}
См. также:
SOAP