CFINVOKE  
説明

次のいずれかを行います。

  • ColdFusion ページまたは ColdFusion コンポーネント内からコンポーネントメソッドを呼び出します。
  • Web サービスを呼び出します。

このタグは、次のような処理を行います。

  • 一時的にコンポーネントまたは Web サービスのインスタンスを作成し、そのメソッドを呼び出します。
  • インスタンス化されているコンポーネントまたは Web サービスのメソッドを呼び出します。

このタグでは、次の方法でメソッドにパラメータを渡すことができます。

  • cfinvokeargument タグを使用します。
  • 1 つのパラメータにつき 1 つの属性を、名前付き属性と値のペアとして渡します。
  • argumentCollection 属性で構造体として渡します。
 
カテゴリ

拡張タグ

 
シンタックス

シンタックス 1

<!--- このシンタックスは、コンポーネントのメソッドを呼び出します。 --->
<cfinvoke
   component = "component name or reference"
   method = "method name"
   returnVariable = "variable name"
   argumentCollection = "argument collection"
   ...>
OR

シンタックス 2

<!--- このシンタックスは、コンポーネントのメソッドをそのコンポーネント内からのみ
呼び出す場合に使用します。 --->
<cfinvoke
   method = "method name"
   returnVariable = "variable name"
   argumentCollection = "argument collection"
   ...
>
OR

シンタックス 3

<!--- このシンタックスは、Web サービスを呼び出します。 --->
<cfinvoke
   webservice = "URLtoWSDL_location"
   method = "operation_name"
   username = user name"
   password = "password"
   timeout = "request timeout in seconds"
   proxyServer = "WSDL proxy server URL
   proxyPort = "port on proxy server"
   proxyUser = "user id for proxy server"
   proxyPassword = "password for proxy server"
   servicePort = "WSDL port name"
   inputParam1 = "value1"
   inputParam2 = "value2"
   ...
   returnVariable = "var_name"    
   ...>
OR

シンタックス 4A

<!--- このシンタックスは、コンポーネントを呼び出します。
このシンタックスでは、cfobject タグを使ったインスタンス化を示します。 
この cfinvoke のシンタックスは、cfobject タグでコンポーネントをインスタンス化する場合、および 
CreateObject 関数でコンポーネントをインスタンス化する場合に適用されます。 --->
<cfobject 
   component = "component name"
   name = "mystringname for instantiated object">
<cfinvoke
   <!--- シャープ記号で囲んだオブジェクト名に注目 --->
   component = "#mystringname for instantiated component#"
   method = "method name"
   returnVariable = "variable name"
   argumentCollection = "argument collection"
   ...
>
OR
シンタックス 4B
<!--- このシンタックスは、Web サービスを呼び出します。
このシンタックスでは、cfobject タグを使ったインスタンス化を示します。 
この cfinvoke のシンタックスは、cfobject タグで Web サービスをインスタンス化する場合、および 
CreateObject 関数で Web サービスをインスタンス化する場合に適用されます。 --->
<cfobject 
   webservice = "web service name"
   name = "mystringname for instantiated object"
   method = "operation_name">
<cfinvoke
   <!--- シャープ記号で囲んだオブジェクト名に注目 --->
   webservice = "#my stringname for instantiated web service#" 
   timeout = "request timeout in seconds"
   proxyServer = "WSDL proxy server url
   proxyPort = "numeric port on proxy server"
   proxyUser = "string user id for proxy server"
   servicePort = "WSDL port name"
   proxyPassword = "string user password for proxy server"
>
 
関連項目

cfargument、cfcomponent、cffunction、cfinvokeargument、cfobject、cfproperty、cfreturn

 
ヒストリ

ColdFusion MX 7: servicePort 属性が追加されました。

ColdFusion MX 6.1: timeout、proxyServer、proxyPort、proxyUser、および proxyPassword の各属性が追加されました。

ColdFusion MX: このタグが追加されました。

メモ: プロキシ属性を指定せず、対応するシステムプロパティが設定された場合 (通常は JVM スタートアップ引数)、そのシステムプロパティ値が使用されます。
 
使用方法

どのシンタックスでどの属性が使用できるかを次の表にまとめます。

各属性の指定要件 (必須、オプション、無視、または無効) : cfinvoke タグのシンタックス :
シンタックス 1 シンタックス 2 シンタックス 3 シンタックス 4A シンタックス 4B

component

必須

オプション

無効

必須

無効

method

必須

必須

必須

必須

必須

returnVariable

オプション

オプション

オプション

オプション

オプション

argumentCollection

オプション

オプション

オプション

オプション

オプション

username

無視

無視

オプション

無視

オプション

password

無視

無視

オプション

無視

オプション

webservice

無視

無視

必須

無視

必須

timeout

無効

無効

オプション

無効

オプション

proxyServer

無効

無効

オプション

無効

オプション

proxyPort

無効

無効

オプション

無効

オプション

proxyUser

無効

無効

オプション

無効

オプション

proxyPassword

無効

無効

オプション

無効

オプション

servicePort

無効

無効

オプション

無効

オプション

input_params ...

オプション

オプション

オプション

オプション

オプション

component 属性でコンポーネント名を指定した場合は、対応する名前を持つコンポーネントのインスタンスが作成され、リクエストされたメソッドが呼び出されます。その後すぐ、そのコンポーネントのインスタンスは廃棄されます。インスタンス化されているコンポーネントオブジェクトへのリファレンスをこの属性に指定した場合は、コンポーネントのインスタンス作成や廃棄は行われません。

UNIX システムでは、まず指定のコンポーネント名と同じ名前 (ただしすべて小文字) のファイルが検索されます。該当するファイルがない場合は、大文字と小文字もまったく同じ名前のファイルが検索されます。

メソッド引数は次のどの方法でも渡すことができます。同じ名前の引数が複数の方法で渡された場合は、次に示すとおりの優先順序が適用されます。

  1. cfinvokeargument タグを使用します。
  2. cfinvoke タグの属性として直接渡します。このとき、cfinvoke タグの登録済み属性と同じ名前 (method、component、webservice、returnVariable) を使用することはできません。
  3. argumentCollection 属性を使用して、構造体キーとして渡します。

たとえば、params 構造体に a=1、b=1、c=1 という 3 つのキーが含まれているとします。次の呼び出しは、引数が a=3、b=2、c=1 という順序でメソッドに渡された場合と同様に評価されます。

<cfinvoke ... a=2 b=2 argumentCollection=params>
      <cfinvokeargument name="a" value="3">
   </cfinvoke>
メモ: cfinvoke タグでは、次の属性名は予約されています。これらの名前は、引数名としては使用できません。component、method、argumentCollection、および result。
 

この例では、シンタックス 1 を使用しています。

<!--- すぐにインスタンスを作成して廃棄します。 --->
<cfinvoke
   component="nasdaq.quote"
   method="getLastTradePrice"
   returnVariable="res">
   <cfinvokeargument
      name="symbol"
      value="macr">
</cfinvoke>
<cfoutput>#res#</cfoutput>
 

この例では、シンタックス 1 を使用しています。

<!--- argumentCollection を使用して引数を渡します。 --->
<cfset args = StructNew()>
<cfset args.symbol = "macr">
<cfinvoke
   component="nasdaq.quote"
   method="getLastTradePrice"
   argumentCollection="#args#"
   returnVariable="res">
<cfoutput>#res#</cfoutput>
 

この例では、シンタックス 2 を使用しています。

<!--- MyComponent コンポーネント内からのみ呼び出しを行います。--->
<cfinvoke
   method = "a method name of MyComponent"
   returnVariable = "variable name">
 

この例では、シンタックス 3 を使用しています。

<!--- cfinvoke で ColdFusion コンポーネントを使用して Web サービスを利用します。--->
<cfinvoke
  webservice="http://www.xmethods.net/sd/2001/TemperatureService.wsdl"
  method="getTemp"
  returnvariable="aTemp">
    <cfinvokeargument name="zipcode" value="55987"/>
</cfinvoke>
<cfoutput>The temperature at zip code 55987 is #aTemp#</cfoutput>

Web サービスの詳細については、『ColdFusion MX 開発ガイド』の第36章の「Web サービスの使用」 を参照してください。

 

この例では、シンタックス 4A を使用しています。

<!--- インスタンス作成とメソッド呼び出しを別々に行います。
   さまざまなメソッドや値を使用して何度も呼び出しを行う場合に便利です。 --->
<cfobject
   name="quoteService"
   component="nasdaq.quote">
<cfinvoke
   component="#quoteService#"
   method="getLastTradePrice"
   symbol="macr"
   returnVariable="res_macr">
<cfoutput>#res#</cfoutput>
<cfinvoke
   component="#quoteService#"
   method="getLastTradePrice"
   symbol="mot"
   returnVariable="res_mot">
<cfoutput>#res#</cfoutput>
COMPONENT  
  「使用方法」を参照
 

文字列またはコンポーネントオブジェクトです。コンポーネントのリファレンス、またはインスタンス化するコンポーネントを指定します。

METHOD  
  「使用方法」を参照
 

メソッドの名前です。Web サービスの場合は、オペレーションの名前です。

RETURNVARIABLE  
  オプション
 

呼び出しの結果を表す変数の名前です。

ARGUMENTCOLLECTION  
  オプション
 

構造体の名前です。メソッドに渡す引数の連想配列です。

USERNAME  
  オプション
 

[Administrator] - [Web サービス] で指定されたユーザー名を上書きします。

PASSWORD  
  オプション
 

[Administrator] - [Web サービス] で指定されたパスワードを上書きします。

WEBSERVICE  
  必須
 

Web サービスを提供する WSDL ファイルの URL です。

TIMEOUT  
  オプション
 

Web サービスリクエストのタイムアウトです (単位 : 秒)。

PROXYSERVER  
  オプション
 
Default value: "存在する場合には、http.proxyHost システムプロパティ"

webservice の URL にアクセスするために必要なプロキシサーバーです。

PROXYPORT  
  オプション
 
Default value: "存在する場合には、http.proxyPort システムプロパティ"

プロキシサーバー上で使用するポートです。

PROXYUSER  
  オプション
 
Default value: "存在する場合には、http.proxyUser システムプロパティ"

プロキシサーバーに送信するユーザー ID です。

PROXYPASSWORD  
  オプション
 
Default value: "存在する場合には、http.proxyPassword システムプロパティ"

プロキシサーバー上で使用するユーザーのパスワードです。

SERVICEPORT  
  オプション
 
Default value: "WSDL の最初に検出されたポート"

Web サービスのポート名です。この値は、service 要素内の port 要素の name 属性に対応します。大文字と小文字が区別されます。

 

Web サービスに複数のポートが含まれている場合、この属性を指定します。

INPUT_PARAMS ...  
   
 

入力パラメータです。名前付き入力パラメータごとに paramName=paramValue を指定します。