Today, I analysed a confusing error message from "dtml-sqlvar". SQL query template: .... <dtml-sqlvar "_[name]" type=string> .... reported: "missing input variable: _[name]" Of cause, I did not expect that such an input variable should be necessary and I suspected the DTML parser not to see the "..." around "_[name]". After analysis, the explanation was simple: SQLVar.render is a bit stupid in its error handling: try: expr=self.expr if type(expr) is type(''): v=md[expr] else: v=expr(md) except: if args.has_key('optional') and args['optional']: return 'null' raise 'Missing Input', 'Missing input variable, <em>%s</em>' % name This error handling is only senseful for "type(expr) == type('')", i.e. for plain variable access. For true expressions, the original exception would be *much* more useful. In my case, unwrapping the "try ... except ..." produced "KeyError: FOLLUP_UP", an obvious type (FOLLOW_UP rather than FOLLUP_UP). Thus, the above exception handling should become: except: if args.has_key('optional') and args['optional']: return 'null' if type(self.expr) != type(''): raise raise 'Missing Input', 'Missing input variable, <em>%s</em>' % name I will put it into the collector. Dieter _______________________________________________ Zope maillist - [EMAIL PROTECTED] http://lists.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://lists.zope.org/mailman/listinfo/zope-announce http://lists.zope.org/mailman/listinfo/zope-dev )