SemanticLayerMetaResult OpenSemanticLayer(OdId tObject, OpenSemanticLayerMetaArg tArg)
tObject. Моникёр объекта репозитория, являющегося моделью данных.
tArg. Параметры выполнения операции.
Операция OpenSemanticLayer открывает модель данных.
Для выполнения операции укажите в поле tObject моникёр объекта, являющегося моделью данных, а в поле tArg параметры открытия. В поле tArg.args указываются режим открытия модели данных. В поле tArg.meta задайте пустые значения или значения по умолчанию для тех полей с метаданными, значения которых необходимо получить.
Результатом работы операции будет моникёр открытого экземпляра модели данных, а также полученные метаданные, если были определены соответствующие поля.
Дальнейшая работа с моделью данных осуществляется с помощью операций GetSemanticLayerMeta, SetSemanticLayerMeta, а также ряда специфических операций, предназначенных для выполнения определённых действий. Для закрытия открытого экземпляра информационной панели используйте операцию CloseSemanticLayer.
Ниже приведён пример открытия экземпляра модели данных на редактирование. В запросе передаётся моникёр объекта репозитория, являющегося моделью данных. В ответе возвращается моникёр открытого экземпляра модели данных. Какие-либо дополнительные метаданные не извлекаются.
В примере C# используется функция FindObjectById, код которой приведён в примере «Получение описания объекта по его идентификатору».
{
"OpenSemanticLayer" :
{
"tObject" :
{
"id" : "OBNIHFAHPABDGOAEGDPOIOEEEEFKFMOEBLJPNILDEGIADEAK!M!358178"
},
"tArg" :
{
"args" :
{
"openForEdit" : "true"
}
}
}
}
{
"OpenSemanticLayerResult" :
{
"id" :
{
"id" : "OBNIHFAHPABDGOAEGDPOIOEEEEFKFMOEBLJPNILDEGIADEAK!M!S!POFIOKJAHPABDGOAEHEMNLOGBNPHIANDECKECPPGGIBIEIJCA"
}
}
}
public static SemanticLayerMetaResult OpenSemanticLayer(MbId mb, string objectId)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tOpen = new OpenSemanticLayer()
{
tArg = new OpenSemanticLayerMetaArg()
{
args = new SemanticLayerMetaOpenArgs()
{
openForEdit = true
}
},
// Формирование моникёра объекта
tObject = new OdId() { id = mb.id + "!" + FindObjectById(mb, objectId).k }
};
// Открытие модели данных
var result = somClient.OpenSemanticLayer(tOpen);
return result;
}
См. также: