Cumuls (model)

De Wiki1000
(Différences entre les versions)
(Introduction)
(Définition des attributs critères)
 
(11 révisions intermédiaires par un utilisateur sont masquées)
Ligne 21 : Ligne 21 :
 
{{#images:image1.png|dsm/modele/cumul}}
 
{{#images:image1.png|dsm/modele/cumul}}
  
{{#images:image2.png|dsm/modele/cumul}}
+
{{#images:image2a.png|dsm/modele/cumul}}
  
 
====Définitions des attributs calculés====
 
====Définitions des attributs calculés====
  
{{#images:image3.png|dsm/modele/cumul}}
+
{{#images:image3a.png|dsm/modele/cumul}}
  
 
*Attributs cumulés
 
*Attributs cumulés
 
:Ce sont les attributs de la classe cumul qui reçoivent les valeurs cumulées. Ces attributs doivent être de '''type sérialisé'''.
 
:Ce sont les attributs de la classe cumul qui reçoivent les valeurs cumulées. Ces attributs doivent être de '''type sérialisé'''.
 +
 
*Attribut sources
 
*Attribut sources
 
:Ce sont les attributs de la classe source qui doivent être cumulés.
 
:Ce sont les attributs de la classe source qui doivent être cumulés.
 +
 
*Opérations
 
*Opérations
 
:Ce sont les opérations effectuées sur les attributs sources.
 
:Ce sont les opérations effectuées sur les attributs sources.
Ligne 41 : Ligne 43 :
  
 
====Définition des attributs critères====
 
====Définition des attributs critères====
Les attributs critères déterminent le sous-ensemble d'objets de la classe cumulée qui réalisera le cumul. Le sous-ensemble d'objets est composé des objets de la classe cumulée pour lesquels la correspondance entre les attributs de la classe cumul et les attributs de la classe cumulée est vérifiée. Les attributs de la classe cumul qui n'ont aucune correspondance sont ignorés.
+
Les attributs critères déterminent le regroupement d'objets de la classe cumulée qui réalisera le cumul.  
+
Pour ajouter ou modifier un attribut dans les Attributs de la classe cumulée, double-cliquez sur la ligne correspondant à l'attribut de la classe cumul et sélectionnez dans la cassette de dialogue l’attribut ou le rôle qui sera le critère.
+
  
{{#images:image4.png|dsm/modele/cumul}}
+
{{tip|Dans une analogie avec un agrégat SQL ces critères correspondent au Group By de la requête SQL}}
 +
 
 +
Les attributs critères sont composés de tous les attributs de la classe cumul qui ne sont pas des attributs numériques.
 +
 
 +
Pour chacun de ces critères vous devez définir une correspondance dans la classe cumulée.
 +
 
 +
[[image:cumul-propbind-1.png]]
 +
 
 +
* Attribut de la classe cumul
 +
: Il s'agit de l'attribut dans la classe cumul recevant la valeur de regroupement
 +
 
 +
* Attribut de la classe cumulée
 +
: Il s'agit de l'attribut dans la classe cumulée sur lequel est réalisé le regroupement.
 +
 
 +
* Opérateur de date {{Version650}}
 +
: Si l'attribut de la classe cumul est de type Datetime il est possible de définir un opérateur pour retourner une partie de cette date. Dans ce cas l'attribut de la classe cumul doit être de type Entier.
 +
 
 +
* Value nulle. {{Version710}}
 +
{|class="wikitable"
 +
|-
 +
!Valeur
 +
!Usage
 +
!Version antérieure
 +
|-
 +
|Erreur
 +
|La valeur ne doit pas être nulle, une erreur est levée.
 +
|Facultatif = Non
 +
|-
 +
|Ignorer
 +
|La valeur peut être nulle et le cumul sera ignoré.
 +
|Facultatif = Oui
 +
|-
 +
|Accepter
 +
|La valeur peut être nulle et le cumul sera appliqué.
 +
|
 +
|}
  
 
====Définition des conditions====
 
====Définition des conditions====
On peut affiner le fonctionnement des cumuls par des conditions d'application sur l’objet source. Le cumul s'applique si l'évaluation d'une expression booléenne donne le résultat TRUE.
+
On peut affiner le fonctionnement des cumuls par des conditions d'application sur l’objet source.  
  
{{#images:image5.png|dsm/modele/cumul}}
+
{{tip|Un objet est cumulé que si la valeur de tous les critères est non nulle, excepté pour un rôle si il est défini comme facultatif.}}
  
Exemple
+
[[image:cumul-conditions-1.png]]
  
<source lang='delphi'>piece.journal.code='VEN'</source>
+
* Attribut boolean devant être vrai.
 +
:L'objet n'est cumulé que si la valeur de cet attribut est True.
  
Dans l'exemple ci-dessus le cumul s'applique uniquement pour les écritures issues des pièces dans le journal 'VEN'  
+
* Condition sur l'objet source
 +
: L'objet n'est cumulé que si la valeur retournée par l'expression est True.
 +
 
 +
{{tip|Cette expression doit être constante car elle n'est évaluée que sur les valeurs courantes des propriétés de la classe cumulée (et pas sur les valeurs d'origine avant modification).}}
 +
 
 +
* Gérer ce cumul en mode cluster
 +
: Voir [[Cumul_cluster_(Modèle)|gestion des cumuls en en mode cluster]]
  
 
====Requête d'initialisation du cumul====
 
====Requête d'initialisation du cumul====
Ligne 62 : Ligne 104 :
 
Cet onglet affiche la requête d'initialisation du cumul que le framework exécutera.
 
Cet onglet affiche la requête d'initialisation du cumul que le framework exécutera.
  
{{#images:image6.png|dsm/modele/cumul}}
+
{{#images:image6a.png|dsm/modele/cumul}}
 +
 
 +
{{IfLatest|
 +
====Cumul conditionné====
 +
Il est possible de conditionner la prise en compte du cumul par une méthode de classe de la classe cumul.
 +
 
 +
[[image:cumul-enabled.png]]
 +
 
 +
La méthode doit retourner une valeur booléenne à True ou False.
 +
 
 +
Si la valeur est False le cumul est désactivé.
 +
 
 +
{{warning|Cette méthode n'est évaluer qu'une fois par cumul, la valeur de retour doit donc être statique et correspond à l'activation du cumul dans le contexte de l'application}}
 +
{{tip|Si la méthode n'est pas une méthode de classe ou ne retourne pas une valeur booléenne elle sera ignorée et le cumul sera activé.}}
 +
}}
  
 +
Voir aussi:
 +
* [[Cumul cluster (Modèle)|Cumul cluster]]
  
 
{{Footer|Modèle}}
 
{{Footer|Modèle}}
 
[[category:Modèle]]
 
[[category:Modèle]]

Version actuelle en date du 18 septembre 2017 à 14:24

Sommaire

Introduction

Les cumuls offrent le support pour réaliser de manière efficace des cumuls de valeurs numériques.

La définition d’un cumul met en œuvre plusieurs éléments :

  • Une classe cumulée (source) qui contient :
Les attributs numériques devant être cumulés.
Les attributs servant de critères de regroupement.
Les conditions, optionnelles, permettant de contrôler la mise à jour des cumuls.
  • Une classe cumul (destination) qui contient :
La définition des cumuls.
Les attributs numériques recevant les cumuls des attributs cumulés. Ces attributs doivent être définis comme en utilisant des types de données « sérialisés ».
Les attributs recevant les critères de regroupement.

La définition d’un cumul consiste à définir les relations entre ces différents éléments.

A chaque mise à jour d'un objet sur lequel porte des cumuls le framework se charge de mettre à jour automatiquement les classes contenant les cumuls.

Création d'un cumul

Pour ajouter un cumul à une classe, sélectionnez la classe destination dans le concepteur de modèle et cliquez droit. Dans le menu contextuel cliquez sur Ajouter un cumul.

image1.png

image2a.png

Définitions des attributs calculés

image3a.png

  • Attributs cumulés
Ce sont les attributs de la classe cumul qui reçoivent les valeurs cumulées. Ces attributs doivent être de type sérialisé.
  • Attribut sources
Ce sont les attributs de la classe source qui doivent être cumulés.
  • Opérations
Ce sont les opérations effectuées sur les attributs sources.

Deux opérations sont disponibles :

  • Addition : l'attribut cumulé est la somme des attributs sources.
  • Soustraction : l'attribut cumulé est la différence des attributs sources.

Pour ajouter un nouvel attribut cumulé, dans l’onglet Calculés appuyer sur la touche INSER et pour supprimer un attribut cumulé appuyer sur la combinaison de touches CTRL + SUPPR.

Définition des attributs critères

Les attributs critères déterminent le regroupement d'objets de la classe cumulée qui réalisera le cumul.

Tip-20px.png Tip : Dans une analogie avec un agrégat SQL ces critères correspondent au Group By de la requête SQL

Les attributs critères sont composés de tous les attributs de la classe cumul qui ne sont pas des attributs numériques.

Pour chacun de ces critères vous devez définir une correspondance dans la classe cumulée.

Cumul-propbind-1.png

  • Attribut de la classe cumul
Il s'agit de l'attribut dans la classe cumul recevant la valeur de regroupement
  • Attribut de la classe cumulée
Il s'agit de l'attribut dans la classe cumulée sur lequel est réalisé le regroupement.
  • Opérateur de date version650-32x32.png
Si l'attribut de la classe cumul est de type Datetime il est possible de définir un opérateur pour retourner une partie de cette date. Dans ce cas l'attribut de la classe cumul doit être de type Entier.
  • Value nulle. version710-32x32.png
Valeur Usage Version antérieure
Erreur La valeur ne doit pas être nulle, une erreur est levée. Facultatif = Non
Ignorer La valeur peut être nulle et le cumul sera ignoré. Facultatif = Oui
Accepter La valeur peut être nulle et le cumul sera appliqué.

Définition des conditions

On peut affiner le fonctionnement des cumuls par des conditions d'application sur l’objet source.

Tip-20px.png Tip : Un objet est cumulé que si la valeur de tous les critères est non nulle, excepté pour un rôle si il est défini comme facultatif.

Cumul-conditions-1.png

  • Attribut boolean devant être vrai.
L'objet n'est cumulé que si la valeur de cet attribut est True.
  • Condition sur l'objet source
L'objet n'est cumulé que si la valeur retournée par l'expression est True.
Tip-20px.png Tip : Cette expression doit être constante car elle n'est évaluée que sur les valeurs courantes des propriétés de la classe cumulée (et pas sur les valeurs d'origine avant modification).
  • Gérer ce cumul en mode cluster
Voir gestion des cumuls en en mode cluster

Requête d'initialisation du cumul

Cet onglet affiche la requête d'initialisation du cumul que le framework exécutera.

image6a.png


Voir aussi:

ModèleDéveloppement DSM

Outils personnels