digitalwise
asked on
cfscript and cfc not working
I have a line
that works just fine in development (which is CF9) but when I load this to live it doesn't work (which is CF8). Why doesn't that work on CF8??
variables.usps = New usps(isProduction=true, isSecure=false, uspsUserID=variables.uspsUserID);
variables.RateV4 = variables.usps.RateV4(
Service = 'FIRST CLASS',
FirstClassMailType = 'PARCEL',
ZipOrigination = '99212',
ZipDestination = '22193',
SIZE = 'REGULAR',
Pounds = '0',
Ounces = '3.5'
that works just fine in development (which is CF9) but when I load this to live it doesn't work (which is CF8). Why doesn't that work on CF8??
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Any error messages you can share?
ASKER
As usual - thanks for the help! Wandering between CF10 and this old CF8 site is a huge pain! Completely missed it. Now the problem is the CFC was written for CF9 so I have to fix that stuff too!
I hear you! I really wish they would make older versions available for developers, so they don't have to depend on the "publish-it-and-hope-it-do esn't-brea k" method ;-)
Here is an unofficial repo containing all the old cf installer downloads.
http://www.gpickin.com/cfr epo/
http://www.gpickin.com/cfr
ASKER
So I am working through this mess and getting the error: Variable SETURLTEST is undefined.
<cffunction name="init" access="public" returntype="USPS" output="false" hint="Initializes the USPS CFC">
<cfargument name="isProduction" type="boolean" required="false" default="#getIsProduction()#">
<cfargument name="isSecure" type="boolean" required="false" default="#getIsSecure()#">
<cfargument name="uspsUserID" type="string" required="false" default="#getUspsUserID()#">
<cfscript>
// set constants (CF9 fix)
setURLTEST("http://testing.shippingapis.com/ShippingAPITest.dll");
setURLTESTSECURE("https://secure.shippingapis.com/ShippingAPITest.dll");
setURLPROD("http://production.shippingapis.com/ShippingAPI.dll");
setURLPRODSECURE("https://secure.shippingapis.com/ShippingAPI.dll");
// set production and secure flags
setIsProduction(arguments.isProduction);
setIsSecure(arguments.isSecure);
setUspsUserID(arguments.uspsUserID);
// configure url based on flags
if(getIsProduction()){
if(getIsSecure()){
setUrl(getURLPRODSECURE());
}
else{
setUrl(getURLPROD());
}
}
else{
if(getIsSecure()){
setUrl(getURLTESTSECURE());
}
else{
setUrl(getURLTEST());
}
}
return this;
</cfscript>
</cffunction>
Which line is throwing the error? I don't see anything that looks CF9 specific, so I'm guessing the problem is in one of the functions. Any chance this CFC is public btw - so I could look a the whole thing?
ASKER
It is - on GitHub - https://github.com/matthew riley/USPS -CFC . My testing file is https://www.appa.org//book store/test u.cfm
<cfproperty name="isProduction" type="boolean">
<cfproperty name="isSecure" type="boolean">
<cfproperty name="uspsUserID" type="string">
<cfproperty name="url" type="string">
<cfproperty name="URLTEST" type="string">
<cfproperty name="URLTESTSECURE" type="string">
<cfproperty name="URLPROD" type="string">
<cfproperty name="URLPRODSECURE" type="string">
Hm... I wonder if it's cfproperty stuff. I know in later versions it creates the setters/getters automatically. I don't remember how it behaved in CF8.
Edit: Yeah, that's the problem. You'll have to create the getters/setters manually.
Edit: Yeah, that's the problem. In CF9+ cfproperty creates the getter/setter's automatically. Not so much in CF8 :/. You have to create those methods manually.
<cffunction name="setURLTEST" access="public" returntype="void">
<cfargument name="value" type="String" required="true">
<cfset variables.URLTEST = arguments.value />
</cffunction>
...