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

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

После того, как учётные данные сохранены, имеется два варианта создания гостевого соединения:

  1. Использовать в операциях фиксированный моникёр. Фиксированный моникёр основан на идентификаторе описания репозитория и имеет следующий формат: <id описания репозитория>!Guest!M. При первом выполнении любой операции с моникёром данного вида на BI-сервере создаётся гостевое соединение. Используйте данный моникёр в качестве префикса для выполнения других операций;

  2. Создать гостевое соединение с помощью операции OpenMetabase. Для выполнения операции укажите в поле tDef.id идентификатор описания репозитория, в учётных данных пользователя в поле tCreds.useGuestCreds укажите значение true, а в обязательном поле tCreds.pass пустое значение. При выполнении операции будет создано гостевое соединение и возвращён моникёр для дальнейшей работы.

При работе через гостевое соединение возможность выполнять операции будет для тех объектов, на которые имеются права у сохранённого пользователя. Для закрытия гостевого соединения используйте операцию 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.6.10067.0 Master x64</version>
  <release xmlns="">10.6</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.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:

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">
<OpenMetabase xmlns="http://www.fsight.ru/PP.SOM.Som">
<tDef xmlns="">
  <id>WAREHOUSE</id>
  </tDef>
<tCreds xmlns="">
  <pass />
  <useGuestCreds>true</useGuestCreds>
  </tCreds>
  <tArg xmlns="" />
  </OpenMetabase>
  </s:Body>
  </s:Envelope>

SOAP-ответ:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<OpenMetabaseResult 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">
  <id xmlns="">ABMDEDIPOAODGOAEILNHAJACNGILILPEMLBKDENDDGHECHAJ!M</id>
  <sessKey xmlns="">339878</sessKey>
  <sessCookie xmlns="">C2</sessCookie>
  <version xmlns="">163</version>
  <defLocale xmlns="">1049</defLocale>
  <driver xmlns="">2</driver>
  </OpenMetabaseResult>
  </soapenv:Body>
  </soapenv:Envelope>

JSON-запрос:

{
"OpenMetabase" :
{
"tDef" :
{
"id" : "WAREHOUSE"
},
"tCreds" :
{
"pass" : "",
"useGuestCreds" : "true"
},
"tArg" : ""
}
}

JSON-ответ:

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

См. также:

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