Of course it's not part of the primary key but that is irrelevant. If you are creating Products outside of createProduct then chances are you are doing it wrong anyway but all you have to do is make sure some sort of default type gets set.
OFBiz is heavily dependent on the type pattern in general and I don't want to see people making a mess of that while they hack their way through custom projects. Maybe next week you will want to create Parties without types or WorkEfforts, CommunicationEvents, Agreements, Content, it is not for OFBiz to try and accommodate every strange little thing you may decide to do. And I believe it does actually hurt, we end up with inconsistent code and if people start to think that TypeIds are optional then it opens up room for more of this type of thing. There was no bug in trunk or 10.04, the bug is in your custom code. Regards Scott On 24/06/2010, at 1:47 AM, Jacques Le Roux wrote: > I think we should discuss this. Product.productTypeId is not part of Product > prmary key. > You may create other services that may not rely on OOTB createProduct and > then you get caught by this when using the UI (even an UI based on OOTB UI) > Also consider that this is only checking if the value is there. As OOTB it's > mandatory there is no problems: it can't hurt (I know you don't like this > sentence ;o). > > When I say we should discuss this, I don't think about this peculiar case but > at large: should we consider only OOTB cases when enforcing NPE or such? > > Jacques > > Scott Gray wrote: >> Check the createProduct service definition. productTypeId is required and >> the out of the box code shouldn't have to deal with >> any other scenario, please revert this. >> >> Thanks >> Scott >> >> HotWax Media >> http://www.hotwaxmedia.com >> >> On 23/06/2010, at 11:16 PM, [email protected] wrote: >> >>> Author: jleroux >>> Date: Wed Jun 23 11:16:33 2010 >>> New Revision: 957160 >>> >>> URL: http://svn.apache.org/viewvc?rev=957160&view=rev >>> Log: >>> Product.productTypeId may not exist in a custom application >>> >>> Modified: >>> >>> ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl >>> >>> Modified: >>> ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl >>> URL: >>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl?rev=957160&r1=957159&r2=957160&view=diff >>> ============================================================================== >>> --- >>> ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl >>> (original) +++ >>> ofbiz/trunk/applications/order/webapp/ordermgr/entry/cart/showcartitems.ftl >>> Wed Jun 23 11:16:33 2010 @@ -156,7 +156,7 @@ under >>> the License. <span style="color: red; font-size: >>> >>> 15px;">[${backOrdered?if_exists} ${uiLabelMap.OrderBackOrdered}]</span> >>> </#if> >>> </#if> >>> - <#if >>> (availableToPromiseMap.get(cartLine.getProductId()) <= 0) && >>> (shoppingCart.getOrderType() == >>> 'SALES_ORDER') && product.productTypeId != "DIGITAL_GOOD" && >>> product.productTypeId != "MARKETING_PKG_AUTO" && >>> product.productTypeId != "MARKETING_PKG_PICK"> + >>> <#if >>> (availableToPromiseMap.get(cartLine.getProductId()) <= >>> 0) && (shoppingCart.getOrderType() == 'SALES_ORDER') >>> && product.productTypeId! != "DIGITAL_GOOD" && >>> product.productTypeId! != "MARKETING_PKG_AUTO" && >>> product.productTypeId! != "MARKETING_PKG_PICK"> <span style="color: >>> red;">[${cartLine.getQuantity()} ${uiLabelMap.OrderBackOrdered}]</span> >>> <#else> <#if >>> (availableToPromiseMap.get(cartLine.getProductId()) < >>> cartLine.getQuantity()) && (shoppingCart.getOrderType() == 'SALES_ORDER') >>> && product.productTypeId != "DIGITAL_GOOD" && product.productTypeId != >>> "MARKETING_PKG_AUTO" && product.productTypeId != >>> "MARKETING_PKG_PICK"> > >
smime.p7s
Description: S/MIME cryptographic signature
