Développement > Business Intelligence > Paramétrage > Règles de synchronisation 

Cette fonction permet de définir la façon dont sont alimentées les tables de fait du datamart. Une ou plusieurs règles peuvent alimenter la même table de fait.

Une règle décrit la façon dont les données sont extraites de la base de données du progiciel (dans un premier onglet), et l'association entre les champs du datamart et une formule permettant de calculer sa valeur en fonction du contexte d'extraction (dans un deuxième onglet).

Pré-requis

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre

Gestion de l'écran

En-tête

Présentation

La règle est simplement identifiée par un code unique.

 

Champs

Les champs suivants sont présents dans cet onglet :

Ce code identifie de façon unique les fiches créées.

  • Intitulé (champ ZINTIT)

 

  • Désactivation (champ DESFLG)

Ce flag permet de sésactiver une rêgle de synchronisation. On peut donc charger une partie des données. Il faut faire ensuite attention quand on réactive la rêgle car il faudra faire un synchronisation globale.

 

Onglet Table applicative

Présentation

Dans cet onglet, on définit la façon dont les données sont extraites.

Ceci se fait en décrivant :

  • une table d'origine et des tables liées (voire certaines tables simplement en ligne)
  • une condition qui permet de filtrer les données.

Il est à noter qu'un enregistrement déclenchant peut provoquer la mise à jour de plusieurs enregistrements du datamart (règle de type 1,N); dans ce cas, on fait varier une variable indice de 0 à N-1, N étant la dimension du champ déclenchant associé à cette règle.

 

Champs

Les champs suivants sont présents dans cet onglet :

Caractéristiques

Un code activité vous permet de :

  • rendre optionnel un élément du dictionnaire si la valeur associée au code activité est nulle,
  • signer les éléments spécifiques dès lors qu'ils sont marqués par un code commençant par X, Y ou Z,
  • dimensionner un nombre de lignes maximum lorsque le code activité marque des éléments d'un tableau,

Si le code activité est désactivé :

  • l'élément marqué n'est pas utilisable,
  • le code associé n'est pas généré ou activé.
  • Module (champ MODULE)

 

Définit la table principale à partir de laquelle les données sont extraites du dossier courant pour alimenter les lignes du datamart.

  • champ LIBORG

Intitulé associé au code précédent

  • Filtre (champ FILTRE)

Permet de définir un critère sous forme d'une expression logique pouvant faire intervenir toutes les tables en ligne, des constantes et des fonctions.

Seules les lignes pour lesquelles l'évaluation des conditions renvoie un résultat non nul (ie. vrai) sont concernées par l'extraction de données.

  • Clé (champ INDLEC)

Définit le code de la clé de la table utilisée pour réaliser la lecture des lignes liées. Par défaut, la première clé de la table est utilisée.

Une fois ce champ alimenté, le tableau suivant Mapping clés - propriétés est alimenté suivant le code des différents segments de clé.

  • Script standard (champ TRTSTD)

 

  • Script vertical (champ TRTSPV)

 

  • Script spécifique (champ TRTSPE)

 

Règle de création

  • Règle de création (champ TYPLNK)

Ce champ peut prendre deux valeurs qui sont :

  • 1,1 : dans ce cas, une ligne de la table d'origine peut déclencher la création ou la mise à jour d'une ligne dans la table de faits du datamart (si la condition exprimée dans le champ filtre est vérifiée).
  • 1,N : dans ce cas, une ligne de la table d'origine peut déclencher la création ou la mise à jour de plusieurs lignes dans la table de faits du datamart (en fonction de la dimension N d'un tableau identifié par un des champs de la table). La variable indice varie alors de 0 à N-1, et on déclenche une mise à jour pour chaque valeur d'indice pour laquelle la condition ligne est vérifiée.
  • Champ déclenchant (champ FLDDEC)

Lorsque la règle de synchronisation est de type (1,N), on s'appuie sur ce champ de la table principale, qui est supposé être dimensionné (plusieurs occurrences).

L'algorithme d'extraction permet ainsi d'accéder aux données de tableaux stockés dans la table principale en ligne. Le principe est alors le suivant : on fait varier la variable système indice de 0 à N-1, N étant la dimension du champ déclenchant, et pour chaque valeur :

  • on évalue la condition ligne (qui peut donc dépendre de la variable indice).
  • si elle est vraie, on évalue l'ensemble des formules de destination pour obtenir les valeurs des champs à mettre à jour.
  • on met à jour l'enregistrement du datamart correspondant.
  • Condition ligne (champ CNDLIG)

Cette condition est définie sous la  forme d'une formule de calcul. Elle est évaluée à chaque itération faite sur le nombre d'occurrences du champ déclenchant (la variable indice variant de 0 à N-1, N étant la dimension du champ déclenchant). Outre la variable indice, elle peut référencer les champs des tables en ligne, ainsi que des constantes, des variables globales, des fonctions définies par le programmeur (syntaxes func PROGRAMME.FONCTION).

Si le résultat de l'évaluation est non nul, la mise à jour est déclenchée.

Tableau Liens

  • Tables liées (champ TABLNK)

Table dans laquelle la classe référencée est persistée.

  • Abréviation (champ ABRLNK)

Correspond à l'abréviation sous laquelle la table liée est ouverte.

Si ce champ n'est pas saisi, l'abrévation est l'abréviation par défaut de la table. Il peut être utile de saisir une abréviation pour ne pas rentrer en conflit avec le contexte appelant.

  • Clé de lien (champ CLELNK)

Définit le code de la clé de la table utilisée pour réaliser la lecture des lignes liées. Par défaut, la première clé de la table est utilisée.

Une fois ce champ alimenté, le tableau suivant Mapping clés - propriétés est alimenté suivant le code des différents segments de clé.

  • Type (champ TYPLNKTAB)

 

  • Expression de lien (champ EXPLNK)

Ce champ est défini comme une ou plusieurs expressions calculées et séparées par un point-virgule. Chaque expression est évaluée, et le résultat permet de connaître la valeur de la clé utilisée pour réaliser la jointure. Lorsque les jointures multiples sont autorisées, vous ne pouvez donner que les premiers segments de clé.

Dans les expressions, vous pouvez utiliser des constantes, et des champs issus des tables précédemment définies dans la liste des liens.

Il est à noter que l'expression de liens peut être vide. Dans ce cas, la table est simplement en ligne sans que des enregistrements courants soients lus. Ceci peut être utile si par exemple une fonction définie par un développeur (syntaxe func PROGRAMME.FONCTION) est utilisée. Cette fonction peut être amenée à lire des informations dans des tables de ce type.

Tableau Dossiers

  • Dossier (champ ADXDOS)

On définit ici les dossiers à partir desquels les données vont être copiées. Les syntaxes possibles sont décrites dans l'annexe dédiée.

Au moment de la copie, la variable GDOSSIER donne le code du dossier d'où sont extraites les données.

 

Onglet Table de faits

Présentation

Cet écran permet de définir la table de faits à mettre à jour, et les valeurs associées pour chaque champ de cette table, sous la forme de formules pouvant faire intervenir toutes les données en ligne, des variables globales, des constantes, ainsi que des fonctions définies par l'utilisateur. Si la règle de création est de type 1,N, on peut également faire intervenir la variable indice dans les formules.

 

Champs

Les champs suivants sont présents dans cet onglet :

Bloc numéro 1

 

Tableau

  • Numéro de ligne (champ NUMDES)

 

  • Champ (champ FLDDES)

 

  • Intitulé (champ INTDES)

 

  • Formule (champ FORDES)

 

 

Boutons spécifiques

Cette fonction permet de générer un traitement contenant des étiquettes de déclaration des tables et des jointures. Ce traitement, dont le code correspond à "WMB" suivi du nom de la règle, est appelé de façon automatique durant l'exécution de la règle de synchronisation.

Les champs suivants sont présents dans la fenêtre ouverte par ce bouton :

Bloc numéro 1

  • champ OBJET

 

  • champ CLES

 

Bloc numéro 2

  • Depuis le dossier (champ DOSORG)

Indiquez le dossier à partir duquel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

  • Tous dossiers (champ TOUDOS)

Cette option permet de copier la fiche vers tous les dossiers définis dans le dictionnaire (table ADOSSIER de la solution courante).

  • Vers le dossier (champ DOSDES)

Indiquez le dossier dans lequel la fiche va être copiée. Les syntaxes possibles sont décrites dans l'annexe dédiée.

Ce bouton permet de recopier la définition de la fiche depuis ou vers un autre dossier.

Barre de menu

Documentation / Paragraphes

Cette fonction permet d'accéder à la gestion de la documentation, sur le premier paragraphe de la documentation (si elle existe) associé à la fiche courante.

Documentation / Liens

Cette fonction permet d'accéder à la gestion des liens. Elle permet de définir des liens entre la fiche courante et d'autres fiches (par exemple des liens entre fonctions et paramètres). Ces liens, purement documentaires, permettent d'alimenter la mécanique de génération des squelettes de documentation.

Documentation / Génération

Ce menu permet de lancer une génération de documentation. La génération peut se lancer également à partir du bouton [Génération] dans le bas de la fenêtre.

Trois types de génération peuvent être lancées, séparément ou simultanément :

  • la génération du squelette de documentation à partir du dictionnaire (tables ADOCUMENT, ADOCBLB, ADOCCLB).
  • la génération de la documentation à partir des tables précédentes.
  • la génération de la documentation sur champ.

Les bornes proposées par défaut tiennent compte de la fiche en cours, mais elles peuvent être modifiées au lancement.

Messages d'erreur

Il n'y a pas de message d'erreur autre que les messages d'erreur génériques.

Tables mises en oeuvre

SEEREFERTTO Reportez-vous à la documentation de Mise en oeuvre