USER_ID = 3;
TASK_ID = CONTEXT["Id"];
--EXTPARAM_ID = 99;
-- Единичное изменение ДП
-- Объявление функции
function update_extparam (task, extparam, value)
SMART:execute_action(
'ChangeExtParamValue', task, 'task',
{
Task = task,
User = USER_ID,
ExtParam = extparam,
Value = value,
WriteCommentOnChange = false
}
);
return
end
-- Вызов функции изменения ДП
update_extparam(683059, 1238, '123')
-- Массовое изменение ДП
-- Функция массового обновления ДП
function massUpdateExtParams(task, value)
SMART:execute_action('MassChangeExtParamValue', task, 'task', {
User = 3,
Dest = task,
DestExtParams = value,
WriteCommentOnChange = false
})
end
-- Объявляем переменную (таблица), куда записываем ID ДП и значение для этого ДП
local MassChangeExtParamValue = {}
MassChangeExtParamValue =
{
{ExtParamId = 765, FixedValue = post.Impressions},
{ExtParamId = 768, FixedValue = post.Spent},
{ExtParamId = 764, FixedValue = post.Reposts},
{ExtParamId = 726, FixedValue = round(post.CTR, 2)},
{ExtParamId = 1792, FixedValue = post.Hide},
{ExtParamId = 1793, FixedValue = post.Report},
{ExtParamId = 1794, FixedValue = post.Links},
{ExtParamId = 1795, FixedValue = post.Clicks}
}
-- Вызов функции с передачей параметров
massUpdateExtParams(post_info.posttask, MassChangeExtParamValue)
-- Изменение ДП типа "Таблица"
-- Сбор данных, которыми будем заполнять таблицу
-- Вызываем процедуру расчета calculateMain. Она возвращает столбцы factHrs, cost и profit, а также служебный столбец rowId с номерами строк
local resource_data = SQL:query(
[[
exec [dbo].[calculateMain] @TaskId = @TaskId
]],
{
TaskId = TASK_ID
}
);
-- Записываем полученные значения в таблицу
for key, val in pairs(resource_data) do
local result = string.format(
[[={"First":%s,"Second":{"11":{"First":%s},"22":{"First":%s},"33":{"First":%s}}}]],
val.rowID, val.factHrs, val.cost, val.profit
);
update_extparam(TASK_ID, EXTPARAM_ID, result);
end
|