>From what I picked up in a lot of cases a some of developers are trying not use ofbiz as it was intended, especially at the UI level.
Yes, the fact valid status change is not used does concern me, however I have not come up with a way to validate the code flow should or does use valid status change, except by walking through the code. That is a lot of code to review. I ran into to this when I was doing customization and adding major status changes for a client. Maybe a Jira that will let us document where these are not done then we can evaluate what should be done. I will be glad to go back over my notes to input what I found. Scott Gray sent the following on 5/7/2009 1:10 AM: > 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? > > 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 >> > -- BJ Freeman http://www.businessesnetwork.com/automation http://bjfreeman.elance.com http://www.linkedin.com/profile?viewProfile=&key=1237480&locale=en_US&trk=tab_pro Systems Integrator.