当我尝试从cfc调用函数时,我收到变量未定义错误。 最好的部分是上面定义的已经。 “IandI”是cfc名称。
代码段:
<cfparam name="TotalCorpAudits" default="0">
<cfset TotalAudits = TotalSiteAudits + TotalCorpAudits>
<cfinvoke component="#IandI#"
method="calcRate"
Cases="#TotalCorpAudits#"
Hours="#TotalAudits#"
iiFactor="1"
convertToPercent="true"
NumberFormatOn="true"
returnOnZeroHours="0"
returnOnNonNumericData="0"
returnvariable="TotalCorpRatioAudits"
>
在...案例=“#TotalCorpAudits#”
时出错CFC代码:
<cffunction name="calcRate" access="public" returntype="string"
displayname="calcs Rate" hint="" description="">
<cfargument name="Hours" required="Yes" type="string">
<cfargument name="Cases" required="Yes" type="string">
<cfargument name="IIFactor" required="No" type="numeric" default="200000">
<cfargument name="FormatMask" required="No" type="string" default="999.99">
<cfargument name="NumberFormatOn" required="No" type="boolean" default="false">
<cfargument name="returnOnZeroHours" required="No" type="string" default="0">
<cfargument name="returnOnNonNumericData" required="No" type="string" default="N/A">
<cfargument name="returnOnZeroCasesWithHours" required="No" type="string" default="0">
<cfargument name="convertToPercent" required="No" type="boolean" default="false">
答案 0 :(得分:1)
CFINVOKE的工作原理如下:
<cfinvoke component="[CFC_FileName]" method="calcRate" returnvariable="TotalCorpRatioAudits">
<cfinvokeargument name="Hours" value="[whateverValueYouWant]">
<cfinvokeargument name="Cases" value="[whateverValueYouWant]">
</cfinvoke>
请注意以下几点:<cfinvokeargument>
位于<cfinvoke>
标记下方。此外,我只使用了这两个参数,因为它们在CFC中是必需的,但如果需要,您可以添加更多参数。使用https://wikidocs.adobe.com/wiki/display/coldfusionen/cfinvoke作为参考。
答案 1 :(得分:0)
是来自变量的组件的名称?印度是变数吗?如果不是你不必用#符号包裹它。这就是我认为导致问题的原因。
答案 2 :(得分:0)
我最近遇到过几次这种情况;它绝对看起来像是 ColdFusion 引擎中的一个错误。似乎编译器正在尝试从 CFC 内部而不是调用页面评估变量。 我已经能够通过预先定义我的参数结构来解决它,然后简单地将结构包含在 invoke() 中。
simplequery