You're not understanding the design. The EntitySubtype entity implements
entity subtypes only, it does not replace all *Type entities. There are
*Type entities in the DMRB that are not related to entity subtypes - so
those will remain unchanged.
The ProductType entity implements Product subtypes, so it would be
replaced with the EntitySubtype entity.
-Adrian
On 10/8/2012 6:23 AM, Jacopo Cappellato wrote:
Well, no I didn't.
If I understand your design, you are proposing to keep the ProductType entity
and add a generic EntitySubtype entity for *subtypes*; the pattern described in
the EntitySubtype is similar to the one proposed by David for the *Type
entities.
Keeping the existing pattern for Type entities and adding the new one for the
subtypes in my opinion is ugly and confusing, this is the main reason I don't
like it.
Jacopo
On Oct 6, 2012, at 7:19 PM, Adrian Crum wrote:
So your opinion has changed...
http://mail-archives.apache.org/mod_mbox/ofbiz-dev/201103.mbox/%3c82330f5c-3938-487e-98ae-ffee0c876...@hotwaxmedia.com%3E
-Adrian
On 10/5/2012 10:23 AM, Jacopo Cappellato wrote:
HelloAdrian,
in my opinion it would be better to leave the data model as is, but improve the
descriptions of the types (and documentation, in the form of comments to xml
data) and also enhnce our utils to deal with types (the Product already has
something in place).
Regards,
Jacopo
On Oct 1, 2012, at 8:14 AM, Adrian Crum wrote:
I mentioned this once before as part of another discussion, but I'm creating a
new discussion so it can receive the attention it deserves.
The Data Model Resource Book describes entity subtypes. OFBiz implements entity
subtypes by adding a field to the supertype that points to a *Type entity that
contains valid subtypes.
The problem is users (and some developers) do not understand that pattern, and
they add invalid subtypes to the *Type entity. That can cause things to break.
As an example, I have a client who created additional ProductTypes (that
actually represented product categories) and used those added ProductTypes for
their products. Then they were puzzled why their order fulfillment process
stopped working.
I think what we need is an EntitySubtype entity to store the subtype data.
Instead of multiple *Type entities, we would have a single EntitySubtype
entity, and the supertypes will point to it. The supertype field could be
called something like entitySubtypeId. The EntitySubtype entity will be clearly
documented as to its purpose and proper use.
EntitySubtype
-------------
entityName*
entitySubtypeId*
description
What do you think?
-Adrian