Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Компиляция динамического кода осуществляется на вкладке Динамический код интерфейса администратора. Можно скомпилировать только все классы сразу. При успешной компиляции динамический код применяется также целиком.

Image Removed

Image Added

Как видно из снимка экрана, помимо компиляции в оснастке возможно создание и запуск объекта класса реализующего интерфейс java.lang.Runnable. Кроме данного способа возможны перечисленные в последующих разделах способы создания и применения объектов динамических классов.

Все нижеперечисленные методы подходят и для работы с обычными классами загружаемыми из JAR файлов каталога lib.

Обработчики событий процессов

Имя класса-обработчика может быть указано в свойствах типа процессаСоздаваемые динамические классы - обработчики событий должны расширять абстрактный класс ru.bgcrm.event.listener.DynamicEventListener. Информацию по типам событий можно получить из API документации к системе в формате JavaDoc.

Запуск и создание объектов при старте сервера

Параметры runOnStart и createOnStart в конфигурации сервера. Указанные в них объекты классов создаются и запускаются для runOnStart при старте сервера.

Вызов динамического класса HTTP запросом

Блок кода
languageruby
linenumbersfalse
<crmUrl>/admin/dynamic.do?action=runDynamicClass&iface=<iface>&class=<className>&j_username=<user>&j_password=<pswd>&param1=value&param2=..

Где:

  • <crmUrl> - URL и порт BGCRM;
  • <className> - имя динамического класса.

...

  • ;
  • <user> и <pswd> - логин и пароль пользователя BGCRM, подробнее о запросах внешних систем;
  • <iface> - тип класса-обработчика, подробнее ниже.

При параметре <iface> равным event класс должен расширять абстрактный класс

Crm_javadoc
Nameru.bgcrm.event.listener.DynamicEventListener
в который передаётся событие событие 
Crm_javadoc
Nameru.bgcrm.event.RunClassRequestEvent
. В противном случае класс может реализовать интерфейс java.lang.Runnable, который просто будет запущен.

Примеры

В составе поставки доступны примеры динамических классов в dyn/ru/bgcrm/dyn поименованные как Example* с описанием в комментариях.  Помимо этого вы можете найти примеры динамического кода в нашей WiKi.

Документация BGCRM 3.0