On Oct 26, 2009, at 7:59 AM, Miguel Lopes wrote:

> I have a record that is created in code. All it takes to create it is
> a string, thus I'm using a dabo.ui.getString() dialog to get the
> string from the user.
> This lead me to wonder about where would be the best place to catch a
> validation exception (dabo.dException.BusinessRuleViolation).
>
> I'm tempted to catch it in the bizobj and then return an empty string
> in case it is valid or a string with the error message if it's not
> valid.

        Why not use the built-in exception?

try:
        myBiz.validateUserInput(val)
except dException.BusinessRuleViolation, e:
        dabo.ui.stop("Invalid entry: %s" % e)

        It's a much more Pythonic approach, and keeps the UI separate from  
the bizobj layer logic.

> This way the client code (in a form) can alert the user. On the other
> hand I could just show the dialog from the bizobj, which doesn't seem
> like a good idea (for readability), although in many cases this
> wouldn't be a problem.

        It might work, but it will result in a horribly difficult to maintain  
application. Dabo is designed to use a 3-tier approach to coding, in  
which UI, business logic and data access are all kept independent of  
each other.

> It also crossed my mind that this could interfere with Springboard.
> Since I don't know if the bizobj runs remotely or locally.

        If you want to add additional bizobj methods that will work as a  
remote bizobj, look at the code in dBizobj.py for methods such as  
save(), requery(), etc., to see how to make this work.


-- Ed Leafe





_______________________________________________
Post Messages to: Dabo-users@leafe.com
Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users
Searchable Archives: http://leafe.com/archives/search/dabo-users
This message: 
http://leafe.com/archives/byMID/7bd82f3e-a077-427c-b215-7a198d409...@leafe.com

Reply via email to