External methods returning multiple variables?
Hello, I would like to have a DTML Method call an External Method that would set a bunch of variables that could be used further in the DTML using a simple <dtml-var myvariable> where myvariable was set by the External Method. The trick is the name and number of variables isn't fixed. So far I've managed to get all my name value pairs into a dictionary that I return with "return dictionary", but I'm not sure how to properly call this external method in order to make sure the dictionary gets returned ... can I even do that? And once I get this dictionary accross, how do I use it in DTML ? Am I on the right track here? Thank you, Jean-François Doyon Internet Service Development and Systems Support GeoAccess Division Canadian Center for Remote Sensing Natural Resources Canada http://atlas.gc.ca Phone: (613) 992-4902 Fax: (613) 947-2410
Doyon, Jean-Francois wrote:
Hello,
I would like to have a DTML Method call an External Method that would set a bunch of variables that could be used further in the DTML using a simple <dtml-var myvariable> where myvariable was set by the External Method.
The trick is the name and number of variables isn't fixed. So far I've managed to get all my name value pairs into a dictionary that I return with "return dictionary", but I'm not sure how to properly call this external method in order to make sure the dictionary gets returned ... can I even do that? And once I get this dictionary accross, how do I use it in DTML ?
Am I on the right track here?
Yupp, you are - at least something like this works for me. You can use for instance <dtml-with "external_method(your_input_data)" mapping> <dtml-var your_dict_key1> <dtml-var your_dict_key2> </dtml-with> (this is what works for me, but you don't know the keys beforehand, do you?) or (untested, but should work) <dtml-call "REQUEST.set('my_dict',external_method(your_input_data))"> <dtml-in "my_dict.keys()"> <dtml-var sequence-item> has value <dtml-var "my_dict[_['sequence-item']]"> </dtml-in> There is also a mapping attribute for dtml-in, but I don't grasp it. cheers, oliver
participants (2)
-
Doyon, Jean-Francois -
Oliver Bleutgen