簡體   English   中英

從 cfc 調用函數時“變量 TotalCorpAudits 未定義”

[英]“Variable TotalCorpAudits is undefined” when invoking a function from cfc

當我嘗試從 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"
>

在 ... Cases="#TotalCorpAudits#" 處出錯

氟氯化碳代碼:

<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"> 

CFINVOKE 的工作原理如下:

<cfinvoke component="[CFC_FileName]" method="calcRate" returnvariable="TotalCorpRatioAudits">
    <cfinvokeargument name="Hours" value="[whateverValueYouWant]">
    <cfinvokeargument name="Cases" value="[whateverValueYouWant]">
</cfinvoke>

請注意以下<cfinvokeargument><cfinvokeargument>位於<cfinvoke>標記下方。 另外,我只使用了這兩個參數,因為它們在 CFC 中是必需的,但是如果需要,您可以添加更多參數。 使用https://wikidocs.adobe.com/wiki/display/coldfusionen/cfinvoke作為參考。

組件的名稱是否來自變量? IandI 是變量嗎? 如果不是,則不必將其包裝在 # 符號中。 這就是我認為導致問題的原因。

我最近遇到過幾次; 它絕對看起來像是 ColdFusion 引擎中的一個錯誤。 似乎編譯器試圖從 CFC 內部而不是調用頁面評估變量。 我已經能夠通過預先定義我的參數結構來解決它,然后簡單地將結構包含在 invoke() 中。

<cfset argStruct = {argName1=val1,argName2=val2,argName3="hardcodedValue"}>
<cfinvoke component="cfcPath" method="methodName" argumentCollection="#argStruct#" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM