Для какой-либо ознакомительной работы с веб-сервисом может быть организована работа через гостевое соединение. Для работы такого соединения предварительно на BI-сервере необходимо в реестре сохранить учётные данные пользователя, которые будут использоваться для авторизации в репозитории. Для этого в командной строке от имени администратора запустите утилиту PP.Util с параметрами /save_creds <id репозитория> /gc <имя пользователя>. Введите пароль и нажмите клавиши ENTER для завершения процедуры сохранения учётных данных.
После того, как учётные данные сохранены, имеется два варианта создания гостевого соединения:
Использовать в операциях фиксированный моникёр. Фиксированный моникёр основан на идентификаторе описания репозитория и имеет следующий формат: <id описания репозитория>!Guest!M. При первом выполнении любой операции с моникёром данного вида на BI-сервере создаётся гостевое соединение. Используйте данный моникёр в качестве префикса для выполнения других операций;
Создать гостевое соединение с помощью операции OpenMetabase. Для выполнения операции укажите в поле tDef.id идентификатор описания репозитория, в учётных данных пользователя в поле tCreds.useGuestCreds укажите значение true, а в обязательном поле tCreds.pass пустое значение. При выполнении операции будет создано гостевое соединение и возвращён моникёр для дальнейшей работы.
При работе через гостевое соединение возможность выполнять операции будет для тех объектов, на которые имеются права у сохранённого пользователя. Для закрытия гостевого соединения используйте операцию CloseMetabase.
Пример получения информации о гостевом соединении. Если гостевое соединение еще не создано, то оно будет создано автоматически при выполнении операции GetSystemInfo.
{
"GetSystemInfo" :
{
"tArg" :
{
"metabase" :
{
"id" : "WAREHOUSE!Guest!M"
}
}
}
}
{
"GetSystemInfoResult" :
{
"version" : "Релиз 10.6.10067.0 Master x64",
"release" : "10.6",
"platformInfo" : "x64",
"osType" : "Windows",
"osInfo" : "Windows 10 x64",
"metabaseSessionTimeout" : "00:30:00.000",
"metabaseStoreBinaryCount" : "0",
"metabaseLocale" : "1049",
"metabaseConnectionPoolMaxCount" : "50"
}
}
public static GetSystemInfoResult SimpleGuestConnect(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;
}
Пример создания гостевого соединения с помощью операции OpenMetabase:
{
"OpenMetabase" :
{
"tDef" :
{
"id" : "WAREHOUSE"
},
"tCreds" :
{
"pass" : "",
"useGuestCreds" : "true"
},
"tArg" : ""
}
}
{
"OpenMetabaseResult" :
{
"id" : "ABMDEDIPOAODGOAEILNHAJACNGILILPEMLBKDENDDGHECHAJ!M",
"sessKey" : "339878",
"sessCookie" : "C2",
"version" : "163",
"defLocale" : "1049",
"driver" : "2"
}
}
public static OpenMetabaseResult GuestConnectByOpenMetabase(string mbDefinitionId)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tOpen = new OpenMetabase()
{
tArg = new OpenMetabaseArg(),
tCreds = new UserCreds()
{
useGuestCreds = true, // Признак использования гостевого соединения
pass = string.Empty // Пустой пароль т.к. поле обязательное
},
tDef = new MbDef()
{
id = mbDefinitionId // Идентификатор описание репозитория, к которому производится подключение
}
};
// Создание гостевого соединения
var result = somClient.OpenMetabase(tOpen);
return result;
}
См. также: