ERP en LOGICIEL LIBRE dédié aux PME-PMI

           Devenez partenaire Principal ou Majeur de Neogia

Multi-delegator

Contents

Objectif

Le but de ce document est de décrire Comment configurer une instance d'Ofbiz pour utiliser plusière bases de données dans un seul environnement d'execution. Cela veut dire qu'on veut obtenir une une application ofbiz qui permet à l'utilisateur de choisir une base de données sur laquelle il veut travailler. Une telle cofiguration est utiles dans le cas où plusiere filiales utilisent chacune son propre système d'information et un organimse centrale qui à une vision générale sur tous les SI. L'importance de telle configuration vient du faite qu'elle reduit le temps necessaire pour configurer et maintenir tel système (sans parler coût evidement).

Introduction

l'accès à la base de données, dans le framwork Ofbiz est rendu totalement transparent pour le développeur par l'introduction du DELEGATOR. Le Delegator peut être défini comme un agent intermediaire entre les éléments de traitement: services et script bsh d'un côté, et de la base de données. Lors du définition du delegator, on lui attribue un source de données qui décrit la BDD ses carateristique est les moyens d'y acceder. Deux composants majeurs d'Ofbiz s'interagissent avec le delegator:

Une application Ofbiz est composé d'un ensemble de modules telque Accounting, Party, Order etc.. Ces modules maintiennet chacun un contrôlleur de servlet qui lui permet de recevoir le actions d'un utilisateur selon lesquels il réagit. Ce contrôlleur de srevlet detient un ensemble de paramètre dans ce qu'on appèlle un context, parmis ses parametères on peut citer: l'identité de l'utilisateur connecté(session); le delegator (base de données); dipatcher (un moteur de service); etc..

Téléchergement

Vous pouvez trouver le patch qui date du 25-10-2008 sur le issue tracker d'ofbiz. Pour plus de discussion sur le sujet [1] n'oubliez pas de votez pour le jira. Pour télécharger le fichier [2]

Configuration

Pour configurer un Ofbiz avec multi delegator vous devez appliquer ce patch( patch fait à partir de la release 705872 truk du projet Ofbiz).

Ce patch affecte les fichier suivant:

  1. WebappUiLabels.xml,CommonUiLabels.xml: label et message pour le nouveau champ (société) dans le fromualire de connexion;
  2. Security.properties:ajouter un parametre pour savoir est qu'on utilise plusieurs delegator ou non(ex: pour savoir ce que on affiche dans loginform);
  3. login.ftl: ajouter un champ dans le formualaire de connecion;
  4. entitymodel.xml: prévoi un champs pour stocké le nom de la base auquelle l'utilisateur est connecté;
  5. entityengine.xml: il faut créer autant de delegator que vous voulez avec chcun son datasource;
  6. JobManager.java: créer une méthode qui change ( set ) delegator utiliser par le job manager;
  7. LocalDispatcher.java, ServiceDispatcher.java: prévoir la modification du delegator utiliser par le dispatcher;
  8. GenericAbstractDispatcher.java: créer une méthode qui change ( set ) le delegator à utiliser par ce dispatcher;
  9. ServiceDispatcher.java: créer une méthode qui change ( set ) le delegator à utiliser par ce dispatcher;
  10. LoginServices.java:après la validation du login+password on stocke le nom de la BDD( à laquelle l'utilisateur a demander une connection) dans sa la genericvalue.
  11. header.ftl: pour des besoins de testes afficher la BDD actuelle dans l'ecran ofbiz;
  12. LoginWorker.java: c'est la que tout q'on a la partie la plus importante du travail. Le modification sont décrite selon l'ordre d'apparition dans le fichier:

13. CoreEvents.java: