SetModuleResult SetModule(OdId tObject, SetModuleArg tArg)
tObject. Моникёр модуля.
tArg. Параметры выполнения операции.
Операция SetModule используется для настройки модуля и запуска алгоритмов, которые в нём реализованы.
Для выполнения операции укажите в параметре tObject моникёр объекта репозитория, являющегося модулем. Моникёр объекта может быть получен при выполнении операции GetObjects. В параметре tArg.meta указываются новые метаданные модуля, которые необходимо применить. Операция позволяет изменить список ссылок на другие сборки. Сохранение изменений осуществляется при выполнении операции. Параметр tArg.run позволяет запустить точку входа, которая должна быть реализована в модуле.
Результатом выполнения операции будет список сообщений, которые могут выводиться выполняемым кодом в консоль, а также сообщения компилятора.
Ниже приведён пример использования операции SetModule для запуска на выполнение модуля. В запросе передаётся моникёр модуля в репозитории. В ответе приходит текст сообщений, которые выводятся в консоль при выполнении. В примере C# используется функция FindObjectById, код которой приведен в примере «Получение описания объекта по его идентификатору».
{
"SetModule" :
{
"tObject" :
{
"id" : "S1!M!172002"
},
"tArg" :
{
"dontCompile" : "true",
"run" : "true"
}
}
}
{
"SetModuleResult" :
{
"consoleOutput" : "The main procedure is running. The object is created. "
}
}
public static SetModuleResult RunModule(MbId mb, string modId)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tSet = new SetModule()
{
tArg = new SetModuleArg()
{
dontCompile = true,
run = true
},
//Формирование моникёра объекта
tObject = new OdId() { id = mb.id + "!" + FindObjectById(mb, modId).k }
};
//Запустить модуль
var result = somClient.SetModule(tSet);
return result;
}
См. также: