Ниже приведен пример использования операции SetMs для создания копии сценария моделирования. В запросе передаются: экземпляр открытого контейнера моделирования, параметры выполнения операции и добавляемый сценарий. В результате выполнения операция возвращает дерево сценариев модели.
{ "Envelope" : { "Body" :
{ "SetMs" : { "tMs" : { "id" : "S3!M!S!C1" }, "tArg" : { "pattern" :
{ "obInst" : "true", "scenarios" : "Add" }, "meta" : { "scenarios" : { "nodes" : {
"it" : { "@isFolder" : "false", "k" : "0", "id" : "", "n" : "Базовый (копия)", "vis" : "true", "scenDesc" : { "@isShortcut" : "false",
"i" : "OBJ1628", "n" : "Базовый", "k" : "1628", "c" : "5124", "p" : "1627", "h" : "false" } } } }
}, "metaGet" : { "obInst" : "true", "scenarios" : "Get" } } } } } }
{ "Envelope" : { "Body" : { "SetMsResult" : { "id" :
{ "id" : "S3!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" : "5131", "id" : "OBJ5131", "n" : "Базовый (копия)", "vis" : "1", "scenDesc" : {
"@isShortcut" : "0", "i" : "OBJ5131", "n" : "Базовый (копия)", "k" : "5131", "c" : "5124", "p" : "1627", "h" : "0" } }, {
"@isFolder" : "0", "k" : "5133", "id" : "OBJ5133", "n" : "Базовый (копия)", "vis" : "1", "scenDesc" : { "@isShortcut" : "0", "i" : "OBJ5133", "n" : "Базовый (копия)",
"k" : "5133", "c" : "5124", "p" : "1627", "h" : "0" } }, { "@isFolder" : "0", "k" : "5135", "id" : "OBJ5135",
"n" : "Базовый (копия)", "vis" : "1", "scenDesc" : { "@isShortcut" : "0", "i" : "OBJ5135", "n" : "Базовый (копия)", "k" : "5135", "c" : "5124", "p" : "1627",
"h" : "0" } } ] } } } } } } }
Функция SetMsScenarioCopy создаёт копию указанного сценария моделирования. Входные параметры:
ms. Экземпляр открытого контейнера моделирования;
modelKey. Ключ изменяемой модели;
sc. Копируемый сценарий.
В результате выполнения функция возвращает дерево сценариев модели.
public static MsScenarioTree SetMsScenarioCopy(MsId ms, ulong modelKey, MsScenarioNode sc) { sc.isFolder = false; sc.k = 0; sc.n = sc.n + " (копия)"; sc.vis = true; sc.id = ""; sc.p = 0; sc.moveTo = null; var setMsOp = new SetMs(); // Задаем параметры выполнения операции setMsOp.tMs = ms; setMsOp.tArg = new SetMsArg() { pattern = new MsMdPattern() {scenarios = ListOperation.Add}, meta = new MsMd() { scenarios = new MsScenarioTree { nodes = new MsScenarioNode[] { sc } } }, metaGet = new MsMdPattern() { scenarios = ListOperation.Get } }; // Создаем прокси-объект для выполнения операции var somClient = new SomPortTypeClient(); // Выполняем операцию var result = somClient.SetMs(setMsOp); return result.meta.scenarios; }
См. также: