That is a crazy error... I would erase the few lines of code that actually
call the chkMDSInventory() method and rewrite them... Sometimes that works
for me for  crazy errors. 

.......................
Ben Nadel 
Web Developer
Nylon Technology
350 7th Avenue
Floor 10
New York, NY 10001
212.691.1134 x 14
212.691.3477 fax
www.nylontechnology.com
 
"Some people call me the space cowboy. Some people call me the gangster of
love."

-----Original Message-----
From: Rey Bango [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, August 16, 2006 3:01 PM
To: CF-Talk
Subject: Stumped on CFC param issue

I'm a little stumped on this. I have a cfc which contains a method that
checks inventory levels. Its defined as:

<cffunction name="chkMDSInventory" access="remote" returntype="boolean">
<cfargument name="productid" type="numeric" required="yes">     
<cfargument name="orderitemqty" type="numeric" required="yes">

.......
<cfreturn hasMDSInv>
</cffunction>

I've used this in my code before with no issues at all.

So, I go to use it in another part of the site via the following snippet of
code:

<!--- Instantiate inventory checker - Inventory.cfc ---> <cfset invOBj =
createObject("component","com.inventory.inventory").init() />

<cfquery name="getProductInfo" datasource="#request.ds#"> Select ProductID
from products where sku = <cfqueryparam value="#trim( evaluate(
variables.sku ) )#" 
cfsqltype="CF_SQL_VARCHAR">
</cfquery>                      

<cfif NOT invObj.chkMDSInventory( getProductInfo.productid,
variables.thisquantity )>
        <cfset groundShipOnly = true>
</cfif>

When I run this, I get an error back saying:

"The argument PRODUCTID passed to function chkMDSInventory() is not of type
numeric."

Now, I've verified that both getProductInfo.productid &
variables.thisquantity are numeric by using the isNumeric CF function and
they are numeric values. But it still throws this error. The code above is
almost exactly to code that I use in another part of the site which performs
perfectly.

Now here's the kicker. If I change the code to this:

<cfset pid  = Numberformat( getProductInfo.productid )>
<cfset pQty = Numberformat( variables.thisquantity )>                   
                        
<cfif NOT invObj.chkMDSInventory( variables.pid, variables.pQty )>
        <cfset groundShipOnly = true>
</cfif>

it works just fine! I'm stumped. I have no idea why isNumeric() would report
the values as numeric but the CFC's method won't especially when this same
code works just fine in another part of the site.

Any ideas?

Rey...



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:250040
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to