"变量TotalCorpAudits未定义"从cfc调用函数时

时间:2014-03-26 11:23:35

标签: coldfusion cfc cfinvoke

当我尝试从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"> 

3 个答案:

答案 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