Пользовательские функции и методы позволяют расширить возможности выражения за счёт использования пользовательских методик расчёта. Пользовательские функции доступны для использования в:
методах расчёта вычисляемых рядов в инструменте «Анализ временных рядов»;
методах расчёта моделей в инструменте «Моделирование и прогнозирование»;
мастере функций в инструменте «Отчёты»;
редакторе формул в инструменте «Алгоритмы расчёта».
По умолчанию пользовательские функции не подключены к инструментам и для их использования их каждый раз надо вводить в выражение вручную. Продукт «Форсайт. Аналитическая платформа» позволяет подключить пользовательские функции к системным функциям одновременно во всех вышеперечисленных инструментах.
Примечание. Подключение пользовательских функций доступно только в настольном приложении.
Например, в редакторе выражения они будут отображаться на панели функций в категории «Пользовательские функции»:
Для подключения пользовательских функций используйте вкладку «Методы» в разделе «Пользовательские метаданные» диалога «Параметры». Все методы, добавленные на данной вкладке, будут подключены в раздел пользовательских функций в инструментах продукта «Форсайт. Аналитическая платформа».
На вкладке содержатся пользовательские функции, разделённые по папкам. Папки - это категории, предназначенные для упорядочения и группировки функций. Пользовательские функции, сгруппированные по категориям, отображаются в инструментах «Анализ временных рядов» и «Моделирование и прогнозирование». В редакторе выражения и в инструментах «Алгоритмы расчёта» и «Отчёты» пользовательские функции отображаются без разделения на категории.
Требования, предъявляемые к пользовательским функциям:
функции должны быть написаны на языке Fore, иметь модификатор Public и сохранены в текущем репозитории в виде формы, модуля или сборки Fore;
если в расчёте используются ряды данных или переменные моделирования, то они должны быть типа ITimeSeries. Для возврата значений, рассчитанных функцией, также должны использоваться данные типа ITimeSeries.
Примечание. Пользовательская функция должна иметь уникальное имя. Если при выборе модуля/сборки в нём имеется функция, имя которой совпадает с какой-либо ранее добавленной функцией или системным методом/функцией, то генерируется исключительная ситуация. Использование такого модуля/сборки будет недоступно.
Переименование метода или категории
Настройка порядка следования метода или категории
В качестве пользовательской функции можно использовать и функции, и методы.
Пользовательский метод. Синтаксис:
Sub MyFunc(Factor1, Factor2: ITimeSeries; Var Output: ITimeSeries; Coef1: Double; Coef2: Double);
Begin
...
End Sub MyFunc;
Параметры метода:
Factor1, Factor2. Данные;
Output. Данные, которые будут изменены и возвращены по результатам расчёта;
Coef1, Coef2. Параметры, имеющие вещественное значение.
Пользовательская функция. Синтаксис:
Function MyFunc(Input, Input1: ITimeSeries; Coef: Double): ITimeSeries;
Var
Output: ITimeSeries;
Begin
...
Return Output;
End Function MyFunc;
Параметры функции:
Input, Input1. Данные;
Coef. Параметр, имеющий вещественное значение;
Output. Переменная, возвращающая результат расчёта функции.
См. также: