In SkinScript such as

   WHEN eventspec CALL expression SAVING mementolist

if any of the mementos in mementolist are not found, the script raises a 
KeyError.

I'd like a way of saving a memento if it exists, or NOT_FOUND otherwise.

For example, an Executive might have a CompanyCar.

WITH CompanyCars.getCar(self.car_id) or NOT_FOUND COMPUTE
   car=RESULT,
   car_registration=registration
OTHERWISE LET
   car=NOT_FOUND,
   car_registration="no car"

When an Executive changes her car for a different one, I want to perform 
certain actions on the old car, and certain on the new car:

WHEN OBJECT CHANGED CALL
   HAS_CHANGED('car_id') and
   (self.car_id and CompanyCars.getItem(self.car_id).decommission(),
    ORIGINAL['car_id'] and OLD['car'].commission())
SAVING car

However, I can't do this if the executive is being assigned a car from a 
state of having no car. It fails with a KeyError because the ZPatterns 
machinery can't save "car".

--
Steve Alexander
Software Engineer
Cat-Box limited
http://www.cat-box.net


_______________________________________________
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://lists.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 http://lists.zope.org/mailman/listinfo/zope-announce
 http://lists.zope.org/mailman/listinfo/zope )

Reply via email to