NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: Harun on September 20, 2015, 06:30:37 PM

Title: DCI tables
Post by: Harun on September 20, 2015, 06:30:37 PM
Очень удобная вещь для сбора однотипных данных - таблицы DCI, но функционал ограничен. Есть ли способ сделать transformation для columns?
Title: Re: DCI tables
Post by: Victor Kirhenshtein on October 17, 2015, 08:14:16 PM
Есть - для таблиц тоже можно делать transformation script - на входе в $1 он получает объект класса Table (https://wiki.netxms.org/wiki/NXSL:Table), по которому можно пройти в цикле по всем строкам и внести изменения.
Title: Re: DCI tables
Post by: Harun on October 21, 2015, 07:14:58 AM
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, но в вики нет документации по методам.
Title: Re: DCI tables
Post by: Harun on October 21, 2015, 07:18:50 AM
Всё, нашел:
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);
}
Title: Re: DCI tables
Post by: Harun on October 21, 2015, 07:44:05 AM
Странное дело, по какой-то причиние в Table Last Value я вижу только три столбца, сколько бы я их не добавлял, причем данные по невидимым столбцам собираются. Для решения проблемы удаляю кеш клиента (каталог ~/.nxmc), но при новом добавлении столбцов приходиться чистить заново.
Title: Re: DCI tables
Post by: Victor Kirhenshtein on October 29, 2015, 10:03:06 PM
А как выглядит описание столбцов в настройках DCI?
Title: Re: DCI tables
Post by: Harun on October 30, 2015, 10:36:43 AM
Прикладываю скрин