DCI tables

Started by Harun, September 20, 2015, 06:30:37 PM

Previous topic - Next topic

Harun

Очень удобная вещь для сбора однотипных данных - таблицы DCI, но функционал ограничен. Есть ли способ сделать transformation для columns?

Victor Kirhenshtein

Есть - для таблиц тоже можно делать transformation script - на входе в $1 он получает объект класса Table, по которому можно пройти в цикле по всем строкам и внести изменения.

Harun

https://wiki.netxms.org/wiki/NXSL:TableColumn
Непонятно,  а в каком атрибуте хранится собственно value? Как его изменить? Вот например таблица со значением входных напряжений, мне нужно значение поделить на 10:

for (i=0;i<$1->columnCount;i++)
{
column = $1->columns[i];
switch (column->name)
{
case "input voltage":
break;
}
}


Я так понимаю, нужно воспользоваться методом getColumnIndex, но в вики нет документации по методам.

Harun

Всё, нашел:
https://www.netxms.org/forum/configuration/transformations-scripts-for-table-dci/

idxVoltage = $1->getColumnIndex("input voltage");

for(i = 0; i < $1->rowCount; i++)
{
   $1->set(i, idxVoltage, $1->get(i, idxVoltage) / 10);
}

Harun

#4
Странное дело, по какой-то причиние в Table Last Value я вижу только три столбца, сколько бы я их не добавлял, причем данные по невидимым столбцам собираются. Для решения проблемы удаляю кеш клиента (каталог ~/.nxmc), но при новом добавлении столбцов приходиться чистить заново.

Victor Kirhenshtein

А как выглядит описание столбцов в настройках DCI?

Harun

Прикладываю скрин