Scripting

Started by andrey--k, June 02, 2014, 01:44:41 PM

Previous topic - Next topic

andrey--k

Столкнулся с проблемой, что Transformation script возвращает int32 из DCI, с принудительно установленным форматом int64. В результате получаем переполнение переменной и отрицательное число там, где должно быть положительное.

Как пример - отображение результата вычисления полного обьема многотерабайтного хранилища из данных, полученных по snmp.

OID(.1.3.6.1.2.1.25.2.3.1.5.32) * OID(.1.3.6.1.2.1.25.2.3.1.4.32)

Victor Kirhenshtein

Надо хотя-бы один операнд принудительно сконвертировать в int64. Скрипт не расширяет результат умножения автоматически (что возможно неправильно, я подумаю позже об этом).

andrey--k

Не смог найти на вики описания функций приведения типов.
Разобрался проведя несколько экспериментов.

$1 * int64(GetDCIValueByName($node,".1.3.6.1.2.1.25.2.3.1.4.32"))


Спасибо!