2017-04-12 12 views
3

私は、セッション変数にprecisionEvaluate()を使用するコードを持っているが、私は、関数を呼び出すときに、このエラーがあります:要素は、型クラスのcoldfusion.runtime.J2eeSessionScopeのJavaオブジェクトに定義されていない

要素emp_nextid_ANE_801は、タイプクラス coldfusion.runtime.J2eeSessionScopeのJavaオブジェクトでは未定義です。

このコードでは、このセッション変数をstructKeyExists()でチェックする条件がありますが、それでもエラーが表示されます。誰もそれがまだ間違いを知っていますか?ここ

は、コードの一部されている:。

if(structKeyExists(session,'emp_nextid_#app().getCurrentAgentID()#_#officeID#') 
    AND val(session['emp_nextid_#app().getCurrentAgentID()#_#officeID#']) GT 0) { 

    var nextID = precisionEvaluate(session['emp_nextid_#app().getCurrentAgentID()#_#officeID#']); 
    var qData = new Query(); 
    var sql = "SELECT 1 FROM Employee 
       WHERE pers_id = :nextid"; 
    qData.addParam(name="nextid", value=nextID, cfsqltype="CF_SQL_BIGINT"); 
    var result = qData.execute(sql=sql).getResult(); 
} 
+3

セッションダンプのスクリーンショットを提供できますか? – cfprabhu

+0

<のcffunction名= "のgetId" アクセス= "パブリック"> <名前のcffunction = "getOfficeID" アクセス= "パブリック"> これを実行しますか? – cfprabhu

+1

(編集)はい、A)動的変数名が実際に正しいことを確認するために、セッションスコープ(および 'emp_nextid_#app()。getCurrentAgentID()#_#officeID#'の値をダンプすることから始めます)B)変数その名前は本当に存在します。動的参照が与えられていると、参照が何らかの理由でオフ/誤っている可能性があります。 – Leigh

答えて

1

呼び出し、アプリ()getCurrentAgentID()は、動的に変化された値を生成するかもしれません。いずれにしても、コードスニペットを次のように改善することができます:

var key = 'emp_nextid_' & app().getCurrentAgentID() & '_' & officeID; 
if(structKeyExists(session,key) AND val(session[key]) GT 0) { 

    var nextID = precisionEvaluate(session[key]); 
    ... 
    etc. 
} 
+0

答えをありがとう..今私はこのコードを使用しようとし、これまでのところ良いです.. :) –