Как создать собственную систему рабочего процесса с помощью подключаемого модуля Grails Activiti

Я хочу создать собственную систему рабочего процесса с помощью подключаемого модуля Grails Activiti. Каковы процедуры для этого? Может кто-нибудь мне помочь?

Я ссылался на эту документацию и на пример приведен.

Я установил подключаемый модуль Grails Activiti в своем проекте. Я также загрузил и установил образец заявления на отпуск в свой проект и увидел, как оно работает.


person Sri    schedule 04.03.2013    source источник
comment
я тоже ищу это..   -  person Viswa    schedule 01.07.2013
comment
Пока нет ответов Виш :-(   -  person Sri    schedule 01.07.2013


Ответы (1)


Сейчас я не думаю, что есть пошаговые инструкции, которые помогут вам реализовать подключаемый модуль Grails Activiti. Я нахожусь в той же лодке (магазин разработки, использующий Grails, который хотел бы реализовать механизм рабочего процесса), и до сих пор плагин Activiti не был действительно полезен. Те, кто использует его , похоже, на самом деле не используют обеспечивает интеграцию между GORM и Activiti.

В общих чертах, вот шаги, которые я бы рекомендовал для использования Activiti в Grails. вы, вероятно, могли бы взять или оставить плагин Activiti.

  1. Создайте механизм Activiti в своей базе данных. Если вы используете базу данных H2 в памяти и позволяете Grails выполнять операторы создания/удаления, вам может потребоваться добавить сценарии h2 в процесс запуска вашего приложения.
  2. Сопоставьте процесс, который вы хотите использовать в своем приложении Grails, в формате XML BPMN 2.0. Вы можете использовать Activiti Eclipse Designer, который отлично подключится к GGTS, запустите Activiti Исследуйте где-нибудь и используйте веб-дизайнер или кодируйте необработанный XML самостоятельно.
  3. Включите Activiti в качестве зависимости в ваше приложение Grails. Это можно сделать, включив подключаемый модуль Activiti Grails в BuildConfig.groovy или просто включив jar-файл движка Activiti в качестве зависимости (см. ниже).
  4. Use calls to the Activiti engine's API (preferably from a Grails service) to deploy your process model(s), start up individual instances of the process(es), and move through the various steps in the workflow.
    • You may need to pass information about your Grails domain objects as process variables, and then draw them back out again later. Teasing out where to let Grails persist the data in a domain object, and where to make Activiti keep it as a process variable is simply going to take some thought on the developer's part.

Как правило, мое эмпирическое правило заключается в том, чтобы позволить Activiti управлять процессом, а Grails — всем остальным (пользовательский интерфейс, сохранение данных и манипулирование ими, проверка и т. д.).

Я рекомендую этот подход, чтобы вы по-прежнему могли использовать Grails для управления всем пользовательским интерфейсом с помощью контроллеров и GSP, а также большей частью объектной модели с помощью объектов предметной области и служб. В пользовательском интерфейсе, который разрабатывает команда Activiti, нет ничего плохого, но он основан на Vaadin, собственной Java/ Фреймворк пользовательского интерфейса со своим характером и философией. Я уверен, что супер-разработчик мог бы без проблем комбинировать их и, вероятно, уже сделал это, но если он/она не спустится с горы и не научит меня, мне придется ограничить количество инструментов, которые я буду пробовать. освоить сразу. :)

Как включить Activiti в качестве зависимости

В вашем файле BuildConfig.groovy закройте следующие зависимости и репозитории:

repositories {
    inherits true // Whether to inherit repository definitions from plugins

    mavenRepo "https://maven.alfresco.com/nexus/content/groups/public/"
    //any other repositories you need go here, including grailsCentral(), etc.
}
dependencies {
    compile("org.activiti:activiti-engine:5.13"){
        excludes "spring-beans"
    }
}

Вам не нужно исключать зависимости spring-context, но Grails 2.3.1 использует более позднюю версию Spring, чем Activiti 5.13. На 2/3 машинах, на которых я пробовал, это нормально, и Grails просто использует более позднюю версию Spring, игнорируя старую версию, требуемую Activiti. Однако на одной машине разница вызвала привередливое исключение, которое было трудно отследить.

person jonnybot    schedule 17.11.2013