Для какой-либо ознакомительной работы с веб-сервисом может быть организована работа через гостевое соединение. Для работы такого соединения предварительно на BI-сервере необходимо в реестре сохранить учетные данные пользователя, которые будут использоваться для авторизации. Для этого в командной строке от имени администратора запустите утилиту PP.Util с параметрами /save_creds <id репозитория> /gc <имя пользователя>. При работе через гостевое соединение будет возможность выполнять операции для тех объектов, на которые имеются права доступа у пользователя, чьи учетные данные были сохранены.
После этого для выполнения операций веб-сервиса может быть использован моникёр следующего вида: «<id репозитория>!Guest!M». При первом обращении с моникером данного вида на BI-сервере создается гостевое соединение. Для выполнения операций, работающих с объектами репозитория, моникёр объектов формируется по тому же принципу, как и при обычном соединении: «<id репозитория>!Guest!M!<id или key объекта>».
Закрывать гостевое соединение не требуется, оно будет завершено автоматически по истечению времени ожидания, заданного в настройках BI-сервера.
Примечание. При работе с гостевым соединением операции OpenMetabase и CloseMetabase не используются.
Пример проверки статуса состояния гостевого соединения. Если гостевое соединение еще не создано, то оно будет создано автоматически при выполнении операции GetStatus.
{ "GetStatus" : { "tArg" : { "metabase" : { "id" : "PPREPOSITORY!Guest!M" } } }}
{ "GetStatusResult" : { "version" : "Предварительная версия 9.7.23417 [юникод]", "release" : "9.7", "metabaseSessionTimeout" : "00:30:00.000", "metabaseStoreBinaryCount" : "0", "metabaseLocale" : "1033", "metabaseConnectionPoolMaxCount" : "0" }}
public static GetStatusResult TestGuestConnect(string mbDefinitionId)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tStatus = new GetStatus()
{
tArg = new GetStatusArg()
{
metabase = new MbId() { id = mbDefinitionId + "!Guest!M" }
}
};
//Получение информации о веб-сервисе
var result = somClient.GetStatus(tStatus);
return result;
}
См. также: