Objets métiers (V10.3)

La version 10.3 a re-structuré une partie du code diva en introduisant la notion “d'objet métier” qui permet de regrouper dans un même source les traitements 'métier' d'une table/entité, évitant ainsi la redondance ou la répartition de ces mêmes traitements (entre par exemple un zoom, un import excel, un import XML et un programme).
Des fonctions basiques, comme la réservation de l'entité ou le test d’existence, mais aussi des fonctions plus évoluées comme le contrôle de tous les champs d'une entité ou la duplication, sont ainsi gérées en un seul endroit.

Des fonctions permettent de simplifier l'écriture diva pour l'exploitation de ces objets métiers, par exemple pour récupérer le libellé d'un table simple.
Le système de gestion d'erreur intégré décharge l'appelant du numéro d'erreur qui sera traité dans l'objet métier.

Dans la version X.3 , des modules objet métier ont été développés pour toutes les tables de base du module 'Commerce et Logistique' et toutes les tables tiers (Tiers et sous-fiches de tiers), mais le mécanisme a été étendu par la suite.

Un module objet métier est nommé conventionnellement comme suit :

  • Préfixe application (2 caractères)

  • “tmchk”

  • Nom table

Exemple : GTTMCHKT006 pour les modes de règlement, GTTMCHKCLI pour les clients, CCTMCHKC3 pour le plan comptable.

Les noms de fonctions sont également normalisées.

La complétude d'un module objet métier permet de bénéficier de toute sa puissance, notamment dans le zoom qui administre la table associée et dans le nouveau moteur d'import-export. En revanche, il peut également y avoir des modules objet métier incomplets qui contiennent les fonctions minimum qui permettent de l'intégrer dans des traitements rendus génériques (exemple : Synchronisation Inter-compagnie, appels par d'autres objets métier)

L'exemple d'implémentation le plus simple et le plus complet est celui de la table T006-Mode de règlement

L'objet de la table CLI-Client GTTMCHKCLI est plus complexe et peut contenir des fonctions propres qui ne sont généralisables.

Traitement des entités dans le cadre des objets métier

L'objet métier expose différents fonctions:

  • Contrôle d’existence selon la clé primaire, et des paramètres optionnels comme date d'effet, confidentialité

  • Renvoi des données client si recherche réussie

  • Contrôle de chaque champ de l'enregistrement client : permet de contrôler le contenu d'un valeur

  • Recherche de libellés pour les champs du client qui font référence à une sous-table : permet de simplifier la tâche du zoom

  • Initialisation des valeurs : avant un import par exemple

  • Finalisation des valeurs : avant sauvegarde en base de données

    • Positionnement de CE et UserTrace

  • Contrôle clé primaire

    • Vérification de tous les champs composant la clé client

  • Contrôle global

    • Vérification de tous les champs de l'enregistrement client

    • Mode 'arrêt première erreur' ou 'cumul des erreurs'

  • Gestion générique des notes et fichiers joints

Traitement des Tables Txxx dans le cadre des objets métier

L'objet métier d'un table 'de base' permet en plus:

  • une recherche par libellé partiel généralisée sur toutes les tables

  • traiter de manière centralisée la chaine de réservation d'entité

  • Contrôle d'existence selon la clé primaire

  • Renvoi du libellé ou des données table si recherche réussie

Pour toutes les tables, dans le cadre des objets métier

L'objet métier d'une table centralise :

  • Le contrôle de valeur en rapport à sa définition de dictionnaire (cas à cocher, multi-choix, numérique,…)

  • Gestion d'erreur : une seule fonction de traitement d'erreur que l'appelant peut récupérer (zoom avec retour champ, import excel)

Utilisation d'un objet métier

L'objet métier a des cas d'utilisation divers :

  • Masque de saisie : contrôle de champs appelés dans les traitement après saisie

  • Zoom traitements :

    • ZoomCreation : Authorize_xxx_Insert + Initialize_xxx_New

    • ZoomDuplication : Authorize_xxx_Insert + Initialize_xxx_Duplication

    • ZoomApresCleCreation : Check_xxx_Key + Get_xxx_Reservation

    • ZoomAvantWrite : Check_xxx + PreInsert_RecordSql

    • ZoomApresCreation : PostInsert_RecordSql

    • ZoomModification : Authorize_xxx_Update + Get_xxx_Reservation

    • ZoomAvantReWrite : Check_xxx + PreUpdate_RecordSql

    • ZoomApresModification : PostUpdate_RecordSql

    • ZoomSuppression : Authorize_xxx_Delete + Get_xxx_Reservation

    • ZoomAvantDelete : PreDelete_RecordSql

    • ZoomApresSuppression : PostDelete_RecordSql

Les fonctions action_Recordsql invoquent elles même les fonctions action_xxx de l'objet métier si elles existent.

  • Utilitaire importation excel :

    • Initialize_xxx_New et Check_xxx_Key en cas de création nouvelle instance

    • Initialize_xxx_PostFetch pour compléter les champs non ou mal définis

    • Find_xxx + Get_xxx_Record pour charger une instance existante et traiter la modification

  • Utilitaire importation xml :

    • Initialize_xxx_New et Check_xxx_Key en cas de création nouvelle instance

    • Initialize_xxx_PostFetch pour compléter les champs non ou mal définis

    • Find_xxx + Get_xxx_Record pour charger une instance existante et traiter la modification

  • Autre objet métier :

    • Find_xxx + Get_xxx_Lib + Get_xxx_Record pour contrôler un champ clé étrangère de l'objet

Vous pouvez consulter le code source de zooms existants, comme le GTTZ021 (fiche client) ou le GTTZ046 (mode de règlement) et les objets métiers associés

Import/export objet métier


L'import/export tableau des tables de gestion commerciales utilise un nouveau moteur d'import/export basé sur les objets métiers. Ce moteur devient plus générique et le traitement des champs (clé ou non) est fait dans l'objet métier.
Une feuille 'Notice' est générée automatiquement.

Important : l’import/Export objet métier se base sur un module dédié, dont la normalisation du nom donne un source sous la forme :

  • Préfixe module

  • TM

  • CHK

  • Groupe de fichiers ou famille

  • 5000.dhsp

  • Exemple : GTTMCHKPCF5000.DHSP pour les tiers (PCF)

  • Exemple : A5TMCHKMTAG.DHSP

Dès l’existence de ce module, le traitement d’import/export générique a5ppimpexp_sql peut être mis au menu en indiquant le module métier d’import

 

 

image-20240318-163314.png

L’existence d’un ‘5000’ détermine également le fonctionnement du datahub d’import/export XML, car il se repose totalement sur ce même module offrant ainsi une homogénéité de traitements métiers quel que soit la méthode d’import ou export

 

Contrôle des données objet métier

Des messages d'erreur d'erreurs du type la case à cocher xxx n'est pas initialisée, liés à des problèmes d'initialisation de champs peuvent apparaître à partir de la version 10.3.
Exemples : 



Liés aux objets métier, à partir de la version 10.3, de nouveaux paramétrages sont apparus et peuvent nécessiter une initialisation.
Pour mettre en oeuvre cette initialisation, l'utilitaire “ mise à jour des données objet métier 10.xxx ” est à disposition. L'utilitaire est accessible par le menu Administration/ Paramètres/ Utilitaires/ Mise à jour des données objet métier 10.xxx 

Rappel : Une sauvegarde de la base SQL est recommandée, ainsi qu'une relecture du mode 'liste' avant de procéder a une quelconque correction des données.

image-20240318-163835.png