Пример за създаване на работен поток на Activiti
Имаше заявка във форума да напиша примерен работен процес на activiti с подробни обяснения. Ще се опитам да изпълня молбата. За първи път пиша в този блог, моля не съдете строго.
Трябва да знаете, че с въвеждането на activiti alfresco, общите принципи на писане на бизнес процеси не са се променили драматично. Променен е само езикът за описание на процеса (цялата документация за дейността може да бъде намерена тук) и някои малки неща в локализацията. Затова първо трябва да прочетете предишните статии тук във форума:
Нека внедрим следния скрипт:
1. Регистраторът изтегля директивния документ и инициира процеса, като предава документа на ръководителя на определен отдел.
3. Изпълнителят изпълнява заданието, добавя акт за изпълнение към документите и го връща на ръководителя за разглеждане.
4. Шефът одобрява изпълнението и процесът приключва. В противен случай мениджърът връща задачата на изпълнителя за преразглеждане и процесът се връща към стъпка 3.
Ще получите следния маршрут за документа:
И така, създаваме модел на процес DirectiveWorkflowModel.xml:
Поставяме модела в ALFRESCO_HOME/tomcat/shared/classes/alfresco/extension/model/
Създайте процес DirectiveProcess.xml:
Поставяме процеса в ALFRESCO_HOME/tomcat/shared/classes/alfresco/extension/workflows/
Локализирайте бизнес процеса (dirWorkflow_ru_RU.properties):
Поставяме локализация в ALFRESCO_HOME/tomcat/shared/classes/alfresco/extension/messages/
Настройте уеб клиента (web-client-config-custom.xml):
Поставяме уеб клиента в ALFRESCO_HOME/tomcat/shared/classes/alfresco/extension
Създайте товарач (dir-workflow-context.xml):
И го сложихмеALFRESCO_HOME/tomcat/shared/classes/alfresco/extension
Персонализирайте потребителския интерфейс за споделяне (web-extension/share-config-custom.xml):
Поставете уеб клиента в ALFRESCO_HOME/tomcat/shared/classes/alfresco/web-extension
Локализирайте етикетите на интерфейса (dir_ru_RU.properties):
Поставяме локализация в ALFRESCO_HOME/tomcat/shared/classes/alfresco/web-extension/messages/
Конфигурирайте Spring bean за локализация на интерфейса (custom-slingshot-application-context):
Напишете го в ALFRESCO_HOME/tomcat/shared/classes/alfresco/web-extension
След рестартиране на открито отидете на localhost:8080/share, където в списъка с процеси виждаме нашия процес „Обработка на външни директиви (Запознайте се с директивата и я изпълнете)“
Актуализирано
Ето как изглежда бизнес процесът за изпълнение на директиви:
работни потоци.zip | 10.63 kb |
start.png | 47.79 kb |
инспекция.png | 52.53 kb |
изпълнявам.png | 53.14 kb |
approve.png | 54.17 kb |
diagram1.png | 10,99 kb |
Коментари
И къде е красива екранна снимка на отворената снимка на модела на процеса на страницата с подробности за бизнес процеса в края?;)
Добавени екранни снимки на всеки етап-задача за споделяне.
Да, разбирам, че би било полезно. Глоба. Ще го направя тази вечер със сигурност.
З.Й. По принцип работя във vi и jEdit, така че ми е трудно със схемите. :) Вечерта всички инструменти ще са ми под ръка
ДОБРЕ. Аз самият винаги правя всичко във vi, въпреки че все още не съм стигнал до activiti и не знам как ебоя.
Здравейте! Имам може би обратния проблем - не мога да изтрия процеса на activiti. Alfresco-4.0.d. Създадох свой собствен процес в /shared/extention, отначало не можах да променя нищо в него (след рестартирането нищо не се промени), след това реших да го изтрия напълно, но не работи! Бихте ли предложили как да го направите правилно?
За да може самият работен процес да се актуализира, когато се актуализира файлът на процеса в споделяне/разширение, трябва да обърнете внимание на конфигурацията на работния поток. Проверете внимателно във файла *-workflow-context частта, която описва файла на процеса. Имам тази част:
Обърнете внимание на стойността на ключа за пренасочване
Какво означава рестартиране при обновяване на файл. Може би го описвате така
Променете false на true и след това всеки път, когато афреското се рестартира, процесът ще се рестартира
Освен това може би просто копирате файла на процеса. Но простото презаписване на файла на процеса в топката не презарежда работния процес. Ако разположите работния процес по този начин, след актуализиране на файла трябва да рестартирате самия сървър. За да актуализирате работния процес, без да рестартирате сървъра, трябва да използвате интерфейса на самото открито, за да разгърнете процеса и модела.
Сега за премахването на работния процес. Факт е, че по време на преминаването на процеса неговата история се записва на открито. Тоест, за да премахнете напълно работния процес, трябва да деактивирате всички активни процеси, да изчистите цялата история на завършените процеси, ако има такива, и след това да изтриете всичките му файлове (процес, модел и т.н.), в противен случай на открито ще продължи да се кълне.
Но можете да отидете по друг начин: не можете да изтриете файловете, а да ги върнете на мястото им и да скриете самия работен процес по този начин.Ако използвате дейност, тогава префиксът jbpm в се променя на дейност, а doc:testAppRej навашия процес. Пример:
Ако все пак искате да премахнете напълно процеса от системата, тогава, както казах, не е достатъчно просто да изтриете неговите файлове. Трябва да отидете на административната конзола (http://localhost:8080/alfresco/faces/jsp/admin/workflow-console.jsp). В него можете да видите всички работни процеси, като напишете:
покажи всички дефиниции
И за да "отмените" работния процес, въведете:
Много благодаря за изчерпателния отговор! Ще опитам.
Удоволствието е мое! Надявам се да работи.
Страхувам се, че сте направили нещо нередно с undeploy. При вас тази грешка, ако възникне - означава. че системата търси и не намира модела. За да не ругаете повече така, можете просто да разположите модел с дадено пространство от имена през интерфейса или да изчистите всичко в самата база данни и след това да индексирате отново всичко.
Но като цяло бих посъветвал в тази ситуация, когато вече не е ясно защо е изкривено, пренаредете откритото пространство, изработете новия си работен процес (без моето разполагане) и след това, когато всичко работи, поставете алвексия. Но сега картината вече е замъглена
Имате грешен XML. Съдейки по alfresco-config, това е или share-config-custom.xml, или web-client-config-custom.xml
Както вече видяхте, почти всички файлове на процеси - модели, описания на процеси, описания на интерфейси и клиенти - са XML файлове. Съответно всички елементи и атрибути трябва да бъдат написани правилно и затворени на правилното място.
И какво е сега псуването, като разбирам, че нещо не е наред с файла web-client-config-custom