Los usuarios y grupos en Activiti se utilizan para definir candidatos y administradores de tareas. Los grupos pueden entenderse como roles. Los usuarios que pertenecen a un determinado grupo pueden ser candidatos o responsables de una determinada tarea.
También podemos crear, consultar o eliminar un usuario o grupo a través de la API de Activiti. Activiti también proporciona una API de relaciones para vincular relaciones entre usuarios y grupos.
(1) Crear un usuario
Primero use newUser (String userId) de IdentityService para crear un objeto Usuario, luego configure sus propiedades relacionadas y finalmente llame a saveUser (Usuario usuario) para persistir; el usuario.
(2) Consultar usuarios
Aquí, el ID de usuario se utiliza como condición de consulta para consultar al usuario recién creado. La mayoría de los métodos de la clase UserQuery (como el método userId aquí) admiten operaciones en cadena. La operación en cadena significa que estos métodos devolverán el objeto de clase en sí, de modo que podamos llamar a estos métodos de clase como una cadena.
(3) Eliminar usuario
Si se utiliza userId como parámetro de entrada, llamar al método deleteUser eliminará al usuario.
En Activiti, los tipos de grupos se dividen en asignación y función de seguridad. La primera es una función común, que se utiliza para asignar permisos de funciones comerciales; el segundo es una función de gestión, que se utiliza para gestionar la estructura organizativa y. procesos.
La clase IdentityService también tiene métodos correspondientes para crear, guardar, consultar y eliminar grupos.
La relación entre usuarios y grupos es de muchos a muchos. Un usuario puede pertenecer a varios grupos y un grupo también puede contener varios usuarios.
Utilizando el método reateMembership(String userId, String groupId), puede establecer la relación entre usuarios y grupos.
Si desea consultar a todos los usuarios de un grupo específico, primero debe crear un objeto UserQuery y luego llamar al método memberOfGroup(String groupId), que generará SQL para consultar a todos los usuarios que pertenecen al grupo. grupo.
Para consultar los grupos de un usuario específico, debe crear un objeto GroupQuery y luego llamar al método groupMember(String groupMemberUserId).
La tarea aquí se refiere a userTask, que es una tarea que requiere personas para manejarla. Primero podemos asignar la tarea a uno o más candidatos o grupos de candidatos. De esta forma, la tarea sólo podrá procesarse después de que alguien la firme.
Puede especificar grupos de candidatos a través de activiti: memberGroups en la etiqueta userTask en el archivo bpmn, en la forma:
Después de que userTask define el grupo de candidatos, los usuarios que pertenecen al candidato El grupo podrá firmar y luego encargarse de la tarea.
Si hay varios usuarios en el grupo de candidatos, entonces solo uno de ellos se ha registrado para la tarea y los demás usuarios no podrán ver la tarea:
Siempre que la tarea no se ha firmado Firma, cualquier usuario del grupo de candidatos puede firmar para la tarea una vez que la tarea está firmada, otros usuarios del grupo de candidatos no pueden ver ni firmar la tarea.
También puede omitir grupos de candidatos y asignar usuarios a varios candidatos directamente.
Primero, defina activiti: memberUsers en la etiqueta userTask del archivo bpmn. Aquí generalmente se utilizan varios candidatos separados por comas.
Una vez definida, puede permitir que el candidato especificado vea y firme la tarea en la API:
Después de que un candidato firme, otros candidatos no podrán ver la tarea . Sí.