Приведено использование операции 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;
}
См. также:
SOAP