Выполнение программного кода (EVAL)
Оператор выполнения программного кода создает действие, которое выполняет заданный программный код на языке lsFusion. Программный код задается как некоторое свойство, значение которого должно принадлежать строковому классу.
Код, который передается действию для выполнения, должен быть последовательностью инструкций. Предполагается, что одной из этих инструкций будет создание действия с именем run
(именно это действие и будет выполняться).
Выполнение действия
В этом операторе также существует возможность выполнить просто действие (а не набор инструкций), в этом случае код должен быть последовательностью операторов-действий и объявлений локальных свойств. Для обращения к параметрам выполняемого действия можно использовать спецсимвол $
и номер параметра (начиная с 1
).
Ограничения на выполняемый код
В текущей реализации платформы выполняемый код не должен содержать инструкций, которые изменяют уже существующие объекты в системе. Например нельзя добавлять события, первичные и материализованные свойства, расширять существующие объекты и т.п.
Язык
Для объявления действия, выполняющего программный код, испол ьзуется оператор EVAL
.
Примеры
// исходный код, состоящий из одной инструкции, задается строковой константой
addProperty { EVAL ACTION 'MESSAGE \'Hello World\''; }
// свойство, в которое пользователь может ввести исходный код
code 'Исходные код' = DATA BPSTRING[2000] ();
// действие, выполняющее этот код
execute 'Выполнить код' { EVAL code(); }