ForeExecResult ForeExecAtomic(ForeExecAtomicArg tArg)
tArg. Параметры выполнения операции.
Операция ForeExecAtomic выполняет Fore-методы при работе в интеграционных сервисах.
Интеграционные сервисы - это сторонние сервисы, которые обращаются за данными к репозиториям платформы. Операция ForeExecAtomic позволяет подключиться к репозиторию под специальным интеграционным пользователем, выполнить Fore-метод, вернуть его результат и закрыть соединение с репозиторием.
Для использования операции ForeExecAtomic репозиторий предварительно необходимо подготовить следующим образом:
В описании подключения к репозиторию для настройки EnableForeExecAtomic установите значение true.
С помощью утилиты PP.Util с параметром save_creds и указанием ключевого слова MBCACHE сохраните учётные данные владельца схемы или любого пользователя с правами на чтение системных таблиц репозитория. С использованием сохраненных учётных данных будет производиться подключение к БД и чтение системной таблицы с интеграционными пользователями, которая будет кешироваться в память BI-сервера при первом выполнении операции ForeExecAtomic.
С помощью утилиты PP.Util с параметром save_integration_user сгенерируйте токен для интеграционного пользователя и сохраните учётные данные технологической учётной записи для подключения к репозиторию с использованием операции ForeExecAtomic.
После выполнения указанных действий появится возможность использовать операцию ForeExecAtomic. Для выполнения операции укажите в поле tArg.token токен интеграционного пользователя, полученный при выполнении опции save_integration_user, в поле tArg.metabaseId идентификатор репозитория, а в полях tArg.objKey и tArg.foreArg ключ модуля/сборки и параметры выполняемого Fore-метода.
Результатом выполнения операции будет результат, возвращаемый Fore-методом.
Ниже приведён пример выполнения Fore-метода интеграционным пользователем, который должен быть сохранён для репозитория. В запросе передаётся токен интеграционного пользователя, идентификатор репозитория, ключ модуля и параметры выполняемого метода. В ответе приходит результат выполнения метода.
{
"ForeExecAtomic" :
{
"tArg" :
{
"token" : "{BD8D4E02-FA2A-405B-9938-8DB97087C7D8}",
"metabaseId" : "TestRepository",
"objKey" : "20109",
"foreArg" :
{
"methodName" : "TestAtomic",
"args" :
{
"it" :
[
{
"k" : "1",
"value" : "100"
},
{
"k" : "2",
"value" : "10"
}
]
}
}
}
}
}
{
"ForeExecAtomicResult" :
{
"result" : "A > B: True. Дата и время выполнения: 08.08.2025 11:18:45"
}
}
public static ForeExecResult ForeExecAtomic(string userToken, string repoId, uint assmKey, string methodName)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tExec = new ForeExecAtomic()
{
tArg = new ForeExecAtomicArg()
{
token = userToken,
metabaseId = repoId,
objKey = assmKey,
foreArg = new ForeExecArg()
{
methodName = methodName,
args = new OdArg[2]
{
new OdArg(){ k = 1, value = "100" },
new OdArg(){ k = 2, value = "10" }
}
}
}
};
// Выполнение метода
var result = somClient.ForeExecAtomic(tExec);
return result;
}
См. также: