>Some times it cannot be avoided with out a boat load of thinking and trial
>and error. Case in point, and I will gladly change this bit of code to not
>use evaluate if someone can figure out how to do this in CFscript sans the
>evaluate function:
OK, I'll bite. It's certainly much more verbose, and cannot be done in
CFScript, but this should work (totally untested, obviously, so forgive any
syntax errors):
First off, you would need to add a couple more var-scoped local variables:
<cfset var myBeanID = 0 />
<cfset var myReturnValue = "" />
And then you could change the latter portion of your function to this:
<cfif arguments.MyAction EQ "delete">
<cfinvoke component="#myBeanObj#" method="get#arguments.MyPK#"
returnVariable="myBeanID" />
<cfinvoke component="#MyServiceObj#" method="delete#arguments.MyTable#"
returnVariable="myReturnValue">
<cfinvokeargument name="#arguments.MyPK#" value="#myBeanID#" />
</cfinvoke>
<cfelseif arguments.MyAction EQ "Select">
<cfinvoke component="#MygatewayObj#" method="getByAttributesQuery"
returnVariable="myReturnValue" argumentCollection="arguments.MyStruct" />
<cfelseif arguments.MyAction EQ "Upsert">
<cfinvoke component="#MyServiceObj#" method="save#arguments.MyTable#"
returnVariable="myReturnValue">
<!--- Don't know the argument name here --->
<cfinvokeargument name="???" value="#myBeanObj#" />
</cfinvoke>
<cfelse>
<!--- Not sure what this is doing... does it need to return the
evaluated numeric value 2? --->
<cfset myReturnValue = "1+1" />
</cfif>
<cfreturn myReturnValue />
Note that you would need to supply the argument name for the "Upsert" action,
as <cfinvokeargument> requires a name attribute, and you were using an unnamed
argument in the original method invocation.
As I said, signifcantly more verbose, so I would leave it to your sensibilities
as to whether this is an improvement or not...
--
Ezra Parker
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to
date
Get the Free Trial
http://ad.doubleclick.net/clk;207172674;29440083;f
Archive:
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:320744
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4