2016-06-24 7 views
2

になければならないため、データIは次のようにメソッドを呼び出すようにしようとしている:「CFCを起動することができません - 文字数は100文字以内の長さ

<cfinvoke component="#variables.target#" 
     method="#arguments.methodName#" 
     argumentcollection="#arguments.args#" 
     returnvariable="rtn"> 
</cfinvoke> 

しかし、私は次のエラーを取得しています:

Unable to invoke CFC - The data for 'param_value' must be no more than 100 characters in length.' faultDetail:''

変数arguments.argsは構造体であり、その要素の1つは、次のようになります

{ 
    param_name: 'property_uid', 
    param_value : '00000000-0000-0000-0000-0000000213131200,00002131300-0000-0000-0000-000000000000,00000000-0000-0000-0000-0000000002122,00000000-0000-0000-0000-000000032242 
} 

私はこの問題を知っていますこの要素によって引き起こされますが、それを修正する方法はわかりません。 CF管理者は、最大POST要求パラメータ数を100から300に更新しています。

+0

動的引数リストを使用して動的に決定されたコンポーネントの動的に決定されたメソッドを呼び出すことは、私のコード臭です。あなたは何を造っていますか?動的メソッド呼び出し関数?それはあなたが大胆ではありますか? – Tomalak

+0

あなたの質問のどの部分が[tag:actionscript-3]と関係していますか? – Twillen

+0

実際、ActionScriptからパラメータを送信しようとしています。とにかく解決策が見つかりました。巨大な昏睡で区切られた文字列で1つではなく複数のパラメータを送信しました... – user1856538

答えて

0

変数property_uidは現在リストであり、リストの値は長すぎて構造キーの値として渡せません。データを配列として送信するには、listToArray()を使用します。関数内で、データをリストとして再度必要とする場合は、arrayToList()を使用してそれを戻します。

+0

なぜリスト項目に制限がありますか?コンポーネントに渡すことができる引数の制限の参照はありますか?参照が役立つでしょう。 – Anurag

+0

引数の文字列の長さがどうして問題になるのですか?実際にはそうではありません。質問のコードをテストしただけです。 – Alex

+0

実際には、リストや配列ではなく、文字列をparam_valueに渡します。私はいくつかの制限がどこかに追加されるべきだと思う。 – user1856538

0

呼び出された関数のコードを確認してください(関数名はvariables.targetの変数arguments.methodNameにあります)。

タグ<cfparam name="param_value" ...>を探して、maxlength属性が定義されているかどうかを確認します。おそらく100に設定されているため、上記のパラメータに100文字以上を渡すと、ColdFusionで例外がスローされます。

100文字の制限は、おそらくあなたの側(データベーススキーム?)のデザインの決定であるため、これを自分で把握する必要があります。