Diagrammes UML
Objectif principal de cette page
Faire un exposé du modèle Ofbiz Neogia, comportant les diagrammes uml les plus importants. Ce sont des diagrammes au format image ; si vous souhaitez voir le modèle, utilisez un éditeur UML ; dans le projet neogia, nous utilisons Podeidon de Gentleware, dans son édition partagée (in the community edition). Maintenant, même cette version est payante, aussi la communauté est en train d'évaluer d'autre éditeur UML. Les détails de cette évaluation sur trouve sur la page Choix_de_l'editeur_UML, en attendant il est possible pour les contributeurs du projet de disposer d'une licence de la version 4.0 valable jusqu'en Juin 2008 fournit par Gentelware.
Il y a une fichier zuml par composant, il se trouve dans le répertoire modeldef/zuml du composant.
Il y a un modèle par composant. Si l'entité d'un autre composant doit être utilisée, il apparaîtra avec le stéréotype externe ; la définition de l'entité figure seulement dans son composant propriétaire (in its component owner).
Organisation du document :
- un sous-titre par composant (structure de répertoire, par d'onglet interface utilisateur) ;
- un lien pour toutes les images de diagramme, afin d'éviter un chargement trop long ;
- une convention d'appellation du diagramme : UmlDiag${ComponentName}-${DiagramName} ;
- pour quelques composants, deux sous-sections : DataModel (diagramme de classe) et une seconde pour d'autres types de diagrammes.
statut : en cours, il est complété, au minimum à chaque modification de diagramme langue de référence de la page : anglais
Pensez à reporter vos ajouts ou modifications dans la version anglaise, si traduire est trop lourd reportez vos modifications en Français
Common
- Gestion des menus, paramétrable par utiliseurs (ou groupe d'utilisateur) : Media:MenuManagement-UserLogin.png
- MenuMain : correspond à un menu avec n lignes ou à la table de correspondance entre <<un nom logique défini dans Neogia pour un menu standard>> et <<un autre nom de menu>>.
La table de correspondance est utilisé pour gérer un menu spécifique au sein du standard (souvent mono-niveau)- idName : identifiant référence du menu
- description : ce qu'on veut pour retrouver ce menu
- target n'est pas utilisé dans le code pour le moment
- l'association de userLogin permet d'associer à un user login soit la racine du menu, souvent multi-niveau ( ex : menuAdmin pour l'administrateur), soit la table de corespondance pour les menus standards.
- MenuItem : liste des lignes d'un menu ou liste des correspondances
- sequenceNum ordonne les MenuItems
- title contient le uiLabel de cette ligne de menu ou un <<nom logique défini dans Neogia pour un menu standard>>
- subMenu designe le sous-menu de cette ligne de menu (c'est mutuellement exclusif par rapport à widgetScreen) ou <<un autre nom de menu>> dans le cas de la table de correspondance.
- widgetScreen fait référence au ScreenWidget de la ligne de menu (c'est mutuellement exclusif par rapport à widgetScreen).
- l'association vers MenuItemCondition permet de définir la condition qui sera évaluer pour afficher ou non de cette ligne de menu
- WidgetScreen : Correspond à un écran existant dans Neogia, une option de menu par defaut
- idName : identifiant référence de l'écran, peut être utilisé pour déterminer si le bouton est sélectionné ou non (n'est pas vraiment utile dans le cadre du menu déroulant)
- target contient l'URL complète pour afficher cet écran (par ex : /accounting/truc/muche )
- description : ce qu'on veut pour retrouver cet écran
- MenuItemCondition : permet de définir une condition pour l'affichage ou non d'une ligne de menu
- idName : identifiant référence de la condition
- pour plus de détail sur le rôle de chacun des champs ou des énumérés il faut lire la xsd correspondante aux menus ofbizNeogia/framework/widget/dtd/widget-menu.xsd
Seul certain champ sont obligatoire selon le type de condition.
- MenuMain : correspond à un menu avec n lignes ou à la table de correspondance entre <<un nom logique défini dans Neogia pour un menu standard>> et <<un autre nom de menu>>.
Acteur (Party)
- Main entity, party and specialization --Entité principale, acteur et spécialisation-- Media:UmlDiagParty-Party.png
- RoleType (Rôle) est utilisé en association avec Acteur pour préciser quel rôle cet acteur a (ou peut avoir) : client, fournisseur, client payeur, ...
La plupart du temp, c'est utilisé en relation avec un objet métier, comme par exemple Commande, pour préciser le rôle de l'ensemble des acteurs associé vis à vis de cet objet (commande) : client (ou plus détaillé, client payeur, client livré, ...), représentant, société, ...
l'attribut groupRole est utilisé pour repérer les rôles qui ne sont utilisé que pour regrouper certain autre rôle (cf RoleTypeRollup), ces rôle ne doivent pas être associé à un acteur. - RoleTypeRollup est utile pour l'interface utilisateur, afin de n'afficher qu'un groupe de rôle et pas tous, en fonction de l'écran. Pour un groupe il y a un parentRoleType (rôle père) qui est, quelque fois un rôle utilisable par ailleurs, quelque fois uniquement pour permettre l'usage de cette entité.
C'est utilisé à la fois dans des écrans acteur (l'ajout de rôle), dans des écrans CRM, dans la comptabilité pour le paramétrage de compte avec un tiers, ...
- RoleType (Rôle) est utilisé en association avec Acteur pour préciser quel rôle cet acteur a (ou peut avoir) : client, fournisseur, client payeur, ...
- Contact Mechanism, used to associate address, phoneNumber, and other ContactMech to other object, Party, Facility, Shipment, ... Mécanisme des contacts, utilisé pour associer une adresse, un numéro de téléphone et d'autres coordonnées à un deuxième objet : Acteur, Stock, Expédition Media:UmlDiagParty-ContactMech.png
- PartyRelationship, utilisé pour détailler l'association entre Acteur(s) (Party), commerciaux rattachés à leurs clients, Commande Client à Facture Client (OrderCustomer to InvoiceCustomer), Société-cliente (CustomerCompany) aux personnes de l'entreprise en tant que contact, ... Media:UmlDiagParty-PartyRelationship.png
- Communication Event, enregistre tous les événements (toutes les communications) entre deux acteurs.(all events between two parties) Media:UmlDiagParty-Communication.png
- Agreement, enregistrant tous les accords commerciaux entre deux acteurs (to record commercial agreement between two parties) Media:UmlDiagParty-Agreement.png
Association avec les autres composants
- Association avec la comptabilité, attention, les entités Facture (Invoice) et Paiement (Payment) ne sont pas représentées sur ce diagramme, actuellement (et en attendant) elle se trouve sur le diagramme d'association avec Commande (Order) Media:UmlDiagParty-Accounting2Party.png
Product (Produit)
- ProductStore, ProductStore est proche de ProfitCenter, ce diagramme liste certaines entités qui lui sont liées (pas encore la totalité) Media:UmlDiagProduct-ProductStore.png
- Product, diagramme peu utilisable car il liste certaines entités qui lui sont liées (pas encore la totalité) Media:UmlDiagProduct-Product.png. Pour comprendre l'interaction de Product, il vaut mieux utiliser un autre diagramme
- ProdReqMethod : correspond aux différentes methode de planification
- NONE : pas de traitement automatique
- AUTO : création d'un ordre d'achat ou d'un OF lors de la création de l'ordre de vente (non opérationnel, les modifications de commande générant des bugs)
- STOCK : ré-approvisionnement selon le point de commande
- MRP : ré-approvisionnement via le MRP, comparaison des mouvements planifié de stock par rapport au stock minimum
- MRP_PROJECT: idem MRP, mais si il existe un lien entre un besoin (OV) et une production (OA ou OF), il n'est pas remis en cause.
- ProdReqMethod : correspond aux différentes methode de planification
- Product Catalog, Product Category, Product sont les diagrammes de classification du module Product ; un produit peut se trouver dans de multiples ProductCategory, Catalog organise la navigation entre ces différentes catégories Media:UmlDiagProduct-Catalog.png
- ProductPrice, est le module gérant le prix et le coût du Produit ; PriceItem décompose le coût Media:UmlDiagProduct-ProductPrice.png
- ProductConfig, gère la configuration du Product, pas virtuel ni variante mais un produit avec une nomenclature définie selon les options choisies par l'utilisateur Media:UmlDiagProduct-ProductConfig.png
- ProductReview, gère les commentaires des utilisateurs en rapport à un Product ainsi que leur appréciation Media:ProductReview.png
Facility (Stock)
- Facility, diagramme principal Media:UmlDiagFacility-Facility.png
- NFacility, a hierachical Facility organisation
- facilitySize and uomSize is for information (and specifics reports), currently there is no process which used it
- ProductLot peut être dans un ou plusieurs StockItems, mais un StockItem correspond à un lotId unique et ne peut en changer. De ce fait, lorsqu'un stockItem associé à un lotId a une quantité égale à zéro, il ne sera plus réutilisé
- StockItem
- quantityOnHand est la quantité attribuée, quantityUom et quantityPack sont uniquement utilisées pour afficher une quantité avec une unité de mesure différente
- NFacility, a hierachical Facility organisation
- StockEvent, planifié ou effectué Media:UmlDiagFacility-Event.png
- StockEventPlan describe all the futur stockEvent
- delayedReleaseDate is the date calculated by the "delay process", a bottom-up process which calculated consequence of the delay on the delay from purchaseOrder, wRun or ...
- previousAllottedSep is populated only for negative SEP (Sales order shipment, Run Component, ...). It's a link to the first previous positive SEP which is needed to be able to realize the current SEP. It's used for the "delay process" and, for project management to have link between orders (sales with production or purchase, production with production or order).
Currently this attribue is not populated, it will be done by a automatic (not a user one) process and after by a user interface when two order will be associated.
- StockEventPlan describe all the futur stockEvent
- Physical Inventory, Media:UmlDiagFacility-Inventory.png
- Picking list et Transfert, Media:UmlDiagFacility-PickingList.png
- Gestion du Code Ean (Système Européen de Numérotage d'Article) et autre enumData utilisés dans Facility Media:UmlDiagFacility-FacilityenumData.png
Accounting (Comptabilité)
Accounting Integration
Accounting Integration (prinicpale)
Ce diagramme décrit le systéme d'intégration de Neogia, systeme qui fait le pont entre la parti gestion de l'ERP et la partie comptabilité Media:UmlDiagAccounting-Integration.png
IntegTransactionItem
Cette entité est le point d'entrée des évènement dans l'intégration. Chaque événement s'associe à un integTransactionType en lui attribuant un type puis ce tdernier évolue au travers son status
IntegrationEntry & IntegrationEntryAccount
Lorsqu'un integTransactionItem est analysé, le résultat rempli ces entités. Elle ressemble au schéma présent dans le diagramme des Transactions.
IntegEventType
Liste les différents évènements connus de l'intégration. Quand un évènement se branche à l'intégration, il annonce son type.
IntegrationRule
Associés aux types, les règles d'intégration permette d'indiquer quelles opérations on doit effectuer pour analyser les évènement
BusinessObjectType
Liste les différents objets métier associés aux évènements où l'on pourra trouver l'information pour la correspondance comptable
BusinessObjectName
Entité contenant une liste d'object de correspondance.
BusinessObjectCondition
Entité utilisé pour limité la zone de recherche d'élément couvert par un BON
Systeme de correspondance : One, Two, Three To One
Entités permettant la correspondance entre les informations trouvées via le BON et les comptes comptables.
Accounting Integration Control
Accounting Integration Control est un diagramme décrivent les entités de configuration de l'intégration (journaux, rassemblement, etc ...) et le systeme de controle de l'importation des évènements dans le systeme comptable. Media:UmlDiagAccounting-IntegrationControl.png
TODO : Liter les entités
Accounting Integration Memory
Accounting Integration Memory est un diagramme listant les entités utilisé pour mémoriser les correspondance effectué dans une intégration d'aide à la saisie. Media:UmlDiagAccounting-IntegrationMemory.png
TODO : List diagram entities
Diagramme des paramètres de Paiement
Les paramètres de paiement sont utilisés pour la création du paiement ou pour calculer la date de règlement de la facture (DueDate) Media:UmlDiagAccounting-PaymentParam.png
Définition des entités ofbiz
- Term
- correspond aux différentes échéances
- PaymentMethodeType
- méthode de paiement
- PaymentMethode
- un moyen de paiement pour un acteur ; il est spécialisé en fonction du discriminator PaymentMethodeType en
- carte de crédit
- virement
- carte prépayée
- il manque une interface de création des autres méthodes (chèque pour les clients, caisse, ...)
- BillingAccount
- Cela correspond au ligne de crédit pour gérer les limites autorisées.
Structure des données
- Eléments de paramétrage
- méthodes de paiement (quel type d'informations dois-je avoir ?) :
- compte bancaire
- carte bancaire
- carte cadeau
- modes de paiement (enum ) PaymentMode :
- virement
- chèque
- lcr
- bor
- modes de règlement DueDcalMethod :
- date de départ (enum) baseDateType
- date de facture
- date de réception (date la plus ancienne de toutes les expéditions associées à la facture)
- type de décalage (enum) shiftType
- fin de mois
- aucun
- fin de décade
- nombre de jours de décalage : startShiftNumber
- jour de paiement : endShiftNumber
- date de départ (enum) baseDateType
- méthodes de paiement (quel type d'informations dois-je avoir ?) :
Invoice
La gestion des factures et leur interactions avec les autres composants Media:UmlDiagAccounting-Invoice.png
Définition des entités ofbiz
- Invoice
- l'entité majeur, elle correspond aux factures ou plus exactement à l'entête de facture. Une facture peut être une facture de vente ou d'achat, ou un avoir de vente ou d'achat.
- InvoiceItem
- C'est le détail d'une facture avec toutes les lignes, il y a même plusieurs InvoiceItem pour une ligne de facture s'il y a des ajustements de commandes qui sont facturé (TVA, ou autre)
- InvoiceNote
- C'est les notes manuelles qui sont saisie pour les factures (ou les avoir).
Accounting Transaction
Accounting Transaction are used to store all accounting entries Media:UmlDiagAccounting-Transaction-1.45.png
TotalAmountDetail
Entity use to calculated immediatly (after each entry) total amount for each :
GLPeriod - GlAccount - AnalycalAccount 1 - AnalycalAccount 2 - AnalycalAccount 3
Currently there is no user interface to read or use this entity, it's used by BI tools or spreasheet.
Immobilisations (Fixed Asset)
Les immobilisations en terme générique sont des éléments, ressources ou biens à caractère durable à l'actif d'une entreprise. De part leur nature elles sont utilisables (et non consommables). Pour citer quelques exemples: Licences et brevets, Immeubles, machines et outils, véhicules...
- Le diagramme Media:UmlDiagAccounting-FixedAsset.png présente les principales entités du sous-composant Immobilisation, celle utilisées dans les processus de la comptabilité (saisie, amortissement).
Définition des entités ofbiz
- FixedAsset
- les immobilisations (ressources et biens) de l'entreprise.
- FixedAssetType
- tout simplement les types des biens.
- FixedAssetTypeAttr
- les attribues des groupes d'immobilisations qui peuvent etre de type "incorporelles-corporelles", "professionnelles-non professionnelles" ou mixte. Ici nous avons à faire à un reclassement devant faciliter l'identification de la nature d'un type de bien.
- FixedAssetAttribute
- la description du type de reclassement.
- FixedAssetIdent
- identifiants des biens
- FixedAssetIdentType
- les groupes d'identifiants
- FixedAssetDepMethod
- méthode d'amortissement d'un bien
- DepreciationMethod
- contient les méthodes d'amortissement ou de calcul de la dépréciation
- FixedAssetStdCost
- le cout défini d'utilisation d'un bien. Sert dans le calcul du prix de revient d'un produit fini.
- FixedAssetMaint
- informations concernant l'entretien, la maintenance des biens
- FixedAssetMaintType
- le caractère de l'entretien (réparation, conservation, rénovation, etc.)
- FixedAssetMaintMeter
- critères ou mesures définissant la périodicité de l'entretien d'un bien.
- FixedAssetMaintMeterType
- les types de critères de périodicité des entretiens (ex. kilometrages, temps d'utilisation, etc.)
- FixedAssetRegistration
- numéro d'enregistrement, de validation, d'autorisation, de licence, d'immatriculation, ... auprès d'une autorité compétente suivant la nature du bien et des contraintes légales.
- Party
- dans ce cas, sert à identifier l'autorité ci-dessus mentionnée.
- FixedAssetProduct
- biens immobilisés constituant un produit offert à la vente (ex. location de machines ou outils, location de chambres hoteliéres, etc, mais aussi la vente de biens immobilisés). En d'autres termes, cette entite contient toute offre de transfert de droit d'utilisation d'un bien immobilisé, pendant une période définie (location) ou indéfinie (vente, cession).
- FixedAssetProductType
- les types de produit offert à partir d'un bien immobilisé.
- PartyFixedAssetAssignment
- contient les autorisations d'utilisation des biens accordées aux acteurs (clients, employés, etc..., mais aussi processus de production) pour une période donnée. L'utilisation des biens de location dans un processus de production est à envisager à travers les entités du manufacturing pour plus de clarté.
Manufacturing (Production)
Données technique
Static manufacturing data : Media:UmlDiagManufacturing-ManufacturingData.png décrit l'ensemble des données statiques utile pour la gestion de fabrication : tâche, ressource, gamme, ...
- TechDataCalendar : Calendriers permettant de déterminer la disponibilité pour les ressources de production, trés utile pour la planification. C'est aussi utilisé pour location des biens.
- CalendarWeek : contient la définition journalière des heures et quantités disponibles pour une ressource (ou un bien loué).
- CalendarException : contient pour un calendrier donné, les jours où la disponibilité est différente d'une journée classique définie dans CalendarWeek.
- Pour la location, usedCapacity la capacité utilisée est utilisé pour suivre la quantité de biens mis en location par rapport à la quantité effectivement louée. L'absence de données sur une période signifie la disponibilité totale du bien considéré sur ladite période.
WRun
- WRun object is for produced product Media:UmlDiagManufacturing-WRun.png
- TaskFulfilment is the different step to transform, at the wRun creation all the routing's task are used (copied) to created taskFulfilment, but after end-user can add, remove or modifying taskFulfilment for a wRun.
- delayedStartDate : is calculated by the "delay" process which look all delay on purchase order and calculate the induced delay on the wRun waiting for these purchases orders. "Delay process" is bottom-up process.
- delayCompletionDate : look to delayStartDate
- TaskFulfilment is the different step to transform, at the wRun creation all the routing's task are used (copied) to created taskFulfilment, but after end-user can add, remove or modifying taskFulfilment for a wRun.
- WRun and OrderItem association, describe how to retreive information from Order to Wrun if one is used to produce product which will be send and how to retreive information in the subcontracting process Media:UmlDiagManufacturing-WRunAndOrder.png, an other similar diagram exist on Order model Media:UmlDiagOrder-OrderItemreorder.png
Project
- Project is used to have a global (or summary) view on a list of event, order, wRun, ...Media:UmlDiagManufacturing-Project.png
The main objective is to be able to have some dashboard at the project level.- At the project view, each wRun is used to delivered on product so in the classical project terms wRun is a project's task.
- WRunAssoc is used to give some constraints between project's task, for planification purpose.
- possible constraints are in WRunAssocType with value :
- ES : End of the first wRun imply Start of the next
- SE : Start of the first wRun imply End of the next
- SS : Start of the first wRun is synchronise to Start of the second
- EE : End of the first wRun is synchronise to End of the second
- overlapping is the percent of overlapping between the two WRun
- shiftNumber is the number of milisecond of shift between the two WRun
- it's not possible to have overlapping and shiftNumber populated at the same time
- possible constraints are in WRunAssocType with value :
Quality (Qualité)
- Demande Qualité, pour sa gestion Media:UmlDiagQuality-QualityRequest.png
- Vérification de mesure, mesure devant être testée pour un produit quand une Production Run est en cours Media:UmlDiagQuality-CheckMeasure.png
Expéditions (Shipment)
- ShipmentBox ou conteneur, représente une boîte qui est gérée. La boîte peut être située dans (le module) Facility (Stock), Party (Acteur) - client ou fournisseur ou associée à StockItem avec une quantité. Il y a une ShipmentBoxEvent pour chaque évènement ; chaque fois que la boîte change son implantation (ou son statut) Media:UmlDiagShipment-ShipmentBox.png (Pour l'instant aucun écran n'existe pour ces entités, écrans et services seront developpés ultérieurement)
Order
- The 3 main Order entity and their relation Media:OrderItemAssoc.png
- Order header
- Order item : for each item : Product quantity price
- Order item Ship group : for each item : schedule ship date, carrier, ...
- Order Header centrics diagram Media:OrderHeader.png
- Order Item centrics diagram Media:OrderItem.png
- Status management use in purchase order Media:status_purchase_order.png
- Status management use in sale order Media:status_sale_order.png
- Status management use in cancellation of an order Media:status_cancel_order.png
- Show the links between different entity used in the re-Order process (MRP) Media:UmlDiagOrder-OrderItemreorder.png, there is too, associations used for Subcontracting management.
WorkEffort (Tâche planning)
WorkEffort est un composant OFBiz qui est utilisé quasiment sans modification dans Neogia.
Dans OFBiz ce composant est utilisé pour gérer la plupart des données de production: Gamme, opération, OF, opération d'OF, cet ensemble est géré avec la table WorkEffort (selon le workEffortTypeId). Dans Neogia ces entités sont gérer avec des entités dédiées du composant Manfacturing.
Dans OFBiz ce composant est aussi utilisé pour la gestion du workflow.
Dans Neogia c'est la gestions de planning de OFBiz qui sera utilisé, et surement étendu.
- WorkEffort, ce diagramme liste les entités principales qui lui sont liées (pas encore la totalité) Media:UmlDiagWorkeffort-WorkEffort.png



