Приведено использование операции OpenMs для открытия контейнера моделирования. В запросе передается моникёр контейнера. В ответе приходит моникёр открытого экземпляра контейнера моделирования. Какие-либо дополнительные данные не извлекаются.
{ "OpenMs" : { "tOb" : { "id" : "DHBHAJPMANJBFOAEDNFOJNMAGMDOKOGEAIHDMOJANENOLHHL!M!1581" }, "tArg" : { "args" : { "onlyProblem" : "false" }, "metaGet" : { "obInst" : "true", "items" : "Get" } } } }
{ "OpenMsResult" : { "id" : { "id" : "DHBHAJPMANJBFOAEDNFOJNMAGMDOKOGEAIHDMOJANENOLHHL!M!S!CMGOACMPMANJBFOAEJBMMEIECKBFBGGDEMJDDGLLEJCOMNOAM" }, "meta" : { "obInst" : { "obDesc" : { "@fullUrl" : "http:\/\/v-shp-development.dev.fs.fsight.world\/", "@isShortcut" : "0", "@isLink" : "0", "@ver" : "0", "@hf" : "0", "i" : "MODELSPACE", "n" : "Контейнер моделирования", "k" : "1581", "c" : "5121", "p" : "1580", "h" : "0", "hasPrv" : "0", "ic" : "0", "isPermanent" : "1", "isTemp" : "0" } }, "dirty" : "0", "items" : { "its" : { "it" : [ { "k" : "1627", "id" : "SCEN$TREE", "n" : "Дерево сценариев", "vis" : "1", "type" : "Folder" }, { "k" : "2564", "id" : "OBJ2564", "n" : "Модель", "vis" : "1", "type" : "Problem" }, { "k" : "2803", "id" : "TEMP_MODEL", "n" : "TEMP_MODEL", "vis" : "1", "type" : "Problem" }, { "k" : "2846", "id" : "OBJ2846", "n" : "Модель", "vis" : "1", "type" : "Problem" }, { "k" : "2889", "id" : "OBJ2889", "n" : "Модель22", "vis" : "1", "type" : "Problem" }, { "k" : "2989", "id" : "OBJ2804_COPY1", "n" : "Модель - Копия (1)", "vis" : "1", "type" : "MetaModel" }, { "k" : "2991", "id" : "TEMP_MODEL_COPY2", "n" : "TEMP_MODEL - Копия (2)", "vis" : "1", "type" : "Problem" }, { "k" : "2992", "id" : "OBJ2804_COPY2", "n" : "Модель - Копия (2)", "vis" : "1", "type" : "MetaModel" }, { "k" : "3162", "id" : "OBJ3162", "n" : "temp", "vis" : "1", "type" : "Folder" }, { "k" : "3163", "id" : "OBJ3163", "n" : "Переменная моделирования3163", "vis" : "1", "type" : "Variable" }, { "k" : "3166", "id" : "OBJ3166", "n" : "Модель3166", "vis" : "1", "type" : "Model" }, { "k" : "9092", "id" : "OBJ9092", "n" : "Модель", "vis" : "1", "type" : "Model" }, { "k" : "3392", "id" : "LINEARR_MODEL", "n" : "LinearR", "vis" : "1", "type" : "Problem" }, { "k" : "3814", "id" : "MULTI_MODEL", "n" : "MultiModel", "vis" : "1", "type" : "Problem" }, { "k" : "4411", "id" : "MODEL_DEL", "n" : "model_del", "vis" : "1", "type" : "Problem" }, { "k" : "5190", "id" : "OBJ5190", "n" : "Модель", "vis" : "1", "type" : "Problem" }, { "k" : "5247", "id" : "OBJ5247", "n" : "Модель", "vis" : "1", "type" : "Problem" } ] } } }, "readOnly" : "0" } }
Функция OpenMs открывает контейнер моделирования. Моникёр соединения с репозиторием и идентификатор контейнера передаются в качестве входных параметров. В примере используется функция FindObjectById, код которой приведен в разделе «Получение описания объекта по его идентификатору». После выполнения функция вернет результат выполнения операции OpenMs.
public static OpenMsResult OpenMs(MbId mb, string msId) { // Получаем ключ контейнера моделирования ulong msKey = FindObjectById(mb, msId).k; // Задаем параметры выполнения операции var tMsOp = new OpenMs(); tMsOp.tArg = new OpenMsArg() { args = new MsOpenArgs() }; tMsOp.tOb = new OdId(); // Формируем моникёр контейнера моделирования tMsOp.tOb.id = mb.id + "!" + msKey.ToString(); // Создаем прокси-объект для выполнения операции var somClient = new SomPortTypeClient(); // Открываем контейнер моделирования OpenMsResult tResult = somClient.OpenMs(tMsOp); return tResult; }
См. также: