L'utilitaire identifie directement ces types de dépendances pour une valeur d'attribut calculé :
| Nom | Lorsqu'il est identifié | Déclencheur de recalcul |
|---|---|---|
| Valeur d'attribut enregistrée | Identifie une valeur d'attribut d'entrée stockée sur les tables de base de données de CER qui ont été récupérées au cours 1du calcul global de la valeur d'attribut. L'identificateur d'élément précédent fait référence à l'identificateur interne de la ligne de la base de données de l'attribut stocké sur les tables de base de données de CER. |
Si la valeur de l'attribut stocké change, un élément de changement précédent pour la valeur de l'attribut stocké est écrit dans un ensemble de changements précédents. |
| Définitions de jeux de règles | Identifie chaque jeu de règles contenant l'un des attributs utilisés dans le calcul global de la valeur d'attribut. L'identificateur d'élément précédent fait référence au nom du jeu de règles contenant une ou plusieurs définitions d'attributs rencontrées au cours du calcul global. |
Si les changements apportés à un jeu de règles CER sont publiés, alors un élément de changement précédent relatif au jeu de règles modifié est écrit sur un ensemble de changements précédents. |
| recherche 'readall' | Identifie les expressions readall (sans correspondance imbriquée) rencontrées lors du calcul global, qui ont récupéré des objets de règles stockés sur les tables de base de données de CER (contrairement aux objets de règles récupérés à l'aide des convertisseurs d'objets de règles ; voir Eléments précédents identifiés par les convertisseurs d'objet de règle). L'identificateur d'élément précédent fait référence au nom de la classe de règles recherché par l'expression readall. |
Un élément de changement précédent pour la classe de règles est écrit sur un ensemble de changements précédents dans les cas suivants :
|
| recherche 'readall/match' | Identifie les expressions readall rencontrées lors du calcul global, qui ont récupéré des objets de règles stockés sur les tables de base de données de CER (contrairement aux objets de règles récupérés à l'aide des convertisseurs d'objets de règles ; voir Eléments précédents identifiés par les convertisseurs d'objet de règle). L'identificateur d'élément précédent fait référence au nom de la classe de règles recherché par l'expression readall, accompagné de critères de recherche tels que le nom et la valeur de l'attribut. |
Un élément de changement précédent pour la classe de règles ainsi que son nom d'attribut et sa valeur de correspondance sont écrits sur un ensemble de changements précédents dans les cas suivants :
|
| 2 |
Ces types de dépendances sont explicités par un exemple.
Supposons qu'un nouveau système est écrit et qu'il utilise CER pour calculer les impôts à payer d'une personne. Ce système d'impôts à payer utilise le gestionnaire de dépendance pour stocker les dépendances, de telle sorte que les impôts à payer peuvent être recalculés (à l'aide de CER) si la situation de la personne change.
Le système d'impôts à payer stocke des informations de seuils d'impôts au niveau du système dans les objets de règles, avec ces objets de règles stockés sur les tables de base de données de CER. Les règles CER concernant le calcul des impôts à payer d'une personne comprennent une expression readall pour récupérer tous les seuils d'impôts dans le système.
Le système d'impôts à payer stocke également des informations sur les actifs au niveau du système dans les objets de règles, avec ces derniers stockés sur les tables de base de données de CER. Chaque actif indique son propriétaire et sa valeur marchande. Les règles CER concernant le calcul des impôts à payer d'une personne comprennent une expression readall pour récupérer tous les actifs appartenant à cette personne (à savoir ceux présentant un identificateur Asset.ownedByPersonID correspondant à Person.personID). Il est possible de modifier la valeur marchande d'un actif et/ou de transférer un actif d'une personne à une autre en transmettant son identificateur Asset.ownedByPersonID à partir de l'identificateur d'une personne à celui d'une autre personne.
Les règles CER concernant le calcul des impôts à payer d'une personne impliquent l'addition des valeurs Asset.marketValue de tous les actifs appartenant à cette personne.
Le système d'impôts à payer contient des jeux de règles CER distincts permettant de récupérer les données d'entrée obligatoires pour le calcul des impôts à payer, contrairement aux calculs de l'entreprise actuels qui utilisent les données récupérées pour calculer les impôts à payer d'une personne.
Un utilisateur utilise le système d'impôts à payer pour calculer les impôts à payer de Joe (ID de personne 456) et de Mary (ID de personne 457), qui possèdent chacun un actif. Le système d'impôts à payer utilise l'utilitaire CER pour identifier les dépendances et les transmet au gestionnaire de dépendance pour le stockage, ce qui entraîne le stockage des dépendances suivantes :
| Type d'élément dépendant | Identificateur d'élément dépendant | Type d'élément précédent | Identificateur d'élément précédent |
|---|---|---|---|
| Impôts à payer | 456 (ID de personne de Joe) | recherche 'readall' | Classe de règles : TaxThreshold3 |
| Impôts à payer | 456 | recherche 'readall/match' | Classe de règles : Asset, avec la valeur d'attribut ownedByPersonID=4564 |
| Impôts à payer | 456 | Valeur d'attribut stockée | 789 (identificateur interne de la valeur Asset.marketValue de l'actif de Joe)5 |
| Impôts à payer | 456 | Définitions de jeux de règles | TaxLiabilityDataRetrievalRuleSet6 |
| Impôts à payer | 456 | Définitions de jeux de règles | TaxLiabilityBusinessCalculationsRuleSet7 |
| Impôts à payer | 457 (ID de personne de Mary) | recherche 'readall' | Classe de règles: TaxThreshold8 |
| Impôts à payer | 457 | recherche 'readall/match' | Classe de règles : Asset, avec la valeur d'attribut ownedByPersonID=4579 |
| Impôts à payer | 457 | Valeur d'attribut stockée | 780 (identificateur interne de la valeur Asset.marketValue de l'actif de Mary)10 |
| Impôts à payer | 457 | Définitions de jeux de règles | TaxLiabilityDataRetrievalRuleSet11 |
| Impôts à payer | 457 | Définitions de jeux de règles | TaxLiabilityBusinessCalculationsRuleSet12 |
| 13141516171819202122 |
Nous pouvons voir maintenant comment les recalculs des impôts à payer sont déclenchés par divers changements de données :
| Changements de données | Eléments de changements précédents enregistrés | Recalculs déclenchés |
|---|---|---|
| La valeur marchande de l'actif de Joe augmente de 100 $ à 120 $ |
|
|
| Mary vend son actif et son objet de règle est supprimé |
|
|
| Joe reçoit un nouvel actif, stocké en tant que nouvel objet de règle |
|
|
| Joe transfère son premier actif à Mary, l'élément ownedByPersonID de l'actif passe donc de 456 à 457 |
|
|
| Un administrateur présente un nouveau seuil d'impôts, stocké en tant que nouvel objet de règle |
|
|
| Un administrateur supprime un seuil d'impôts existant, ce qui supprime son objet de règle |
|
|
| Un administrateur publie les changements apportés au jeu de règles TaxLiabilityBusinessCalculationsRuleSet |
|
|