Сомнения в рабочем процессе Alfresco на основе Activiti

Я новичок в Альфреско. Я работаю над проектом, который использует Alfresco в качестве хранилища документов. Существует требование создать некоторый рабочий процесс утверждения для документов. Мы все еще сомневаемся в использовании Activiti в Alfresco для реализации. Если вы, ребята, можете помочь мне со следующими вопросами, это будет очень полезно при принятии решения.

1) Правила утверждения будут динамически меняться. Можно ли интегрировать механизм правил, например слюни, с Activiti на открытом воздухе? И если да, то как?

2) Созданная задача должна отображаться во внешнем приложении. Насколько реально запросить базу данных alfresco из внешнего приложения? Можно ли использовать для этого SQL, или нам нужно использовать API для этого??

3) Как проверить схему базы данных Activiti в Alfresco?

4) Если файл правил можно использовать для принятия решений, можно ли динамически изменять этот файл правил из внешнего приложения. И если да, то как?

Эти вопросы могут показаться очень глупыми, но они разъедают мою голову. Пожалуйста помоги

Спасибо, Абхишек


person Abhishek    schedule 06.05.2013    source источник
comment
в alfresco уже встроен один механизм правил.   -  person mitpatoliya    schedule 07.05.2013
comment
@mitpatoliya спасибо за информацию. Я проверил документацию Alfresco и нашел набор правил, которые можно применить к папке. Но под этим набором правил я понял, что эти правила можно устанавливать и управлять ими из приложения alfresco (Frontend). можно ли применить этот набор правил и управлять им с помощью API из внешнего приложения? И в моем случае я хочу установить правила для рабочего процесса, а не для документа. Возможно ли это с упомянутым здесь набором правил Alfresco? Пожалуйста, поправьте меня, если я понял неправильно.   -  person Abhishek    schedule 07.05.2013


Ответы (4)


Если вы хотите написать некоторые приложения с использованием Activiti также вне Alfresco, я думаю, вам следует перейти к использованию автономной Activiti и, возможно, интегрировать ее с Alfresco как раз тогда, когда вам нужно загрузить документы в репозиторий или что-то в этом роде. Уровень интеграции Alfresco и Activiti достаточно глубокий.

AD 2,3) Если вы действительно хотите получить доступ к таблицам Activiti, не используя API Alfresco, да, это возможно. Таблицы в базе данных точно такие же, как указано в документации Activiti (http://www.activiti.org/userguide/#database.tables.explained)

person Michał Wróbel    schedule 07.05.2013
comment
недурно. Спасибо за информацию. Ваш ответ снял мою озабоченность по поводу базы данных. Есть идеи по пунктам 1 и 4? - person Abhishek; 07.05.2013

1) Хотя bpm — это форк слюней, я не думаю, что Alfresco имеет встроенную поддержку для этого. Но все же, я не совсем уверен в этом. Мы всегда использовали jbpm или activiti.

2) Вы должны использовать API рабочего процесса Alfresco для достижения желаемого. По крайней мере, это правильный и настоятельно рекомендуемый способ разработки рабочих процессов в Alfresco.

3) Вы можете сделать это, открыв движок activit в пакете Alfresco. Внутри вы должны найти файл с именем activiti.mysql.create.sql. Это могло бы помочь вам как-то. Если вы перейдете по этой ссылке, вы также можете найти несколько интересных команд для отладки Alfreco и Activiti. столы

4) Определите файл правил, пожалуйста. Если вы говорите об изменении файлов рабочего процесса activiti, нет, это не следует делать после развертывания. Если вы говорите о завершении задач или выполнении действий в рабочем процессе, вы должны использовать для этого API.

person Teqnology    schedule 08.05.2013

  1. Не уверен насчет встраивания слюней, но у вас есть два типа задач на основе кода в Activiti — задача сценария и задача обслуживания. Задачи сценариев, вероятно, проще, так как они по умолчанию являются javascript, но вы также можете загрузить другие механизмы сценариев, такие как groovy, если вам нужно. Служебные задачи — это классы Java, которые необходимо развернуть в пути к классам Alfresco для использования.
  2. Я бы определенно придерживался API, как уже упоминалось.
  3. Alch3mi5t ответил на это, но опять же я бы держался подальше
  4. Я бы использовал для этого служебную задачу, поскольку вы могли бы вызвать из своего Java-кода другую систему.

Если вы используете Activiti Explorer для добавления задачи обслуживания на диаграмму, вы заметите свойство под названием «Класс обслуживания», которое имеет значение, когда выбран тип «класс java». Вы бы поместили здесь полное имя класса, например. org.example.activiti.CustomLogic Это должно реализовать один из нескольких интерфейсов, таких как ActivityBehavior, ActivityExecution или DelegateExecution. Этот интерфейс требует от вас создания метода execute(), в который вы можете поместить свою логику и любые внешние вызовы.

Чтобы развернуть, скомпилируйте его в банку (в eclipse «Создать артефакты развертывания») и разверните банку в пути к классам Alfresco, например. webapps/alfresco/WEB-INF/lib, затем перезапустите alfresco

person marsbard    schedule 08.05.2013

Согласно документации Activiti, вы можете использовать правила drools в задаче "Бизнес-правило".

Задача бизнес-правил используется для синхронного выполнения одного или нескольких правил. Activiti использует Drools Expert, механизм правил Drools для выполнения бизнес-правил. В настоящее время файлы .drl, содержащие бизнес-правила, должны быть развернуты вместе с определением процесса, которое определяет задачу бизнес-правила для выполнения этих правил. Это означает, что все файлы .drl, которые используются в процессе, должны быть упакованы в файл BAR процесса, например, формы задач.

person marsbard    schedule 13.05.2013