Перейти к основному содержимому
Версия: 6.x

How-to: Явная типизация

Иногда возникают ситуации, когда необходимо использовать одинаковое имя для разных свойств или действий системы.

Например создадим два свойства с именем sum, одно из которых вычисляет сумму строки заказа, а второе - сумму всего заказа:

sum = DATA NUMERIC[10,2] (OrderDetail);
sum = GROUP SUM sum(OrderDetail od) BY order(od);

Соответственно, первое свойство принимает на вход один параметр класса OrderDetail, а второе - один параметр класса Order.

Теперь если создать, к примеру, ограничение с одним параметром, и попытаться обратиться к свойству с именем sum без явного указания класса этого параметра платформа выдаст ошибку:

Все такие обращения требуют явного указания класса параметров:

CONSTRAINT sum(Order o) < 0 MESSAGE 'Сумма заказа должна быть положительной';