Capítulo 16. Configuração do Servidor de Execução de Processos


16.1. Regras de Atribuição

As regras de atribuição são regras executadas automaticamente quando uma Tarefa Humana é criada ou concluída. Esse mecanismo pode ser usado, por exemplo, para atribuir automaticamente uma Tarefa Humana a um usuário de um grupo em particular ou para prevenir que um usuário conclua uma Tarefa, caso os dados estejam ausentes.

16.1.1. Definindo as Regras de Atribuição

Para definir as regras de atribuição, siga as instruções a seguir:
  1. Crie um arquivo que contenha a definição de regra no caminho de classe do Business Central (o local recomendado é $DEPLOY_DIR/standalone/deployments/business-central.war/WEB-INF/classes/):
    • default-add-task.drl com as regras a serem verificadas quando a Tarefa Humana é criada
    • default-complete-task.drl com as regras a serem verificadas quando a Tarefa Humana é concluída
  2. Defina as regras no arquivo.

Exemplo 16.1. Conteúdo default-add-task.drl

package defaultPackage

import org.kie.api.task.model.Task;
import org.kie.api.task.model.User;
import org.kie.api.task.model.Status;
import org.kie.api.task.model.PeopleAssignments;
import org.jbpm.services.task.rule.TaskServiceRequest;
import org.jbpm.services.task.exception.PermissionDeniedException;
import org.jbpm.services.task.impl.model.*;
import java.util.HashMap;
import java.util.List;


global TaskServiceRequest request;

rule "Don't allow Mary to complete task when rejected"
    when
        $task : Task()
        $actualOwner : User( id == 'mary') from $task.getTaskData().getActualOwner()
        $params : HashMap(this["approved"] == false)
    then
        request.setAllowed(false);
        request.setExceptionClass(PermissionDeniedException.class);
        request.addReason("Mary is not allowed to complete task with approved false");
end
Caso os proprietários potenciais de uma Tarefa Humana contenham o usuário Mary, a tarefa será atribuída automaticamente ao usuário mary.

Exemplo 16.2. Conteúdo default-complete-task.drl

package defaultPackage

import org.kie.api.task.model.Task;
import org.kie.api.task.model.User;
import org.kie.api.task.model.Status;
import org.kie.api.task.model.PeopleAssignments;
import org.jbpm.services.task.rule.TaskServiceRequest;
import org.jbpm.services.task.exception.PermissionDeniedException;
import org.jbpm.services.task.impl.model.*;
import java.util.HashMap;
import java.util.List;


global TaskServiceRequest request;

rule "Don't allow Mary to complete task when rejected"
    when
        $task : Task()
        $actualOwner : User( id == 'mary') from $task.getTaskData().getActualOwner()
        $params : HashMap(this["approved"] == false)
    then
        request.setAllowed(false);
        request.setExceptionClass(PermissionDeniedException.class);
        request.addReason("Mary is not allowed to complete task without approval.");
end
Caso os proprietários potenciais de uma Tarefa Humana contenham o usuário Mary, a tarefa será atribuída automaticamente ao usuário mary.
Red Hat logoGithubredditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar. Explore nossas atualizações recentes.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja o Blog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

Theme

© 2026 Red Hat
Voltar ao topo