Якорь
...
Компиляция динамического кода осуществляется на вкладке Динамический код интерфейса администратора. Можно скомпилировать только все классы сразу. При успешной компиляции динамический код применяется также целиком.
Как видно из снимка экрана, помимо компиляции в оснастке возможно создание и запуск объекта класса реализующего интерфейс java.lang.Runnable. Кроме данного способа возможны перечисленные в последующих разделах способы создания и применения объектов динамических классов.
Все нижеперечисленные методы подходят и для работы с обычными классами загружаемыми из JAR файлов каталога lib.
Обработчики событий процессов
Имя класса-обработчика может быть указано в свойствах типа процесса. Создаваемые динамические классы - обработчики событий должны расширять абстрактный класс ru.bgcrm.event.listener.DynamicEventListener. Информацию по типам событий можно получить из API документации к системе в формате JavaDoc.
Запуск и создание объектов при старте сервера
Параметры runOnStart и createOnStart в конфигурации сервера. Указанные в них объекты классов создаются и запускаются для runOnStart при старте сервера.
Вызов динамического класса HTTP запросом
Блок кода | ||||
---|---|---|---|---|
| ||||
<crmUrl>/admin/dynamic.do?action=runDynamicClass&iface=<iface>&class=<className>&j_username=<user>&j_password=<pswd>¶m1=value¶m2=.. |
Где:
- <crmUrl> - URL и порт BGCRM;
- <className> - имя динамического класса.
...
- ;
- <user> и <pswd> - логин и пароль пользователя BGCRM, подробнее о запросах внешних систем;
- <iface> - тип класса-обработчика, подробнее ниже.
При параметре <iface> равным event класс должен расширять абстрактный класс
Crm_javadoc | ||
---|---|---|
|
Crm_javadoc | ||
---|---|---|
|
Примеры
В составе поставки доступны примеры динамических классов в dyn/ru/bgcrm/dyn поименованные как Example* с описанием в комментариях. Помимо этого вы можете найти примеры динамического кода в нашей WiKi.