NetXMS Support Forum

Russian Support => Общие вопросы => Topic started by: andrey--k on June 02, 2014, 01:44:41 PM

Title: Scripting
Post by: andrey--k on June 02, 2014, 01:44:41 PM
Столкнулся с проблемой, что 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)
Title: Re: Scripting
Post by: Victor Kirhenshtein on June 03, 2014, 12:06:36 AM
Надо хотя-бы один операнд принудительно сконвертировать в int64. Скрипт не расширяет результат умножения автоматически (что возможно неправильно, я подумаю позже об этом).
Title: Re: Scripting
Post by: andrey--k on June 03, 2014, 10:22:01 AM
Не смог найти на вики описания функций приведения типов.
Разобрался проведя несколько экспериментов.

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


Спасибо!