Bienvenue
Jalios Community
Tout ce que vous souhaitez savoir sur l'écosystème Jalios
De plus en plus de fonctions de JPlatform participent à la gestion des processus de l'organisation. JPlatform 10 introduit une nouvelle API qui permet connaitre la structure de l'organisation et la relation hiérarchique entre les membres (qui est responsable de qui).
De plus en plus de fonctions ou modules de JPlatform participent à la gestion des processus de l'organisation (JLearn, JProcess, Gestion des congés, Recrutement, ...)
Pour cela, ces modules ont besoins de connaitre la structure de l'organisation et la relation hiérarchique entre les membres (qui est responsable de qui). Il est notamment important de pouvoir déterminer les membres qui composent l'équipe d'un responsable.
Jusqu'à présent ces informations étaient portées par le module Organigramme (FlowChart). En conséquence plusieurs modules étaient donc dépendant de ce module pour pouvoir fonctionner.
JPlatform 10 lève cette contrainte en ré-introduisant dans le coeur une API de gestion de la structure de l'organisation.
Celle-ci gère les informations suivantes :
Grâce à ces informations, cette API permet déterminer notamment l'ensemble des collaborateurs d'un responsable.
Le module Organigramme se base sur cette nouvelle API.
La structure de l'organisation (département, services, filiales, ...) est représentée par des groupes.
Ces groupes sous tous fils d'un groupe parent qui est déclaré par la propriété $channel.organization.root-group
qui est éditable dans le gestionnaire des propriétés (onglet Utilisateurs
)
On stocke des responsables déclarés sur des groupes et des membres.
On calcule des responsables sur les groupes de l'organisation et les membres n'ayant pas de responsable déclaré.
declaredManager
) Un champ declaredManager
de type Member
a été ajouté aux classes Group
et Member
.
Ce champ contient le manager explicite d'un groupe ou du membre.
Sur un groupe, le declaredManager
représente responsable de tous les membres de ce groupe et des sous-groupes qui n'ont pas de manager déclaré.
Sur un membre, le declaredManager
représente un responsable spécifique qui prévaut sur le responsable calculé des groupes auquel appartient le membre. Ce champ ne doit donc être utilisé que pour des cas particuliers.
L'ancienne propriété racine de l'organisation fournie par le module Organigramme (jcmsplugin.flowchart.root.id
) n'est pas migrée et doit être re-saisie dans le gestionnaire des propriétés (onglet Utilisateurs
) pour alimenter la nouvelle propriété $channel.organization-root-group
Les extradata/extradbdata des groupes et des membres sont migrés en lazy. Elles sont relues et transférées dans l'attribut declaredMember
lors du l'accès via la méthode getDeclaredManager
.
Lors de l'enregistrement du groupe ou du membre, le champs declaredMember
est donc mis à jour (et les extradata=/=extradbdata
ne seront alors plus jamais accédées).
L'interface d'édition d'un groupe comporte le champ Responsable
.
L'interface d'édition d'un membre a été revue. Une nouvelle section Organisation
(fieldset) regroupe les champs Organisation
, Service
, Fonction
et Responsable
.
L'interface d'affichage du profil du membre en back-office reflète aussi cette structure.
Dans toutes ces interfaces, les champs Responsable
n'apparaissent que si un groupe racine de l'organisation a été défini dans les propriétés.
Une nouvelle colonne Responsable
affichant la valeur du champ declaredManager
a été ajoutée aux export CSV des membres et des groupes.
Les exports XML et JSON d'un membre ou d'un groupe comporte le champ declaredManager
.
Il est possible de demander le related manager
pour obtenir le manager effectif du groupe ou du membre.
Exemple : http://localhost:8080/en/rest/data/c_1234?related=manager
Le module Organigramme 4.0 (compatible uniquement JPlatform 10) ne fournit plus d'extradata/extradbdata pour saisir le manager dans l'édition d'un groupe ou d'un membre.
Par contre, une extradata est toujours fourni pour saisir l'assistant(e) sur un groupe.
L'attribut teamPortal
a été ajouté sur la classe Group
. Celui-ci n'est proposé à la saisie dans l'éditeur de groupe que si il existe un groupe racine de l'organisation.
La méthode Member.getTeamPortal()
retourne le portail d'équipe du membre. Celui-ci est déterminé en faisant un parcours en largeur du l'arbre des groupes. On commence donc par les groupes auquel est rattaché le membre puis on remonte niveau par niveau.
La portlet Redirection
(PortletPortalRedirect
) propose parmi les différents choix de redirection, la redirection vers le portail d'équipe du membre.
La méthode Group.getManager()
renvoie le responsable du groupe (déclaré ou déduis des groupes parents). Pour les groupes parents, on recherche le plus proche groupe parent ayant un manager déclaré.
La recherche se fait en largeur (et non en profondeur) dans l'arborescence des parents.
La méthode Group:isManagedBy(Member)
renvoie true
si ce groupe est effectivement géré par le membre fourni.
La méthode Member.getManager()
renvoie le responsable du membre (déclaré ou déduis des groupes du membres)
La méthode Member.isManagerOf(Group)
renvoie true
si ce membre est le responsable du groupe fourni.
La méthode Member.getManagedMemberSet()
renvoie l'ensemble des membres gérés directement par un responsable.
Module Organigramme | JPlatform 10 |
---|---|
FlowChartManager.getRootGroup() |
Channel.getOrganizationRootGroup() |
FlowChartManager.getFirstManager(Member) |
Member.getManager() |
FlowChartManager.getFirstManager(Member, DataSelector) |
Member.getManager(DataSelector) |
FlowChartManager.getDeclaredManager(Group) |
Group.getDeclaredManager() |
FlowChartManager.isManager(Member, Group) |
Group.isManagedBy(Member) Member.isManagerOf(Group) |
FlowChartManager.getManagedMemberSet(Member) |
Member.getManagedMemberSet() |
FlowChartManager.getGroupSet(Member) |
Member.getOrganizationGroupSet() |