GetCubeResult OpenCube(OdId tOb, OpenCubeArg tArg)
tOb. Моникёр объекта, являющегося кубом.
tArg. Параметры открытия куба.
Операция OpenCube открывает куб репозитория и возвращает контекст для работы со структурой куба.
Операция позволяет получить доступ к структуре и настройкам различных кубов репозитория. Для выполнения операции укажите в поле tOb моникёр объекта, являющегося кубом, а в поле tArg параметры открытия. Моникёр объекта может быть получен при выполнении операции GetObjects. В поле tArg.metaGet указывается шаблон, в соответствии с которым будут извлекаться метаданные куба при открытии. Если поле tArg.metaGet не задано, то результатом работы операции будет только моникёр открытого экземпляра куба.
Дальнейшая работа со структурой куба осуществляется с помощью операций GetCube и SetCube. Для закрытия экземпляра куба используйте операцию CloseCube.
Ниже приведён пример открытия структуры куба на редактирование. В запросе передаётся моникёр объекта репозитория, являющегося кубом. В ответе возвращается моникёр открытого экземпляра куба.
В примере C# используется функция FindObjectById, код которой приведён в примере «Получение описания объекта по его идентификатору».
{
"OpenCube" :
{
"tOb" :
{
"id" : "DJIDPDNFAJIEGOAEFGBFAIAOIJBNELFEKJMNBFEFGMEEHCKG!M!5857"
},
"tArg" :
{
"args" :
{
"bind" : "true",
"openForEdit" : "true"
}
}
}
}
{
"OpenCubeResult" :
{
"id" :
{
"id" : "DJIDPDNFAJIEGOAEFGBFAIAOIJBNELFEKJMNBFEFGMEEHCKG!M!S!CJFAIFLNFAJIEGOAENFOLPMFKLFMJJPPEOLLHBIJJMKBKEMCM"
}
}
}
public static GetCubeResult OpenCube(MbId mb, string cubeId)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tOpen = new OpenCube()
{
tArg = new OpenCubeArg()
{
args = new CubeOpenArgs()
{
bind = true,
openForEdit = true
}
},
tOb = new OdId() { id = mb.id + "!" + FindObjectById(mb, cubeId).k }
};
// Открытие куба
var tResult = somClient.OpenCube(tOpen);
return tResult;
}
См. также: