bool SetCalculatedCubeFormulas(CubeId tCube, SetCalculatedCubeFormulasRes tArg)
tCube. Моникёр открытого экземпляра вычисляемого куба.
tArg. Параметры изменения формул вычисляемого куба.
Операция SetCalculatedCubeFormulas изменяет формулы для вычисляемого куба.
Для выполнения операции укажите в поле tCube моникёр экземпляра вычисляемого куба, а в поле tArg параметры изменения списка формул. Моникёр экземпляра вычисляемого куба можно получить с помощью операции OpenCube.
В поле tArg.its необходимо сформировать элемент, в котором в поле dimIds задать моникёры измерений, формирующих координату куба. Список измерений может быть получен с помощью операции GetCube или при открытии куба с помощью операции OpenCube, если задан соответствующий шаблон. Далее все измерения необходимо открыть с помощью операции OpenDim и сформировать по ним отметку с помощью операции ChangeDimSelection. Полученная отметка определит координату куба, по которой будут изменены формулы. В поле formulas сформируйте формулу или несколько формул, если в кубе настроено управление периодом действия формул. Для сохранения изменений в формулах используйте операцию SaveCalculatedCubeFormulas.
Результатом операции будет логическое значение true, если изменение формул завершилось успешно.
Ниже приведён пример изменения формулы по заданной координате вычисляемого куба. В запросе передаются моникёр экземпляра куба и моникёры измерений, формирующих координату куба. По измерениями предварительно выставлена отметка. Также передаётся выражение формулы. В ответе приходит признак удачного изменения формулы.
{
"SetCalculatedCubeFormulas" :
{
"tCube" :
{
"id" : "S1!M!S!C1"
},
"tArg" :
{
"its" :
{
"it" :
[
{
"dimIds" :
{
"its" :
{
"it" :
[
{
"dimId" :
{
"id" : "S1!M!S!S2"
}
},
{
"dimId" :
{
"id" : "S1!M!S!S3"
}
},
{
"dimId" :
{
"id" : "S1!M!S!S4"
}
}
]
}
},
"formulas" :
{
"formula" :
[
{
"its" :
{
"it" :
[
{
"expression" : "CUBE_SOURCE[0,0,7]"
}
]
}
}
]
}
}
]
}
}
}
}
{
"SetCalculatedCubeFormulasResult" : "1"
}
public static bool SetCalcCubeFormulas(CubeId moniker, OpenId[] dimMonikers)
{
var somClient = new SomPortTypeClient(); //Прокси-объект для выполнения операций
//Параметры выполнения операции
var tSet = new SetCalculatedCubeFormulas()
{
tArg = new SetCalculatedCubeFormulasRes()
{
its = new GetCalculatedCubeCoordFormula[]
{
new GetCalculatedCubeCoordFormula()
{
dimIds = new OpenIds()
{
its = dimMonikers
},
formulas = new CalculatedCubeFormulas()
{
formula = new CltCubeFormulas()
{
its = new CalculatedCubeFormula[]
{
new CalculatedCubeFormula()
{
expression = "CUBE_SOURCE[0,0,7]"
}
}
}
}
}
}
},
tCube = moniker
};
//Изменение формул вычисляемого куба
var result = somClient.SetCalculatedCubeFormulas(tSet);
return result;
}
См. также: