UML Diagram
Contents
|
Page Main Goal
Give an Ofbiz Neogia model overview, with the most important Uml diagrams. It's only diagram in image format ; if you want to see the model, use an UML editor. In neogia project we are using Poseidon from Gentleware in the community edition. But, now this version is not free so we are looking for changing, look in Choix_de_l'editeur_UML (only in french) for more detail in the UML editor evaluation and choice.
There is one model per component, if an entity from another component has to be used, it appears with the stereotype extern, the entity definition is only in its component owner.
Document organization:
- one subTitle by component (directory structure, not User interface tab);
- all diagram-images are a link in order to avoid a very long time page loading;
- diagram-image name convention: UmlDiag${ComponentName}-${DiagramName}-${UmlVersionNumber} ;
- for some components two subsections, DataModel (class diagram) and a second one for other diagram types.
status: Work in progress, some added is done, at least, each time UML diagram is modified. reference page language: English
Common
- Gestion des menus, paramétrable par utiliseurs (ou groupe d'utilisateur) :
- 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>>.
Party
- Main entity, party and specialization
- RoleType is used in association with Party to say which role a party have (or can have) : customer, supplier, bill_to_customer, ...
Most of the time it's used in association with a business object like Order to detail all active party for this object (order) : customer (or more detailled, bill_to_customer, ship_to_customer), salesRep, ...
groupRole attribue is used to flag all roleType used only for grouping purpose (parentRole) not to be associated to a party. - RoleTypeRollup is used for userInterface purpose, to easly show only a group of RoleType, not all. For each group there is one parentRoleType, sometime it's a role useable, sometime it's only for grouping purpose (look the groupRole attribue in roleType entity).
It's used in Party management to add role, in CRM on multiple screen , in accounting for Gl Account with party creation, ...
- RoleType is used in association with Party to say which role a party have (or can have) : customer, supplier, bill_to_customer, ...
- Contact Mechanism(e), used to associate address, phoneNumber, and other ContactMech to other object, Party, Facility, Shipment, ...
- PartyRelationship, used to detail association between Party, commercial people to its customer, OrderCustomer to InvoiceCustomer, CustomerCompany to people in the company as contact ...
- Communication Event, to record all events between two parties
- Agreement, to record commercial agreement between two parties
Association with other Component
- Accounting association, entities invoice and payment which are (currently) in the Order2Party diagram association are not included in this diagram
Product
- ProductStore, ProductStore is near ProfitCenter, this diagram lists some entities associated to it (not yet all)
- Product, diagram isn't very usable because it lists some entities associated to it (not yet all) , to understand Product interaction use the other diagram
- ProdReqMethod : contain all planification method
- NONE : manual, no automatics process
- AUTO : Purchase Order or Manufacturing order creation when Sales order is created (currently not operational, Sales Order modification generate bugs)
- STOCK : re-planishment when qoh is less than minimum stock
- MRP : re-planishment with MRP process, when ATP is less than minimum stock
- MRP_PROJECT: same as MRP, but nothing is doing for an event if there are some link (between SEP- and SEP+).
- ProdReqMethod : contain all planification method
- Product Catalog, Product Category, Product, it's the product classification diagram, one product is in multiple ProductCategory and Catalog organizes how to navigate through the different categories
- ProductPrice, is for price and cost, PriceItem is the cost decomposition
- ProductConfig, is for configuration product, neither virtual nor variant but one product with defined Bill Of Material with user choice on options
- ProductReview, manage users comments and user evaluations about a product
Facility
- Facility, main diagram
- NFacility, a hierachical Facility organisation
- facilitySize and uomSize is for information (and specifics reports), currently there is no process which used it
- ProductLot can be in one or more StockItems, but a StockItem is for only one lotId and it cannot change, so when a stockItem with a lotId has a quantity to zero, it was never re-used.
- StockItem
- quantityOnHand is the attributed quantity, quantityUom and quantityPack are only used to display quantity with other uom
- NFacility, a hierachical Facility organisation
- StockEvent, planned or done
- 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,
- Picking list and Transfert,
- Ean Code management and other enumData use in Facility
Accounting
Accounting Integration
Accounting Integration are used to configure and operate to upload of many event on neogia management system to neogia accounting system
IntegTransactionItem
This entity is used to link a event with the integration system. She is associated to an integEventype for know the event to integrate and a status to know if this event is in accounting system or in analyse progress.
IntegrationEntry & IntegrationEntryAccount
Whenan integTransactionItem is analysed, all result are stored in these entities. It the same structure than transaction system.
IntegEventType
List all event that are known by the integration system. When a event is created, if he need to link to integration, he need to annouce his type.
IntegrationRule
In relation with an event type, all rule apply to analyse the event and create integrationEntry
BusinessObjectType
List all object type associate to an event, where we need to find information for matching information and account
BusinessObjectName
Entity contains a list of matching object
BusinessObjectCondition
Entity use to limit the available object in database for a BON
Macthing system : One, Two, Three To One
Create the match between information and NGlAccount
Accounting Integration Control
Accounting Integration Control are used to configure the integration system (Journal, integration method, exception, merging, ect ... )
TODO : List diagram entities
Accounting Integration Memory
Accounting Integration Memory are used in interface helping accounting seizure to memory the account fing with what information.
TODO : List diagram entities
Payment Parameters diagram
Payment Parameters are used to create payment or calculate DueDate for invoice
OFBiz entities Definition
- Term
- corresponds to the different terms
- PaymentMethodeType
- method of payment types
- PaymentMethode
- a method of payment for a party, it's specialized regarding discriminator PaymentMethodeType in:
- creditCard
- tranfert
- prepraid card
- a creation interface of other ways of payment is missing (customers's checks, cashdesk, ...)
- BillingAccount
- no correspondence in Neogia. We use the payer customer concept; perhaps, it'll be necessary to add a link between this payer customer and a pseudoBillingAccount to manage the credit limit concept easily.
Data Structure
- Parameterization (Setting) Elements
- ways of payment (what kind of information do I need?)
- bank account
- bank card
- gift card
- Modes of payment (enum ) PaymentMode
- transfert
- check
- recovered bill of exchange (LCR)
- promissory note (BOR)
- Modes of settlement: DueDcalMethod
- basis date (enum) baseDateType
- invoice date
- receipt (the older date of all associated shippings to the invoice)
- shift types (enum) shiftType
- end of month
- no precision
- end of decade
- shift days number: startShiftNumber
- payment day (jour de paiement): endShiftNumber
- basis date (enum) baseDateType
- ways of payment (what kind of information do I need?)
Accounting Transaction
Accounting Transaction are used to store all accounting entries
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.
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...
- Diagram show the main FixedAsset entities used for Accounting process (record and depreciation).
OFBiz entities definition
- 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
Technical Data
Static manufacturing data : describe all statics data used in the manufacturing component : task, resource, routing, ...
- TechDataCalendar : Calendar is used to have resources availability, the main goal is the WRun planification process. It's used too for fixedAsset rental process.
- CalendarWeek : Contain each days availability for a standard week, start hours, and availability for resources (or FixedAsset which is rent) associated to the Calendar.
- CalendarException : Contain for a calendar, the days where availibility is not like standard day defined in CalendarWeek.
- For Renting process, usedCapacity is used to follow how many time is already rent, compare to the total availability for this period.
WRun
- WRun object is for produced product
- 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 ,
an other similar diagram exist on Order model
Project
- Project is used to have a global (or summary) view on a list of event, order, wRun, ...
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
- Quality request, to manage it
- Check Measure, measure which should be tested for a product when a Production Run is processed
Shipment
- ShipmentBox or container, represents a box which is managed. The box can be located in a Facility, a Party (customer or supplier) or associated to a StockItem and so, to a quantity. There is one ShipmentBoxEvent for each event, each time box changes its locations (or status) (currently no existing screen for these entities, screens and services will be develop in the future)
Order
- The 3 mains Order entities and their relations
- 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
- correspondingPoId is a field for user, to enter corresponding PO in customer IT system for sales order or corresponding SO in supplier IT system
- Order Item centrics diagram
- 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) , there is too, associations used for Subcontracting management.
WorkEffort (Planning Task)
WorkEffort is a OFBiz component which is used almost whitout modification in Neogia.
In OFBiz, this component is used for managing most of the manufacturing production data: Routing, task, ProductionRun, ProductionRun's Task, all are manage in the WorkEffort entity (depending of the workEffortTypeId). In Neogia, all these entities are dedicated entities in the manaufacturing component.
In OFBiz this composant is used too for workflow management.
In Neogia, it's the OFbiz planning management which will be used, and extend.
- WorkEffort, this diagram list the main link entities (not yet all)


