Приведено использование операции OpenMs для открытия контейнера моделирования. В запросе передается моникёр контейнера. В ответе приходит моникёр открытого экземпляра контейнера моделирования. Какие-либо дополнительные данные не извлекаются.
В примере C# используется функция FindObjectById, код которой приведен в примере «Получение описания объекта по его идентификатору».
{
"OpenMs" :
{
"tOb" :
{
"id" : "GEGBFKLHGPMOFOAEIMFEBNKILLAKNJBEIKKFGPFLECLAJIMA!M!306480"
},
"tArg" :
{
"args" :
{
"onlyProblem" : "false"
},
"metaGet" :
{
"obInst" : "true",
"items" : "Get"
}
}
}
}
{
"OpenMsResult" :
{
"id" :
{
"id" : "GEGBFKLHGPMOFOAEIMFEBNKILLAKNJBEIKKFGPFLECLAJIMA!M!S!CHKGAJOLHGPMOFOAEAOFBOAAENDLELDBEHIBGFCIGDKEAEIKH"
},
"meta" :
{
"obInst" :
{
"obDesc" :
{
"@ds" : "ключ 306480",
"@isShortcut" : "0",
"@isLink" : "0",
"@ver" : "5",
"@hf" : "0",
"i" : "MODELSPACE",
"n" : "Контейнер моделирования",
"k" : "306480",
"c" : "5121",
"p" : "1580",
"h" : "0",
"hasPrv" : "0",
"ic" : "0",
"trackElementDependents" : "0",
"isPermanent" : "1",
"isTemp" : "0"
}
},
"dirty" : "0",
"items" :
{
"its" :
{
"it" :
[
{
"k" : "306485",
"id" : "SCEN$TREE",
"n" : "Дерево сценариев",
"vis" : "1",
"type" : "Folder"
},
{
"k" : "306493",
"id" : "OBJ306493",
"n" : "Переменные",
"vis" : "1",
"type" : "Folder"
},
{
"k" : "306486",
"id" : "OBJ306486",
"n" : "Переменная A",
"vis" : "1",
"type" : "Variable"
},
{
"k" : "306490",
"id" : "OBJ306490",
"n" : "Переменная B",
"vis" : "1",
"type" : "Variable"
},
{
"k" : "306494",
"id" : "OBJ306494",
"n" : "Модель (Детерминированное уравнение)",
"vis" : "1",
"type" : "Model"
},
{
"k" : "306495",
"id" : "OBJ306495",
"n" : "Метамодель",
"vis" : "1",
"type" : "MetaModel"
},
{
"k" : "306496",
"id" : "OBJ306496",
"n" : "Задача моделирования",
"vis" : "1",
"type" : "Problem"
}
]
}
}
},
"readOnly" : "0"
}
}
public static OpenMsResult OpenMs(MbId mb, string msId)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Задаём параметры выполнения операции
var tMsOp = new OpenMs()
{
tArg = new OpenMsArg()
{
args = new MsOpenArgs()
{
onlyProblem = false
},
metaGet = new MsMdPattern()
{
items = ListOperation.Get
}
},
// Формирование моникера объекта
tOb = new OdId() { id = mb.id + '!' + FindObjectById(mb, msId).k }
};
// Открытие контейнера моделирования
var result = somClient.OpenMs(tMsOp);
return result;
}
См. также: