Liferay Kaleo Workflow com atribuição por categorias
18 de Sep de 2019•0 recomendaciones•111 vistas
Descargar para leer sin conexión
Denunciar
Software
Apresentação no 6º Encontro de Liferay Portugal Users Group sobre a utilização de workflows Kaleo em Liferay com atribuição de tarefas por configuração de categorias e scripting em groovy
Liferay Kaleo Workflow com atribuição por categorias
1. Liferay Portugal Users Group
6º Encontro
Liferay®
é uma marca registada de Liferay, Inc.
Construindo uma comunidade mais forte
Utilização das Categorias na
atribuição automática de
Workflows
A utilização de propriedades nas categorias de conteúdos para
decidir a atribuição automática de tarefas num workflow
Fernando Fernandez
2. 2
Tópicos
●
Para que servem os workflows
●
Vantagens de usar o Kaleo
●
Workflow Single Approver
●
Edição de workflows no Liferay IDE
●
Conceitos de workflows
●
Utilização de scripts nos workflows
●
Atribuição configurável pelo utilizador - Roles
●
Alternativa: Categorias e Propriedades
●
Implementação
3. Para que servem os workflows
●
Para coordenar as intervenções de humanos e
sistemas sobre um conjunto de dados
●
Para garantir o cumprimento de regras
internas e externas
●
Para gerir num sistema centralizado e
controlável os processos de uma organização
4. Vantagens de usar o Kaleo
●
Kaleo é o motor de Workflow embebido no Liferay
●
Workflows podem ser editados no Liferay IDE
●
Os conteúdos do Liferay podem ser submetidos a um
workflow
●
Os utilizadores do Liferay são envolvidos no Workflow
●
O interface do Liferay já inclui notificações e écrans de
gestão das tarefas
●
As aplicações desenvolvidas sobre Liferay podem
aproveitar a integração e usar os seus workflows no
contexto do portal
5. Workflow Single Approver
●
Workflow de
default do Liferay
●
Autor submete
conteúdo,
responsável aprova
para publicação ou
devolve para
correcção
6. Edição no Liferay IDE
●
A definição do workflow é
um ficheiro XML que
descreve estados, tarefas,
etc
●
Liferay IDE, em Eclipse,
permite edição assistida
8. Conceitos de workflows
●
Tipos de Nós:
– Estado – representa um estado do processo sem atribuição
a ninguém
– Tarefa – representa um estado em que o processo está
atribuído a alguém
– Transição – o caminho entre dois nós do fluxo
– Condição – automatiza a decisão entre transições
– Fork – divide a execução em duas linhas paralelas
– Join – concentra linhas paralelas de execução numa só linha
9. Conceitos de workflows (2)
●
Propriedades dos Nós:
– Action: uma acção (script) a executar quando o fluxo entra, sai
do nó ou este é atribuído
– Notification: um alerta enviado para o(s) utilizador(es) por
correio ou pelo site
– Assignment: a atribuição de uma tarefa a um utilizador ou a um
papel/perfil, pré-definida ou programada por script
– Timer: a execução de acções de notificação, reatribuição ou
scripts genéricos após certo tempo
10. Utilização de scripts nos workflows
●
Programação em Groovy, Javascript, etc. Pode ser embutida em vários
pontos do workflow
11. Atribuição a Roles
●
Roles (papéis/perfis) podem ser atribuídos a
utilizadores ou grupos de utilizadores
●
São configurados para
terem certas permissões
e tarefas
●
Workflow tem que ser
construído com referência
explícita, fixa, aos roles
12. Maior flexibilidade
●
E se os Roles pudessem estar associados às
Categorias dos artigos?
●
Entram as Propriedades – pares chave+valor
associados a cada categoria, editáveis por
qualquer administrador de conteúdos
●
Um script no workflow pode ler o role da categoria
e fazer a atribuição que lá esteja configurada
13. Implementação
●
Caso de uso: publicação de artigos sobre hardware ou software,
com revisão por roles diferentes consoante a categoria
●
Criação de 2 Roles: HardwareReviewer, SoftwareReviewer
●
Atribuição de 2 Users para os Roles: Steve e Bill
●
Criação de 2 Categorias: Hardware e Software
●
Obrigatoriedade de categorização dos artigos
●
Construção do workflow com atribuição por script (derivado do
single-approver original)
14. O script
●
Objectivo: preenchimento da variável “roles”
●
Utilização de logging para debug
●
Elementos de contexto em workflowContext (Map)
●
API: JournalArticleLocalServiceUtil,
AssetEntryLocalServiceUtil,
AssetCategoryPropertyLocalServiceUtil,
RoleLocalServiceUtil
–
15. Script (2) - código
roles = new ArrayList<Role>();
Log logr = LogFactoryUtil.getLog("WorkflowScript");
logr.info("Workflow Assignment Script Running...");
long companyId = Long.parseLong((String)workflowContext.get(WorkflowConstants.CONTEXT_COMPANY_ID));
long articleId = Long.parseLong((String)workflowContext.get(WorkflowConstants.CONTEXT_ENTRY_CLASS_PK));
String articleClassName = (String) workflowContext.get(WorkflowConstants.CONTEXT_ENTRY_CLASS_NAME);
long articlePK = JournalArticleLocalServiceUtil.getArticle(articleId).getResourcePrimKey();
AssetEntry articleAssetEntry = AssetEntryLocalServiceUtil.getEntry(articleClassName, articlePK);
AssetCategory cat = articleAssetEntry.getCategories().get(0);
List<AssetCategoryProperty> propList = AssetCategoryPropertyLocalServiceUtil.getCategoryProperties(cat.getCategoryId());
Role categoryRole = RoleLocalServiceUtil.getRole(companyId, propList.get(0).getValue());
roles.add(categoryRole);
logr.info("Assigning to "+categoryRole.getName());
user = null;
17. Revisão
●
Conceitos de workflows
●
Vantagens do Liferay Kaleo Workflow
●
Criação de um workflow
●
Programação da atribuição de tarefas com
Groovy e API Liferay
●
Exemplo de funcionamento