Cas d'utilisation (partage)

De Wiki1000
Version du 11 décembre 2009 à 09:19 par Syfre (discuter | contributions)
(diff) ← Version précédente | Voir la version courante (diff) | Version suivante → (diff)

Sommaire

Attributs privés

Définition

Un attribut privé est un attribut dont la valeur peut être différente d'un périmètre à un autre pour un même objet partagé. Par exemple un Tiers de niveau Groupe peut avoir des conditions commerciales différentes d'une société à une autre.

Implémentation

Les attributs privés d'une classe sont stockés dans une classe séparée (dite de partage) réalisant une association entre cette classe et la classe des périmètres. Cette classe de partage est créée automatiquement et dynamiquement par le framework.

Les attributs privés d'une classe sont tous définis au même niveau.

Escalade

Lorsqu'un objet est partagé la valeur des attributs privés doivent être définis dans chacun des périmètres sociétés où l'objet est utilisé; par exemple pour un Tiers groupe partagé par deux sociétés il faut définir les conditions comerciales sur chacune des sociétés.

L'escalade permet de gérer les valeurs attributs privés par exception :

  1. Si les valeurs sont définies au niveau Société ces valeurs sont utilisées
  2. Sinon, Si les valeurs sont définies au niveau Domaine ces valeurs sont utilisées
  3. Sinon, Si les valeurs sont définies au niveau Groupe ces valeurs sont utilisées

Saisie des attributs privés

Les cas d'utilisation normal de saisie des attributs privés sont :

  • L'utilisateur crée un nouvel objet partagé, sans action particulière il saisie les valeurs des attributs privés. Ces valeurs sont saisies au niveau de partage de l'objet.
  • L'utilisateur désir définir les valeurs de cascade des attributs privés, il ouvre le dialogue de configuration des niveau de partage et dans l'onglet "Partage d'attribut" il coche saisie au niveau "Groupe" ou "Domain", il saisie ensuite les valeurs des attributs. Ces valeurs sont saisie au niveau de partage de l'objet.

Les zones de saisie des attributs privés sont accessibles si :

  • L'utilisateur n'a pas sélectionné un niveau de saisie ET le niveau de partage des attributs privé est égal au niveau de partage de l'objet
  • L'utilisateur à sélectionné un niveau de saisie ET le niveau de partage des attributs privé est égal au niveau sélectionné

Impacts sur le moteur de règle

Cas de test

Les combinaisons possibles suivant le périmètre de partage de la classe métier et le niveau d'un objet de cette classe sont les suivantes :

Périmètre du domaine de la classe Niveau de l'objet Niveau des attributs
Groupe Groupe (*) Groupe (*)
Groupe Groupe Domaine
Groupe Groupe Société
Domaine Groupe Groupe
Domaine Groupe Domaine
Domaine Groupe Société
Domaine Domaine (*)(**) Domaine (*)
Domaine Domaine Société
Domaine Société Société
Société Société (*) Société (*)

(*) : Niveau par défaut utilisé lors de la création.

(**): Si l'utilisateur n'a pas les droits de création le niveau société est utilisé, puis le niveau groupe

Relation entre le périmètre du domaine de la classe métier et le niveau d'un objet de la classe :

  • Si le périmètre est Groupe un objet ne peut être que de niveau Groupe.
  • Si le périmètre est Domaine un objet peut être de niveau Groupe, Domaine ou Société.
  • Si le périmètre est Sociétée un objet ne peut être que de niveau Société.

Relation entre le niveau d'un objet et le niveau des attributs privés de cet objet :

  • Si l'objet est de niveau Groupe les attributs privés peuvent être définis au niveau Groupe, Domaine ou Société.
  • Si l'objet est de niveau Domaine les attributs privés peuvent être définis au niveau Domaine ou Société.
  • Si l'objet est de niveau groupe les attributs privés ne peuvent être définis qu'au niveau Société.

Gestion des rôles

Compositions

Règle des composants : Le niveau de partage d'un composant est initialisé au niveau de partage du composé.
Règle des références : Un objet ne peut pas référencer un objet de niveau supérieur,
par exemple un objet de niveau groupe ne peut pas référencer un objet de niveau société.
Règle des associations : Les références des associations ne sont pas contrôlées. 

Modification du niveau de partage

La modification du niveau de partage d'un objet peut poser des problèmes d'intégrité, par exemple :

  • L'objet peut être référencé par d'autre objets, ces objets sont-ils compatibles avec le nouveau niveau de l'objet (règle des références) ?
  • L'objet peut posséder des attributs privés dans plusieurs périmètres, que deviennent ces attributs privés ?
  • L'objet peut être un composant, la modification du niveau de partage a-t-elle un sens en dehors du context du composé ?

Certains de ces problèmes ne sont pas forcément contrôlable, par exemple la règle des références ne peut pas être assurée lors du changement de niveau d'un objet.

