2010-12-07 11 views
1

私は、FlexのRemoteObjectメソッドを使用してColdFusion cfcメソッドを呼び出しています。私は、CFCメソッドを呼び出すとき フレックス:名前付きパラメータを渡すRemoteObject

<cffunction name="getCategoryList" access="remote" output="false" returntype="query"> 
    <cfargument name="parentCategory" type="string" required="false" /> 
    <cfargument name="orderby" type="string" required="false" /> 
    <!--- code... ---> 
    <cfreturn qCategoryList /> 
</cffunction> 

だからあなたは、私は、パラメータの順序を変更することがわかります。私のCFCは、次のようにパラメータを受け入れるよう

<fx:Declarations> 
    <s:RemoteObject destination="ColdFusion" source="cfc.categoryGateway" id="categoryGateway"> 
     <s:method name="getCategoryList" result="returnHandler(event)" 
        fault="mx.controls.Alert.show(event.fault.faultString)"> 
      <s:arguments> 
       <orderby>categoryId</orderby> 
       <parentCategory>1</parentCategory> 
      </s:arguments> 
     </s:method> 
    </s:RemoteObject> 
</fx:Declarations> 

。しかし、それは働かない。

<s:arguments>は、という名前のを渡さないことを意味します。 そのための解決策はありますか?私は、引数のいくつかを必須ではないので、名前で渡す必要があることがわかります。

+0

あなたは問題がフレックスであることを確認していますか?引数スコープをファイルにダンプして、Flexがcfcメソッドを呼び出すときに何が入っているのか確認しましたか? –

+0

はい、私はパラメータを交換するときに私はSQLクエリのようなエラーが表示されます:CFCを呼び出すことができません - CFSQLTYPE CF_SQL_INTEGERの無効なデータcategoryId。
'parentCategory'は実際には文字列パラメータではなく、SQLクエリで使用している整数パラメータです。
パラメータが同じ順序であれば、完全に動作します。 – Vikas

答えて

2

argumentsパラメータは配列なので、各要素の名前に関係なく、それは順番に使用されます。あなたは、代わりにこのような何かをやって試すことができます :

<s:RemoteObject destination="ColdFusion" source="cfc.categoryGateway" id="categoryGateway"> 
     <s:method name="getCategoryList" result="returnHandler(event)" 
        fault="mx.controls.Alert.show(event.fault.faultString)" /> 
    </s:RemoteObject> 

その後、呼び出し:

categoryGateway.getCategoryList({orderby:'categoryId', parentCategory:'1'}); 
関連する問題