Использование гостевого подключения

Для какой-либо ознакомительной работы с веб-сервисом может быть организована работа через гостевое соединение. Для работы такого соединения предварительно на BI-сервере необходимо в реестре сохранить учётные данные пользователя, которые будут использоваться для авторизации. Для этого в командной строке от имени администратора запустите утилиту PP.Util с параметрами /save_creds  <id репозитория> /gc <имя пользователя>. При работе через гостевое соединение будет возможность выполнять операции для тех объектов, на которые имеются права доступа у пользователя, чьи учётные данные были сохранены.

После этого для выполнения операций веб-сервиса может быть использован моникёр следующего вида: «<id репозитория>!Guest!M». При первом обращении с моникером данного вида на BI-сервере создаётся гостевое соединение. Для выполнения операций, работающих с объектами репозитория, моникёр объектов формируется по тому же принципу, как и при обычном соединении: «<id репозитория>!Guest!M!<id или key объекта>».

Закрывать гостевое соединение не требуется, оно будет завершено автоматически по истечению времени ожидания, заданного в настройках BI-сервера.

Примечание. При работе с гостевым соединением операции OpenMetabase и CloseMetabase не используются.

Пример

Пример получения информации о гостевом соединении. Если гостевое соединение еще не создано, то оно будет создано автоматически при выполнении операции GetSystemInfo.

SOAP-запрос:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<GetSystemInfo xmlns="http://www.fsight.ru/PP.SOM.Som">
<tArg xmlns="">
<metabase>
  <id>WAREHOUSE!Guest!M</id>
  </metabase>
  </tArg>
  </GetSystemInfo>
  </s:Body>
  </s:Envelope>

SOAP-ответ:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<GetSystemInfoResult xmlns="http://www.fsight.ru/PP.SOM.Som" xmlns:q1="http://www.fsight.ru/PP.SOM.Som" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <version xmlns="">Релиз 10.4.10052.0 Master x64</version>
  <release xmlns="">10.4</release>
  <platformInfo xmlns="">x64</platformInfo>
  <osType xmlns="">Windows</osType>
  <osInfo xmlns="">Windows 10 x64</osInfo>
  <metabaseSessionTimeout xmlns="">00:30:00.000</metabaseSessionTimeout>
  <metabaseStoreBinaryCount xmlns="">0</metabaseStoreBinaryCount>
  <metabaseLocale xmlns="">1049</metabaseLocale>
  <metabaseConnectionPoolMaxCount xmlns="">50</metabaseConnectionPoolMaxCount>
  </GetSystemInfoResult>
  </soapenv:Body>
  </soapenv:Envelope>

JSON-запрос:

{
"GetSystemInfo" :
{
"tArg" :
{
"metabase" :
{
"id" : "WAREHOUSE!Guest!M"
}
}
}
}

JSON-ответ:

{
"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;
}

См. также:

Подключение к веб-сервису | Настройка гостевого входа