Capítulo 16. Configuração do Servidor de Execução de Processos
16.1. Regras de Atribuição Copiar o linkLink copiado para a área de transferência!
Copiar o linkLink copiado para a área de transferência!
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 Copiar o linkLink copiado para a área de transferência!
Copiar o linkLink copiado para a área de transferência!
Para definir as regras de atribuição, siga as instruções a seguir:
- 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.drlcom as regras a serem verificadas quando a Tarefa Humana é criadadefault-complete-task.drlcom as regras a serem verificadas quando a Tarefa Humana é concluída
- 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.