We've done the same thing here, but using a view entity instead of a
dynamic entity. Ours uses 3 queries, 1 to find orders ready to pick, 1
to find those already on a picklist (subtracted from the first list)
and 1 to find those that need stock moves (also subtracted from the
original list).
I would be interested to see your approach.
-Joe
On Jul 7, 2010, at 9:59 AM, mayo wrote:
No, I used DynamicViewEntity to make more complex SQL to more
quickly filter
out any orders that should not be picked. For instance in OFBiz 4.0
(and
maybe the trunk version), the picklistoptions function will
(abbreviated)
select * from OrderHeader
for each orderHeader {
select * from OrderItemShipGroup where orderId =
orderHeader.orderId
for each orderItemShipGroup in orderItemShipGroupList {
select * from OrderItemShipGrpInvRes where orderId =
orderItemShipGroup.orderId;
for each orderItemShipGrpInvRes in orderItemShipGrpInvResList {
etc....
}
}
}
These kind of loops can create many hits to the database and greatly
slow
down the process, especially if the database tables have many
records. Our
database is now almost 8 gigs. The PicklistOptions process
yesterday took
~4 minutes for 40 pickable orders.
My code uses DynamicViewEntity to create join statements and make
minimal
hits to the database--I think a total of 4 hits. For the same 40
pickable
orders, the process ran in 2-3 seconds. My code is missing some of
the
bells and whistles that you have, but it gives a good foundation and
structure. You will be able to add all the bells and whistles very
quickly.
My company is using my code in production right now. The user has
verified
it is working correctly to this point. Let me know if anyone is
interested
in seeing the code. I would like to contribute to the community is
some
way, since I do not have time to properly develop on the trunk.
--
View this message in context:
http://ofbiz.135035.n4.nabble.com/PicklistOptions-processing-time-tp2280129p2280947.html
Sent from the OFBiz - Dev mailing list archive at Nabble.com.