Ask a Question related to Coldfusion - Advanced Techniques, Design and Development.
-
canIgetAwitness #1
CFC in Application Scope Looping Index
I am getting an 'outofbounds' errors in cfc's that I have in application scope.
This occurs in loops and is logically impossible to happen. Can anyone tell
me if the variables in functions in a CFC stored in application scope are not
local to that function and/or request?
Thank you,
Craig
canIgetAwitness Guest
-
web services and Application scope
how do I see my Application variables within a method of a webservice-called CFC? I have an external system that calls my coldfusion mx 7 app... -
Application.xml ->Process->Scope
server: Dual Processor Dual Core Xeon - 3.4GHz Ram: 2 GB DDRII Operating System: CentOS 4 (32 bit) -FEDORA X.X -RED HAT - ECC. I changed the... -
Application.xml->Process->Scope
erver: Dual Processor Dual Core Xeon - 3.4GHz Ram: 2 GB DDRII Operating System: CentOS 4 (32 bit) I changing the scope in the application.xml to... -
Application Scope
I have a farm of CF5 servers. In order to reduce the number of times I hit the database, I'm saving data within the application scope. I'm setting... -
DataKeys(Index): Scope issue
I can access the dg's DataKeys values (table primary key values) from events raised by objects outside of the dg. For example, from a... -
canIgetAwitness #2
CFC in Application Scope Looping Index
I am getting an 'outofbounds' errors in cfc's that I have in application scope.
This occurs in loops and is logically impossible to happen. Can anyone tell
me if the variables in functions in a CFC stored in application scope are not
local to that function and/or request?
Thank you,
Craig
canIgetAwitness Guest
-
Adam Cameron #3
Re: CFC in Application Scope Looping Index
> I am getting an 'outofbounds' errors in cfc's that I have in application scope.
Within a CFC instance (irrespective of the scope the instance is stored> This occurs in loops and is logically impossible to happen. Can anyone tell
> me if the variables in functions in a CFC stored in application scope are not
> local to that function and/or request?
in), a variables-scope variable is global to the CFC for the life of the
instance.
eg:
<cfset variables.foo = "bar">
or:
<cfset foo = "bar">
Function-local variables are always local to the function, irrespective of
the scope the CFC instance itself is stored in.
eg:
<cfset var foo = "bar">
It might help by posting your code. Obviously it *is* logically possible
for what you're seeing to happen, otherwise it wouldn't be happening:
computers are annoying like that. However a few spare sets of eyes might
help spot the problem.
--
Adam
Adam Cameron Guest
-
canIgetAwitness #4
Re: CFC in Application Scope Looping Index
Here is the code. Thanks for looking. It is in the code..
<cfif bTasksFound>
<cfset
"xmlScores.scores.xmlAttributes.#UCASE(aSummedScor eNode[sssCounter].xmlAttribute
s.id)#SUMMEDSCORE" = iSummedTotal>
<cfelse>
<cfset
StructDelete(xmlScores.scores.xmlAttributes,"#UCAS E(aSummedScoreNode[sssCounter]
..xmlAttributes.id)#SUMMEDSCORE")>
</cfif>
That errors are reported. This cfc is stored in application scope.
<cffunction name="setSummedScores" access="public" returntype="any">
<cfargument name="xmlAssessment" type="any" required="true">
<cfargument name="sGrade" type="string" required="true">
<cfargument name="sRootTaskID" type="string" required="false" default="">
<cfargument name="xmlScores" type="any" required="false"
default="#session.xmlScores#">
<cfif Len(sRootTaskID)>
<!--- Check only those summed scores a particular task is in --->
<cfset aSummedScoreNode =
XMLSearch(arguments.xmlAssessment,"//summedscores/summedscore[contains(@GRADE,'#
arguments.sGrade#') and contains(@IDREFS,'#arguments.sRootTaskID#')]")>
<cfelse>
<!--- Check ALL summed scores --->
<cfset aSummedScoreNode =
XMLSearch(arguments.xmlAssessment,"//summedscores/summedscore[contains(@GRADE,'#
arguments.sGrade#')]")>
</cfif>
<cfif NOT ArrayIsEmpty(aSummedScoreNode)>
<cfloop from="1" to="#ArrayLen(aSummedScoreNode)#" index="sssCounter">
<cfset iSummedTotal = 0>
<cfset bTasksFound = true>
<cfloop list="#aSummedScoreNode[sssCounter].xmlAttributes.idrefs#"
index="sTaskID">
<cfif FindNoCase("or",sTaskID)>
<cfset sFirstTaskID = ListFirst(sTaskID," ")>
<cfset sSecondTaskID = ListLast(sTaskID," ")>
<cfset aFirstScoreNode =
XMLSearch(xmlScores,"//*[@IDREF='#sFirstTaskID#']")>
<cfset aSecondScoreNode =
XMLSearch(xmlScores,"//*[@IDREF='#sSecondTaskID#']")>
<cfif ArrayIsEmpty(aFirstScoreNode) OR NOT
StructKeyExists(aFirstScoreNode[1].xmlAttributes,"score")>
<cfset bTasksFound = false>
<cfbreak>
<cfelseif ArrayIsEmpty(aSecondScoreNode) OR NOT
StructKeyExists(aSecondScoreNode[1].xmlAttributes,"score")>
<cfset iSummedTotal = iSummedTotal +
aFirstScoreNode[1].xmlAttributes.score>
<cfelseif aFirstScoreNode[1].xmlAttributes.score GT
aSecondScoreNode[1].xmlAttributes.score>
<cfset iSummedTotal = iSummedTotal +
aFirstScoreNode[1].xmlAttributes.score>
<cfelse>
<cfset iSummedTotal = iSummedTotal +
aSecondScoreNode[1].xmlAttributes.score>
</cfif>
<cfelse>
<cfset aScoreNode = XMLSearch(xmlScores,"//*[@IDREF='#sTaskID#']")>
<cfif ArrayIsEmpty(aScoreNode) OR NOT
StructKeyExists(aScoreNode[1].xmlAttributes,"score")>
<cfset bTasksFound = false>
<cfbreak>
<cfelse>
<cfset iSummedTotal = iSummedTotal + aScoreNode[1].xmlAttributes.score>
</cfif>
</cfif>
</cfloop>
<cfif bTasksFound>
<cfset
"xmlScores.scores.xmlAttributes.#UCASE(aSummedScor eNode[sssCounter].xmlAttribute
s.id)#SUMMEDSCORE" = iSummedTotal>
<cfelse>
<cfset
StructDelete(xmlScores.scores.xmlAttributes,"#UCAS E(aSummedScoreNode[sssCounter]
..xmlAttributes.id)#SUMMEDSCORE")>
</cfif>
</cfloop>
</cfif>
<cfreturn xmlScores>
</cffunction>
canIgetAwitness Guest
-
Adam Cameron #5
Re: CFC in Application Scope Looping Index
You're not VARing any of yor variables. Is that by design?
--
Adam
Adam Cameron Guest



Reply With Quote

