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

Reply via email to