>- see footer for list info -<
Two things, neither of which are probably to blame for your error.
In your second example you don't wrap your string arguments in quotes.
Before:
<cfinvokeargument name = "mitoo_player_id" value="#new_player_id#" />
After:
<cfinvokeargument name="mitoo_player_id" value=#new_player_id# />
Also, I'd be loath to create a variable called Arguments, given that there is a
scope called Arguments.
Fife Council requests that you "Think Green" and only print this email if
absolutely necessary
>>> "Terry Riley" <[EMAIL PROTECTED]> 02/10/2008 17:32 >>>
>- see footer for list info -<
Long post warning....
Am a newcomer to web services, but learning fairly quickly.
And I cannot move to CF7 or CF8 yet, so I hope the answer doesn't
absolutely involve any upgrade!
I have created cfcs and relevant functions for others to get data from
our server, and have created a number of discrete <cfinvoke>s to pass
data back to a particular web service (not CF).
If the service is consumed as follows:
<cfinvoke
webservice = "http://xyz.com/service.php?class=webServices&wsdl"
method = "createPlayer"
returnvariable = "success"
username = 'joe'
password = 'pass'>
<cfinvokeargument name = "mitoo_player_id"
value="#new_player_id#" />
<cfinvokeargument name = "gr_player_firstname"
value="#new_player_firstname#" />
<cfinvokeargument name = "gr_player_lastname"
value="#new_player_lastname#" />
<cfinvokeargument name = "mitoo_team_ids"
value="#new_player_team_ids#" />
</cfinvoke>
<cfoutput>#success.success_code#</cfoutput>
I have no problems and get back the required success object. However, I
want to stick all of these invokes inside a cfc as functions, requesting
them as <cfinvoke> with parameters from outside, as and when the need
araises (ie trying to reuse some code like the generation of the
webservice object)
If the params are passed via an invoke such as:
<cfinvoke component="gr_webServices" method="createPlayer"
returnvariable="gr_player_id">
<cfinvokeargument name="mitoo_player_id" value=#new_player_id# />
<cfinvokeargument name="gr_player_firstname"
value=#new_player_firstname# />
<cfinvokeargument name="gr_player_lastname"
value=#new_player_lastname# />
<cfinvokeargument name="mitoo_team_ids" value=#new_player_team_ids#
/>
</cfinvoke>
and the component contains:
<cfcomponent>
<cffunction name="createPlayer" access="public" username="fred"
password="bloggs" returntype="numeric" output="no">
<cfargument name="mitoo_player_id" type="numeric"
required="true" hint="the latest player added">
<cfargument name="gr_player_firstname" type="string"
required="true" hint="the latest player's first name">
<cfargument name="gr_player_lastname" type="string"
required="true" hint="the latest player's last name">
<cfargument name="mitoo_team_ids" type="array" required="true"
hint="teams the player is signed to">
<cfset var gr_player_id = ''>
<cfscript>
ws =
createObject("webservice","http://xyz.com/service.php?class=webServices&ws
dl");
gr_player_id = ws.createPlayer(arguments);
return gr_player_id;
</cfscript>
</cffunction>
</cfcomponent>
I get yer actual error screen which includes:
Web service operation "createPlayer" with parameters
{{GR_PLAYER_FIRSTNAME={Terry},GR_PLAYER_LASTNAME={Riley},MITOO_PLAYER_ID={
1},MITOO_TEAM_IDS={[123]},}} could not be found.
Now I've tried to simulate the the invoke in other ways, such as:
<cfset gr_webServices = createObject("webservice",
"http://xyz.com/service.php?class=webServices&wsdl")>
<cfscript>
arguments = StructNew();
arguments.mitoo_team_ids = #new_player_team_ids#;
arguments.mitoo_player_id = #new_player_id#;
arguments.gr_player_firstname = #new_player_firstname#;
arguments.gr_player_lastname = #new_player_lastname#;
success = gr_webServices.createPlayer(arguments);
return success;
</cfscript>
and I get the same error as above.
It looks to me as though the invoke through the cfc (or through the
script method above) is creating another empty variable (see the comma
before the closing double bracket), but the arguments structure prior to
submission (whichever way I do it) contains only the four pairs, not an
empty fifth, as shown by using <cfdump>.
I've searched the googleverse for an answer, to no avail, so I though I
would ask my old gurus if they know the answer.
Any help - positive or negative - is welcome.
Terry
http://www.confexdb.co.uk/
--
No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.523 / Virus Database: 270.7.5/1702 - Release Date: 01/10/2008 09:05
_______________________________________________
For details on ALL mailing lists and for joining or leaving lists, go to
http://list.cfdeveloper.co.uk/mailman/listinfo
--
CFDeveloper Sponsors:-
>- cfdeveloper Hosting provided by www.cfmxhosting.co.uk -<
>- Lists hosted by www.Gradwell.com -<
>- CFdeveloper is run by Russ Michaels, feel free to volunteer your help -<
**********************************************************************
This email and any files transmitted with it are confidential and intended
solely for the use of the individual or entity to whom they are addressed and
should not be disclosed to any other party.
If you have received this email in error please notify your system manager and
the sender of this message.
This email message has been swept for the presence of computer viruses but no
guarantee is given that this e-mail message and any attachments are free from
viruses.
Fife Council reserves the right to monitor the content of all incoming and
outgoing email.
Fife Council
************************************************
_______________________________________________
For details on ALL mailing lists and for joining or leaving lists, go to
http://list.cfdeveloper.co.uk/mailman/listinfo
--
CFDeveloper Sponsors:-
>- cfdeveloper Hosting provided by www.cfmxhosting.co.uk -<
>- Lists hosted by www.Gradwell.com -<
>- CFdeveloper is run by Russ Michaels, feel free to volunteer your help -<