StudioではWebサービスクライアントの定義をインポートできます。OutSystemsでは、これを「Web参照」と呼びます。Studioで使用することができます。Webサービスを利用する」をご覧ください。この機能は.NETスタックでのみ利用可能です。Studioを使用して.NETアセンブリプロキシを作成するはじめにWSDLアドレスを取得します。Studioプロジェクトを作成できるようになります。Libraryプロジェクトを選択し、.NETフレームワーク3.5以降に設定します。Reference...]を選択します。Reference...]ボタンをクリックします。次に、WebサービスのWSDLアドレスをURLフィールドに入力します。Reference]ボタンを押します。次に、F6を押すか、プロジェクトを右クリックして[Build]を選択し、プロジェクトを作成します。Studioで生成できるのは一度に1つのプロキシのみであるため、同じストラクチャ(同一のデータ型)を使用する複数のサービスをインポートする必要がある場合は、「Employee1」、「Employee2」、「Employee3」のように同じストラクチャに複数の表現が存在することになります。SDKで入手可能なDisco.exeやWsdl.exeツールを使用すると、この問題を解決できます。Promptを起動します。<first_wsdl_path>を実行してresults.discomapファイルを生成します。ファイル名を「wsdl1.discomap」に変更します。エンドポイントが同一のWebサービスが2つある場合、生成されたファイルを別々のフォルダに保存する必要があります。しない場合、最初のWebサービス用に生成されたファイルは次の手順で削除されます。<second_wsdl_path>を実行します。生成されたファイル名をwsdl2.discomapに再度変更します。プロキシを生成します。proxy.csを実行し、プロキシをDLLにコンパイルします。コンパイラを使用します。Only)]を選択して先ほど作成したDLLをインポートします。詳細については、「.NETアセンブリからアクションをインポートする」をご覧ください。StudioはDLLをイントロスペクションし、インポートするWebサービスメソッドを選択するよう求めます。最後に、インポートするメソッドを選択します。Studioアクションとストラクチャを生成します。これで他の拡張機能内と同様に、どのようなカスタムロジックでも開発できます。Webサービスを利用するインポートを行うと、複数のコンストラクタ(<Structure_Name>_New)が自動で作成されます。これらのコンストラクタを使用して、Webサービスを起動する際のストラクチャをインスタンス化します。Publish]ボタンを使用してサーバーに拡張機能をパブリッシュします。操作が終了すると、Webサービスをカプセル化した拡張機能を、参照によってすべてのモジュールで使用できるようになります。Web参照の定義が変更された場合、新しいWeb参照をカプセル化するための新しい拡張機能を作成し、すべてのモジュールがこの新しい拡張機能を参照するよう設定する必要があります。Studioでは直接サポートされていないものの、Webサービスのクライアント定義の.NETアセンブリをインポートすることによってサポートされる構成があります。データ型で継承を使用するWebサービス再帰データ型のWebサービス多次元配列のWebサービス生成されるストラクチャ例として、以下のクラスを検討します。Studioは基本クラスと同名の単一のストラクチャを作成します。Typeアトリビュートは、インスタンス化されたストラクチャがどのクラスを示しているかを指定します。継承チェーン内のすべてのクラスのフィールドがアトリビュートとしてLifeストラクチャに存在しており、フィールドの説明には所属クラスが示しています。ストラクチャを同一にして継承全体を表すより、提供されるコンストラクタを使用するほうが、希望するクラスを容易にインスタンス化できます。Studioは再帰を引き起こす要素をシリアル化します。上記の例では、AnimalクラスはLifeクラスを拡張するので再帰ですが、同時にLifeデータ型の[FavoriteFood]フィールドを含んでいます。この場合、[FavoriteFood]フィールドはこの再帰定義を回避するためにシリアル化されます。そのため、インポートされたAnimalクラスは、LifeからSerializedLifeに変更されたFavoriteFoodデータ型になります。Studioは各ストラクチャにコンストラクタアクションを提供しています。コンストラクタはパラメータとしてクラスのすべてのフィールドを受け取り、再帰を引き起こすフィールドを内部で変換してデータ型を修正します。このため、ボトムアップでのストラクチャ作成にはコンストラクタを使用し、作成プロセスでのシリアル化対処を回避する必要があります。例として、「ニワトリ」というオブジェクトをインスタンス化する場合、以下の手順を実行します。Vegetable_Newコンストラクタアクションを使用して、とうもろこし(ニワトリの好きな食べ物)のストラクチャのインスタンスを作成します。これはName、Size、Weight、HasFruitパラメータを受け取ります。コンストラクタ(Animal_New)を使用して、ニワトリのストラクチャをインスタンス化します。これはName、Size、Weight、Speed、FavoriteFoodパラメータを受け取ります。Animal_NewアクションのFavoriteFood引数として、Vegetable_Newの結果を渡します。ニワトリのオブジェクトの作成後にそのFavoriteFoodにアクセスする必要がある場合、SerializedLifeデータ型であるため、提供されているDeserializeアクションを使用します。Life_Deserializeを呼び出し、パラメータとしてニワトリのアトリビュートであるFavoriteFoodを渡します。このアクションはこれをSerializedLifeからLifeに変換するため、値を読み込むことができます。同様に、直接FavoriteFoodを指定してそのアトリビュートを変更する場合、以下の手順を実行します。Life_Deserializeアクションを使用して、FavoriteFoodをSerializedLifeからLifeデータ型に変換します。必要に応じて、FavoriteFoodを変更します。Life_Serializeアクションを使用して、FavoriteFoodをシリアル化します。アトリビュートにシリアル化されたバージョンを割り当てます。