Paramétrage et traitement d'importation

De Wiki1000

version700-32x32.png

Sommaire

Introduction

Dans les versions antérieures à la version 7.00, il est possible d'associer à un traitement d'importation une classe de paramètres, qui peut être obligatoire selon la volonté du concepteur.

Généralement, ceci se concrétise par un processus dérivé de la base TProcessusImport, qui possède un rôle ParametreImport sur une classe basée sur TParametreImport.

Ce paramètre est généralement mémorisé sur une session basé sur la classe TSessionImportation, sachant que les données qui diffères sont généralement stockées sur la session, comme le nom du fichier quand ceci s'avère nécessaire.

Le modèle a été revu afin de conserver le mécanisme de stockage et de pouvoir passer au processus un paramètre qui ne respecte pas nécessaire le modèle d'entré initiale, dans le cas où il est nécessaire de passer des données qui seront utiles uniquement le temps du traitement.

Afin d'obtenir cette mécanique, il a été prévu une nouvelle interface IGParametreImportBase, et le rôle ParametreImport de la classe de base TProcessusImportation a été revue afin d'utiliser cette interface.

Cette interface a été implémentée sur la classe de base TParametreImport, et sera également exploitée pour toute classe de paramètre qui sera communiqué au processus pour le traitement.

Note: en cas de reprise de session, on retombe dans le cas courant, le rôle utilisera nécessaire une classe dérivé de TParametreImport puisque issu directement de la session.

Cette mécanique devra également prendre en compte toutes spécificités des classes dérivées.

Mise en œuvre sur le modèle d'importation

Décrivons maintenant le protocole nécessaire à mettre en œuvre afin de bénéficier de ce mécanisme.

  • Prérequis :
    • La méthode surchargeable _InitialiseClasseImportDonnee doit initialiser le nom de la classe d’import des données.
    • La méthode surchargeable _InitialiseClasseSessionImport doit initialiser la classe de session d’import des données.
    • La méthode surchargeable GetLibelleSession doit retourner le libellé de session.
    • La classe TParametreImport implémente l’interface : elle retourne ses propres valeurs et sa référence.
    • La classe de paramètre fournie au processus doit implémenter l’interface : les valeurs sont retournées depuis cette classe ainsi que le paramètre « générique » sur la classe basée TParametreImport.
  • Modification du processus de base TProcessusImport et de ses dérivations :
    • Le rôle ParametreImport ne référencie plus un objet basé TParametreImport mais sur la nouvelle interface IGParametreImportBase.
    • Une nouvelle méthode surchargeable ChargerDepuisParametreImport charge les valeurs par défaut depuis le rôle via les méthodes d’interfaces et retourne également le paramètre basé TParametreImport afin que les surcharges puissent extraire les paramètres complémentaires de la classe dérivée.
    • Une nouvelle règle d’action Action_ParametreImport charge les paramètres sur modification du rôle par l’appel de ChargerDepuisParametreImport. ATTENTION : Toutes les règles métiers de valeur par défaut (etc) ne doivent plus être employées, il faut si nécessaire surcharger cette méthode afin de compléter le chargement.
    • La méthode surchargeable CreerSessionImport doit récupérer tous les paramètres utiles depuis le rôle en exploitant l’interface, et retourne le paramètre basé TParametreImport qui sera stocké dans la session. La session doit mémoriser toutes les données nécessaires que l’utilisateur ou le processus peut avoir modifié.

Désormais, lorsque le processus ou sa dérivation doit accéder aux données du paramétrage, il doit obligatoirement passer par le rôle du processus afin d'utiliser les méthodes de la nouvelle interface, et ne plus lire directement les données depuis le paramétrage.

Quand on a besoin d'accéder aux données de la classe dérivée, il convient d'utiliser la méthode IGetParametreImport qui doit retourner une classe basée sur TParametreImport, dans le cas général ou d'une reprise, c'est la référence de l'instance de la classe elle même.

Toutes les données requises doivent être retournées par l'interface, car on ne doit pas accéder aux valeurs sur la classe retournés, excepté dans le cas où l'on a besoin de lire des éléments non supporté par la classe d'interface, comme le sont généralement les attributs ajoutés aux classes dérivées.

Exemple d'un cas d'utilisation de l'ancien pattern d'importation des relevés divers

Il était prévu que l'on puisse mémorise le nom du fichier ou les données WS SCB, que l'on pouvait associer à plus d'une banque sachant que dans la réalité, un contrat WS retourne de fait les données du serveur bancaire référencie pour le contrat prévu : de fait, le paramètre ne devrait être utilisé que pour une banque.

Exemple d'importation dans l'ancien pattern

Exemple d'un cas d'utilisation du nouveau pattern d'importation

Désormais, les données locales ont été migrées vers la classe TParametreImportBanque, ce qui a permis effectivement que chaque établissement bancaire possède ses propres données, qui exploite un paramètre devenu générique qui décrit un format pour la traduction du fichier, et que l'on peut désormais réutiliser sans aucun problème pour toute banque utilisant ce format.

De plus, la possibilité d'exploiter ce paramètre aussi bien en réception WS qu'en importation de fichier conventionnelle réduit encore le nombre de création du paramètre puisque le nom n'est utilisable que pour l'importation en fichier.

Exemple d'importation de relevé divers dans le nouveau pattern

Annexes

Interface IGParametreImportBase

Interface IGParametreImportBase


Voir aussi

Importation (patterns)Développement DSM

Outils personnels