Ниже приведён пример добавления алгоритма расчёта для среза данных в регламентном отчёте. В запросе передаётся моникёр для работы с алгоритмами расчёта у среза данных, описание добавляемого алгоритма и его настройки работы. В ответе возвращается признак успешного добавления алгоритма.
{
"UpdateDataAreaExternalTransformations" :
{
"mon" : "FPJHEGEAILDDGOAEBNPJEFNNPNNPCPAELKNIOBNJKIPKLKBE!M!S!PDFCFFHEAILDDGOAECGFLOGBJGLOFCJHEFKJBCNDOFDGMOMON!DataArea!DataSources!1!DataSourceSlices!1!ExternalTransformations",
"tArg" :
{
"its" :
{
"it" :
[
{
"action" :
{
"operation" : "Add"
},
"externalTransformation" :
{
"k" : "-1",
"enabled" : "true",
"saveDataOption" : "false",
"calculationPeriodMode" : "0",
"calculationMode" : "1",
"algorithm" :
{
"@ds" : "",
"@isShortcut" : "false",
"@isLink" : "false",
"@ver" : "4",
"@hf" : "false",
"i" : "OBJ339507",
"n" : "Алгоритм расчёта показателей",
"k" : "339507",
"c" : "268033",
"p" : "339494",
"h" : "false",
"hasPrv" : "false",
"ic" : "false",
"trackElementDependents" : "false",
"isPermanent" : "true",
"isTemp" : "false"
}
}
}
]
}
}
}
}
{
"UpdateDataAreaExternalTransformationsResult" : "1"
}
public static bool AddAlgorithmForSlice(string moniker, uint sourceKey, uint sliceKey, Ob newAlg)
{
var somClient = new SomPortTypeClient(); // Прокси-объект для выполнения операций
// Параметры выполнения операции
var tUpd = new UpdateDataAreaExternalTransformations()
{
tArg = new DataAreaExternalTransformationUpdateActions()
{
its = new DataAreaExternalTransformationUpdateAction[]
{
new DataAreaExternalTransformationUpdateAction()
{
action = new DataAreaExternalTransformationUpdateActionType() { operation = DataAreaExternalTransformationUpdateActionOperation.Add },
externalTransformation = new DataAreaExternalTransformation()
{
k = uint.MaxValue,
enabled = true,
algorithm = newAlg,
calculationMode = 1, // На изменение данных
calculationPeriodMode = 0, // Пересечение отметок алгоритма и среза
saveDataOption = false // Не сохранять данные
}
}
}
},
mon = moniker + "!DataArea!DataSources!" + sourceKey + "!DataSourceSlices!" + sliceKey + "!ExternalTransformations"
};
// Добавление алгоритма расчёта для среза данных
var result = somClient.UpdateDataAreaExternalTransformations(tUpd);
return result;
}
См. также: