GetInMemResult SetInMem(SetInMemArg tArg)
tArg. Параметры выполнения операции.
Операция SetInMem изменяет кэш In-Memory у объекта репозитория.
Операция позволяет включить/отключить использование кэша In-Memory у куба или справочника репозитория. Для выполнения операции укажите в поле tArg.cache.object объект репозитория, а в поле tArg.cache.action действие, выполняемое с кэшем. При включении кэширования кубов, кэш создаётся по полной отметке куба. Если определить поле tArg.metaGet, то результатом операции будет обновлённая информация о кэше In-Memory для объекта.
Для обновления кэша куба по частичной отметке используйте операцию UpdCubeCache.
Примечание. Для корректной работы операции необходимо, чтобы файлы кэша использовались только текущим BI-сервером.
Ниже приведён пример подготовки кэша In-Memory для куба репозитория. В запросе передаётся моникёр куба, указывается действие, выполняемое с кэшем. Операция будет производиться синхронно, по завершению кэширования куба будет возвращена обновлённая информация о статусе кэша.
В примере C# используется функция FindObjectById, код которой приведен в примере «Получение описания объекта по его идентификатору».
{
"SetInMem" :
{
"tArg" :
{
"cache" :
{
"object" :
{
"id" :
{
"id" : "S1!M!5857"
}
},
"action" : "Prepare",
"async" : "false"
},
"metaGet" :
{
"cache" :
{
"object" :
{
"id" :
{
"id" : "S1!M!5857"
}
}
}
}
}
}
}
{
"SetInMemResult" :
{
"meta" :
{
"cache" :
{
"isOK" : "1",
"object" :
{
"id" :
{
"id" : "S1!M!5857"
}
},
"objectStatus" : "Exists"
}
}
}
}
public static GetInMemResult SetInMemParams(MbId mb, string objectId)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
var objKey = FindObjectById(mb, objectId).k;
//Параметры выполнения операции
var tSet = new SetInMem()
{
tArg = new SetInMemArg()
{
cache = new SetInMemCacheArg()
{
action = InMemCacheAction.Prepare,
async = false,
@object = new InMemCacheObject()
{
id = new OdId() { id = mb.id + "!" + objKey }
}
},
metaGet = new GetInMemArg()
{
cache = new GetInMemCacheArg()
{
@object = new InMemCacheObject()
{
id = new OdId() { id = mb.id + "!" + objKey }
}
}
}
}
};
//Изменение параметров кэширования объекта
var result = somClient.SetInMem(tSet);
return result;
}
См. также: