May I add request here? I think it's also need to add the status changed history automatically, we can see how the status changed from the history recorder.
2009/5/7 Jacques Le Roux <jacques.le.r...@les7arts.com> > From: "Scott Gray" <scott.g...@hotwaxmedia.com> > >> No need to apologize Hans, comments were exactly what I was after so >> thank you for taking the time. >> >> Based on your input and David's, I'm not going to worry about automating >> the checks as the current approach doesn't really seem to bother anyone. >> >> I am still a little concerned about us not checking the validity of >> statuses for newly created records, does it bother anyone else? >> > > Hi Scott, > > Yes, this is annoying and your examples prove that not only some exist but > almost surely some new examples will be commited :/ > Having something keeping this clean automatically would be not only cool > for developpers but also for code quality. > > Jacques > > > Thanks >> Scott >> >> On 7/05/2009, at 6:36 PM, Hans Bakker wrote: >> >> Hi Scott, >>> >>> sorry to jump in. >>> In general i tried to concentrate the setting of the statusId in a >>> single service which is used for EVERY status change. examples are in >>> invoice and customerRequest and other places. >>> >>> is that a possible solution? >>> >>> Regards, >>> Hans >>> >>> On Thu, 2009-05-07 at 18:24 +1200, Scott Gray wrote: >>> >>>> Hi David >>>> >>>> Thanks for the feedback, here are the main issues as I see it with the >>>> way things are now: >>>> 1. The developer has to know/remember to check for a valid status >>>> change, I'm willing to bet that there are numerous places where it >>>> isn't checked at the moment but should be. >>>> 2. While generally the check is only around 8-12 lines of code, the >>>> developer has to either remember how to write the query and what error >>>> message should be displayed or find some existing code to copy/paste >>>> (is the status set, has the status changed, do the lookup, report an >>>> error). >>>> >>>> I don't think options #2 and #3 below cover problem #1 above but they >>>> may help with #2. >>>> >>>> Also another issue with StatusValidChange is that there is currently >>>> no way to make sure when creating a new record that the initial status >>>> is valid, I stumbled across this while fixing the test cases where a >>>> Shipment was being created in the SHIPMENT_PACKED status and it was >>>> subsequent ECA code that was failing. To solve that I would like to >>>> remove the not empty constraint on StatusValidChange.statusId so that >>>> we can use the entity to indicate valid status entry points and start >>>> checking for them during record creation. >>>> >>>> My only goal with these suggestions is to try and lighten the load on >>>> the developer and this seems like a good opportunity for the framework >>>> to step in because the checks are very generic anyway. >>>> >>>> Regards >>>> Scott >>>> >>>> On 7/05/2009, at 4:56 PM, David E Jones wrote: >>>> >>>> >>>>> A couple of notes: >>>>> >>>>> 1. if we add something to the entity engine to check this we would >>>>> need to move the Status* entities from the common component to the >>>>> entity component >>>>> >>>>> 2. I played with doing a separate method that genericized checking >>>>> the StatusValidChange, but it made the code bigger and (IMO) more >>>>> difficult to follow and customize, especially since the >>>>> StatusValidChange checking is pretty simple in the first place. >>>>> However, the code would be more generic and perhaps slightly more >>>>> simply (ie maybe not fewer lines, but some of the lines would be >>>>> less complex), so there might be some merit in it... >>>>> >>>>> 3. related to #1, but a variation on that approach: we could perhaps >>>>> have a service that checks this generically that is called through >>>>> an EECA or SECA rule, and then all we have to do is setup that ECA >>>>> rule for each entity we want checked >>>>> >>>>> -David >>>>> >>>>> >>>>> On May 6, 2009, at 9:29 PM, Scott Gray wrote: >>>>> >>>>> Hi All >>>>>> >>>>>> Currently there is a ton of code in various places that checks to >>>>>> make sure a status change is valid using the StatusValidChange >>>>>> entity, and there are also places where there is no check even >>>>>> though records exist (createShipment for example). I'm wondering >>>>>> we couldn't add support for this to the entity engine itself so >>>>>> that it doesn't have to be done manually, we could add some sort of >>>>>> flag to the entity field def and then GenericEntity could perform >>>>>> the check when setting the field. Thoughts? >>>>>> >>>>>> The only thing I'm not too sure on is the purpose of the condition >>>>>> field on StatusValidChange and how it is intended to be used, there >>>>>> are no examples of its use in the existing data. >>>>>> >>>>>> Failing that I'd at least like to add a utility method and a simple >>>>>> method operation to simplify the task. >>>>>> >>>>>> Thanks >>>>>> Scott >>>>>> >>>>>> HotWax Media >>>>>> http://www.hotwaxmedia.com >>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>> -- >>> Antwebsystems.com: Quality OFBiz services for competitive rates >>> >>> >> >> >