.NETアセンブリからアクションをインポートする
[Import Actions from .NET Assembly]ウィザードを使用すると、.NETアセンブリからアクションの定義をインポートできます。.NETアセンブリにイントロスペクションを使用することで、このウィザードは.NETメソッドのシグネチャに従い指定したアクションを作成します。
.NETアセンブリからアクションをインポートするには、以下の手順を実行します。
- [Extension]ツリーのActionsフォルダを右クリックするか、[File]メニューの[Import]オプションを選択します。
- [
Import Actions from .NET Assembly]オプションを選択します。
すると、Integration Studioがインポート処理を完了するために必要な一連の手順を案内するウィザードを表示します。
- 手順1
- [Import Actions from .NET Assembly]ウィザードへようこそ。
- 手順2
-
この手順では、アクションのインポート元となる.NETアセンブリを選択します。
アセンブリがエクステンションのリソースとして以前に追加されている場合、[Available Assemblies to Import]ボックスからアセンブリを選択できます。ファイル名を入力するか、[Browse]ボタンを押して.NETアセンブリを指定することもできます。
この.NETアセンブリにエクステンションのリソースではない依存関係があり、自動的に解決されない場合は、Integration Studioが[Missing Assembly Reference]ウィンドウを起動します。このウィンドウで、欠けているアセンブリの位置を指定する必要があります。
- 手順3
-
この手順は、前の手順で選択した.NETアセンブリに定義されているすべての
クラスとそのメンバーを表示します。各クラスは、完全な名前空間によって識別されます。各クラスフォルダに存在する可能性がある.NETメンバータイプは、以下のとおりです。
- Constructor: アイコンは
です。各コンストラクタは名前とシグネチャによって識別されます。
- Methods: アイコンは
です。各メソッドは名前とシグネチャによって識別されます。
- Properties: アイコンは
です。各プロパティは名前によって識別されます。
- Public Fields: アイコンは
です。各パブリックフィールドは名前によって識別されます。
インポートするツリーノードを確認します。ノードの中に子ノードがある場合、すべての子ノードは自動的に確認されます。
プラットフォームで生成されたコードに追加でnullチェックを含めるために、[Add null checks to imported items]オプションを有効にするという選択肢もあります。
- Constructor: アイコンは
- 手順4
-
この手順では、以下に説明されているように、選択に従ってエクステンションに追加するアクションとリソースの完全なリストを入手します。
-
アクション: 前の手順で選択したメンバーのタイプに基づいて、アクションが作成されています。
-
リソース: 手順2で指定した.NETアセンブリとそのすべての再帰リファレンスがまだ追加されていない場合、これらがエクステンションのリソースとして
DotNetAction.icoとともに追加されます。
この手順では、[View Report]ボタンによって、どのようにしてアクションがエクステンション内に作成されるかを分析できます。このボタンで、作成されたアクションのレポートを表示し、必要に応じて今後の分析のために保存できます。
-
インポートされたアクションにnullチェックを追加する
OutSystemsは厳密に型指定された言語を使用しており、エクステンションによって渡された値の一部についてはサポートや認識をしません。nullリファレンスはこうした値の1つであり、OutSystems言語では表示できません(これらのnullリファレンスは、OutSystemsでは-undefined-
として表示されます)。
通常、OutSystemsプラットフォームにnullリファレンスを渡さないようにするのは、エクステンションの開発者の責任です。ただし、[Add null checks to imported items]オプションを有効にすると、.NETアセンブリからインポートされたアクションのためにプラットフォームで生成されたコードに、正確な動作を実現するための追加確認が含まれます。
このオプションをオンにしている状態でエクステンションアクションを.NETアセンブリからインポートした場合、エクステンションによってプラットフォームに渡されたすべてのnull値は、データ型に従い次のデフォルト値に変換されます:
Data Type | Default value |
---|---|
Text | "" |
Integer | 0 |
Long Integer | 0 |
Decimal | 0 |
Boolean | False |
Date Time | #1900-01-01# |
Date | #1900-01-01# |
Time | #1900-01-01# |
Phone Number | "" |
"" |
|
Binary Data | new byte[0] |
Object | new <object> |
Currency | 0 |
Record | new <record> |
Record List | new <recordlist> |
Integer Identifier | 0 |
Text Identifier | "" |
Long Integer Identifier | 0 |
レポートのコンテンツ
ウィザードによって作成されたアクションごとに、レポートは以下の情報を表示します。
-
Action: 以下の構文を持つアクション名。
Action <action_name>
-
Target: モジュールでこのアクションを呼び出した場合に、アセンブリのどのC# メンバーが呼び出されるかを示します。構文は以下のとおりです。
<member_type> <member_name> ( <input_arguments> ): <output_arguments>
メンバーのタイプは以下のようになります。コンストラクタ、メソッド、プロパティ、またはフィールド。
-
Declaring Type: メンバーが定義されたクラスのフルネーム。
-
Parameters: ウィザードで作成されたアクションの入出力パラメータ。構文は以下のとおりです。
<parameter_name> ( <OutSystems_data_type> <- <.NET_data_type> ): <additional_information>
ウィザードによって作成されたリソースごとに、レポートは以下の情報を表示します。
-
Resource: 以下の構文を持つリソース名。
Resource <resource_name>: <additional_information>