Dear Folks, While working/reviewing recent work in community, I observed some improvement/fixes required at entity and related service implementation. For few entities like InvoiceAttribute, InvoiceType, etc. no service exists to create/update/delete. At the time of writing migration scripts I always see lack of such services, which can be used to define new types or attributes. Also Many entities have some other problems in basic design of CRUD operations and in definitions;
On further look into this in detail found many such entities which do not have services. I would like to propose a refactoring at basic design level which covers following which does not impact on functionality we have; 1) Many entity definitions having relationships with view-entities, like OrderHeader entity maintain relationship with OrderHeaderNoteView and OrderItemAndShipGroupAssoc. We should remove it, maintain the relationship at view-entities level if required. Also change the code where this relation is in use. 2) Many entities having service implementation exists but they can be simply convert into entity-auto, that means can use the power OFBiz provides. 3) As mentioned initially many entities do not have CRUD services exists, we should implement or use entity-auto for them wherever applicable. Also remove direct use of delegator for them. 4) Many entities having from date and thru date, Or status Or Enumeration to manage the historical data, but services actually remove those entity data. We should change the service implementation to maintain the historical data. After this effort, OFBiz will have minimum direct use of delegator, enriched use of service engine, we would be able to established patterns/best practice to introduce a new entities, and writing new services. I would love to hear more improvements in this area from community. We will add them in this effort only. Rishi Solanki Manager, Enterprise Software Development HotWax Systems Pvt. Ltd. Direct: +91-9893287847 http://www.hotwaxsystems.com