Pour ces raisons le changement de niveau d'un objet n'est possible que vers un niveau inférieur. Les changements possibles sont donc :

  • Niveau Société vers Niveau Domaine.
  • Niveau Société vers Niveau Groupe.
  • Niveau Domaine vers Niveau Groupe.

Compteurs et identités

Les compteurs sans modèle

Les compteurs qui n'utilisent pas de modèle sont partagés par tous les perimètres du Dossier.

Les compteurs avec modèle

Une instance d'un compteur avec modèle est partagée :

  • Par le périmètre de l'objet si le compteur modèle est tiré à l'écriture .
  • Par le périmètre de la Société de travail si le compteur modèle n'est pas tiré à l'écriture.

Les identités

Les attributs de type identité sont partagés par tous les perimètres du Dossier.

Initialisation des partages

Les périmètres de partage de type Dossier ou Activité peuvent être initialisés par le mécanisme d'initialisation des paquets métier basé sur les classes TRegister.

La classe TRegister d'un paquet de partage peut contenir une méthode d'initialisation pour chaque domaine métier du paquet; cette méthode doit avoir le nom du domaine métier et pour signature :

procedure <Nom du domaine métier>(const iOIDPerimeter:TOID; const iLevel:Integer);

Ces méthodes sont exécutées :

  • Lors de la création d'un périmètre de partage du domaine
  • Lors de l'entrée dans une application du dossier
  • Lors de la synchronisation de la base de données du dossier

Une liste des méthodes exécutée est maintenue par le modèle de partage de sorte qu'une méthode ne soit exécutée qu'une seule fois lors de l'entrée dans une application du dossier.

Lors de la synchronisation de la base données du dossier cette liste est réinitialisée et toutes les méthodes sont réexécutées.

Le périmètre Dossier, qui n'est pas associé à un domaine métier, exécute la méthode de nom <Dossier>

Rappel : Le nom d'une classe TRegister doit être TRegister<Nom du paquet métier>

Remarque : Si la classe support d'un paquet de partage contient une méthode Initialize elle sera exécutée lors de l'entrée dans une application du dossier par le mécanisme commun d'initialisation des paquets métiers.

Cumuls

Trois cas sont considérés :

La classe Cumul n'est pas dans un domaine.

Dans ce cas l'information de partage de la classe cumulé est ignorée, le cumul est donc globale sur tous les périmètres du dossier.

Les classes Cumul et Cumulé sont dans un domaine.

Dans ce cas l'information de partage est un critère implicite du cumul, le cumul est donc réalisé par périmètre.

Si les domaines Cumul et Cumul sont incohérents les objets cumulés créés pouront ne pas être accessible. Par exemple dans le cas de deux domaines métiers différents les périmètres activités de la classe cumulée ne sont pas visible dans le domaine de la classe cumul.

La classe Cumul est dans un domaine mais pas la classe cumulé.

Dans ce cas le périmètre Dossier est utilisé comme périmètre de partage de la classe cumul.

Processus Métiers

Evènements

Le périmètre de partage de la société active est enregistré avec l'évènement

property oidEventPerimeter:TOID; 
property EventParameterName:string;

Le dialogue de propriété du moteur de Processus Métiers permet de sélectionner les périmètres de partage des évènements qui seront pris en compte.

Si aucun périmètre n'est sélectionné tous les évènements de tous les périmètre du dossier sont pris en compte.

bpengine.png

Le dialogue de propriété d'un processus permet de sélectionné un périmètre lorsque la création d'une instance du processus doit créer un objet.

Notez que le périmètre indiqué ici n'est pas forcément le périmètre des évènements métiers pris en compte par l'instance.

bpprocessus.png

Exportation

Exportation des informations de partage

Inclure dans le descriptif d'export l'attribut ShareInfo qui contient le nom du périmètre de partage de l'objet :

export-partage.png

Importation

Fonctions disponibles dans l'évaluateur d'expression

function ShareSociety:string;

Retourne le nom de la Société de travail active.

function ShareOIDSociety:TOID;

Retourne l'identifiant de la Société de travail active.

Filtrer les données sources sur un périmètre de partage

Utilisez la pseudo colonne "Importer" pour filtrer les lignes sources suivant le périmètre de la Société de travail

import-partage.png

Affecter le périmètre de partage aux objets importer

TODO

Automates de traitement

Caches

Le gestionnaire de partage maintient trois caches :

Un cache des périmètres

Clé oid périmètre
Valeurs Libellés du périmètre

Niveau de partage du périmètre (immuable)

Invalide si Les libellés du périmètre change
Invalidé Jamais

Un cache des périmètres autorisés pour un périmètre société

Clé oid périmètre (société)

domaine métier

Valeurs Périmètre autorisé pour le périmètre dans le domaine
Invalide si Le périmètre autorisé d'un périmètre (société) change.
Invalidé Jamais

Un cache des droits utilisateurs

Clé oid entité authentifié

oid périmètre

Valeurs Droits de l'utilisateur sur le périmètre.
Invalide si Les droits de l'utilisateur change.
Invalidé A la connexion de l'utilisateur.

Développement DSM

Outils personnels