Для какой-либо ознакомительной работы с веб-сервисом может быть организована работа через гостевое соединение. Для работы такого соединения предварительно на BI-сервере необходимо в реестре сохранить учётные данные пользователя, которые будут использоваться для авторизации. Для этого в командной строке от имени администратора запустите утилиту PP.Util с параметрами /save_creds <id репозитория> /gc <имя пользователя>. При работе через гостевое соединение будет возможность выполнять операции для тех объектов, на которые имеются права доступа у пользователя, чьи учётные данные были сохранены.
После этого для выполнения операций веб-сервиса может быть использован моникёр следующего вида: «<id репозитория>!Guest!M». При первом обращении с моникером данного вида на BI-сервере создаётся гостевое соединение. Для выполнения операций, работающих с объектами репозитория, моникёр объектов формируется по тому же принципу, как и при обычном соединении: «<id репозитория>!Guest!M!<id или key объекта>».
Закрывать гостевое соединение не требуется, оно будет завершено автоматически по истечению времени ожидания, заданного в настройках BI-сервера.
Примечание. При работе с гостевым соединением операции OpenMetabase и CloseMetabase не используются.
Пример получения информации о гостевом соединении. Если гостевое соединение еще не создано, то оно будет создано автоматически при выполнении операции GetSystemInfo.
{
"GetSystemInfo" :
{
"tArg" :
{
"metabase" :
{
"id" : "WAREHOUSE!Guest!M"
}
}
}
}
{
"GetSystemInfoResult" :
{
"version" : "Релиз 10.4.10052.0 Master x64",
"release" : "10.4",
"platformInfo" : "x64",
"osType" : "Windows",
"osInfo" : "Windows 10 x64",
"metabaseSessionTimeout" : "00:30:00.000",
"metabaseStoreBinaryCount" : "0",
"metabaseLocale" : "1049",
"metabaseConnectionPoolMaxCount" : "50"
}
}
public static GetSystemInfoResult TestGuestConnect(string mbDefinitionId)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tGet = new GetSystemInfo()
{
tArg = new GetSystemInfoArg()
{
metabase = new MbId() { id = mbDefinitionId + "!Guest!M" }
}
};
// Получение информации о веб-сервисе
var result = somClient.GetSystemInfo(tGet);
return result;
}
См. также: