Web メソッドから返すコレクションの作成
状況によっては、Web メソッドからコレクションを返す必要が生じることがあります。Caché コレクションを使用してこれを行うことができます。
-
リテラルのリストと配列には、%ListOfDataTypesOpens in a new tab、%ArrayOfDataTypesOpens in a new tab を使用します。
-
オブジェクトのリストと配列には、%ListOfObjectsOpens in a new tab、%ArrayOfObjectsOpens in a new tab を使用します。
ただし、コレクションに格納されている要素のタイプを指定する必要があります。これには、以下の 2 種類の方法があります。
-
Caché コレクション・タイプを拡張して新しいコレクション・タイプを作成します。ELEMENTTYPE パラメータの値を適切なタイプに設定することにより、コレクションに格納される要素のタイプを指定します。この方法は、リストと配列の両方に適用できます。配列には、常にこの方法を使用します。
-
コレクション・タイプに対して ELEMENTTYPE パラメータの値を設定します。例えば、SOAPTutorial.Contact のインスタンスを含む %ListOfObjectsOpens in a new tab コレクションを返す WebMethod のシグニチャがあります。この方法は、リストにのみ適用されます。
Method GetContacts() As %ListOfObjects(ELEMENTTYPE="SOAPTutorial.Contact") [WebMethod]
以下の例は、最初の方法を示しています。
スタジオの新規クラス・ウィザードを使用して ContactList という名前のコレクション・タイプを作成し、そのコレクション・タイプを使用して SOAPService から Contact インスタンスのコレクションを返す手順を以下に示します。
-
[ファイル]→[新規作成] をクリックします。
-
[一般] カテゴリ、[Cache クラス定義] アイコンの順にクリックします。
-
新しいクラスが SOAPTutorial パッケージの一部であり、その名前が ContactList であることを指定します。[次へ] をクリックします。
-
[クラス・タイプ] 画面で [Extends] をクリックします。[参照] ボタンをクリックし、%Library.ListOfObjectsOpens in a new tab をクリックします。
-
[完了] をクリックします。
-
クラス・エディタで、値 “SOAPTutorial.Contact” を ELEMENTTYPE パラメータに割り当てます。これによって、ContactList のインスタンスに Contact オブジェクトのコレクションが含まれていることが指定されます。
Class SOAPTutorial.ContactList Extends %Library.ListOfObjects { Parameter ELEMENTTYPE = "SOAPTutorial.Contact"; }
-
[ビルド]→[コンパイル] をクリックして、新しいクラスをコンパイルします。