[ Type ] プロパティが 'Native Object' に設定されている
外部オブジェクト (EO) は、定義された Java クラス、.NET アセンブリー、または JavaScript ソースへのアクセス方法に関するすべての情報 (名前、プロパティ、メソッド、パラメーター) を格納します。
これらは通常
ネイティブオブジェクトと呼ばれ、それぞれが外部リソースのクラスに正確に対応しています。
外部オブジェクトを作成し、その [ Type ] プロパティを 'Native Object' に設定し、外部リソースによって公開されるプロパティとメソッドを適切にマッピングすると、GeneXus コード内でこれらのメソッドとプロパティを管理することができます。
.NET ジェネレーターおよび
Java ジェネレーターで生成する際に、
外部オブジェクトの構造を定義するのに役立つ以下のウィザードを使用できます:
これらのウィザードにアクセスするには、GeneXus のメインメニューで
[ ツール ] > [ アプリケーションの統合 ] を選択します。
ネイティブオブジェクトで使用できるプロパティを以下に示します:
- [ Name ] : 外部オブジェクト名
- [ Description ] : 外部オブジェクトのデスクリプション
- [ Type ] : 外部オブジェクトのタイプ ('Native Object' に設定)
- [ Namespace ] : クラスの名前空間
- [ Module/Folder ] : 外部オブジェクトが配置されているフォルダ
- [ Object Visibility ] : 別のモジュール内にある他のオブジェクトからのアクセシビリティ
- [ .NET Information ] / [ .NET Framework Information ]
- [ .NET External Name ] / [ .NET Framework External Name ] : 外部クラス (.dll) の名前
- [ .NET Assembly Name ] / [ .NET Framework Assembly Name ] : 外部オブジェクトに関連付けられたアセンブリーの名前
- [ .NET Constructor Parameters ] / [ .NET Framework Constructor Parameters ] : アセンブリーコンストラクターに渡されるパラメーターのコンマ区切りのリスト。コンストラクターのパラメーターは常に定数です。
- [ .NET Package ID ] : 外部オブジェクトの一意の ID
- [ Java Information ]
- [ Java External Name ] : 外部クラス (.class) の名前
- [ External Package Name ] : 外部オブジェクトに関連付けられたクラスがあるパッケージの名前
- [ Java Constructor Parameters ] : 外部クラスコンストラクターに渡されるパラメーターのコンマ区切りのリスト。クラスコンストラクターのパラメーターは常に定数です。
ネイティブオブジェクトの中で定義された各タイプで使用できるプロパティを以下に示します。
Native オブジェクトの中で定義された各プロパティで使用できるプロパティを以下に示します。
- [ Property Type ] : 読み取り専用、読み書き、メンバー タイプ プロパティのいずれであるかを指定
- [ Internal Name ] : プロパティに与えられる内部名
- [ Description ] : デスクリプション
- [ Type ] : プロパティのデータタイプ
- [ Is Static ] : 静的かどうかを指定 (True、False)
- [ Control Type ] : 表示するコントロールのタイプ
- [ .NET Information ] / [ .NET Framework Information ]
- [ .NET External Name ] / [ .NET Framework External Name ] : .NET クラス内のプロパティの外部名
- [ .NET External Type ] / [ .NET Framework External Type ] : プロパティの外部データタイプ
- [ Java Information ]
- [ Java External Name ] : Java クラス内のプロパティの外部名
- [ Java External Type ] : プロパティの外部データタイプ
ネイティブオブジェクトの中で定義された各メソッドで使用できるプロパティを以下に示します。
- [ Internal Name ] : メソッドの内部名
- [ Description ] : メソッドのデスクリプション
- [ Type ] : 返される値のデータタイプ (値を返す場合)
- [ Based on ] : 他のデータタイプに基づくかどうかを決定
- [ XML Name ] : メソッドの表示名
- [ Is Static ] : 静的かどうかを指定 (True、False)
- [ External Member Type ] : 値は Default、Static、Instance のいずれか
- [ .NET Information ] / [ .NET Framework Information ]
- [ .NET External Name ] / [ .NET Framework External Name ] : .NET クラス内のメソッドの外部名
- [ .NET External Type ] / [ .NET Framework External Type ] : 返される値の外部データタイプ
- [ Java Information ]
- [ Java External Name ] : Java クラス内のメソッドの外部名
- [ Java External Type ] : 返される値の外部データタイプ
- [ Java Method Throws Exceptions ] : 外部クラスのメソッドが例外をスローするかどうかを指定。既定値は No です。
ネイティブオブジェクトの中で定義された各パラメーターで使用できるプロパティを以下に示します。
- [ Access Type ] : 入力のみのパラメーター、出力のみのパラメーター、または入出力パラメーターの区別
- [ Internal Name ] : パラメーターの内部名
- [ Description ] : パラメーターのデスクリプション
- [ Type ] : GeneXus におけるパラメーターのデータタイプ
- [ External Type ] : パラメーターの外部データタイプ
GeneXus では、イベントを必ず静的として定義する必要があります。
上に示すネイティブオブジェクト (名前は "Maths") があるとします。
次に、
Web Panel オブジェクトで、"Maths" 外部オブジェクトに基づく &Maths という変数を定義します。
また、以下に示すイベントを定義します:
Event enter
&res = &Maths.Sum(&parm1,&parm2) //&parm1 と &parm2 は Web パネルで定義された変数であり、値はエンドユーザーが入力
EndEvent
Sum メソッドは、値 &parm1 と &parm2 の合計を返します。
- .NET: アセンブリーにアクセスするために外部オブジェクトを使用する場合は、アセンブリーを作業環境の bin ディレクトリーにコピーする必要があります。アプリケーションをデプロイする場合に、このアセンブリーを本番運用に移行する必要があります。
- Java: Java クラスの場合は、外部クラスを格納する jar および zip がクラスパスに含まれている必要があります。
- JavaScript: JavaScript リソースは Web アプリケーションのほかの静的リソース内に配置されている必要があります。このリソースは、GeneXus コードで参照する必要があります。
- ベクトルおよび行列の値はサポートされていません。サポートされているのは
スカラー変数だけです。
- String [ ] や Date [ ] などの配列データタイプはサポートされていません。
- 列挙データタイプはサポートされていません。
- Initialized という名前または他の予約語の外部オブジェクトメソッドがある場合、それを別の名前で定義する必要がありますが、 [ External Name ] プロパティは保持されます。
[ Type ] ノードは、
GeneXus 18 Upgrade 10 以降でベータとして利用できます。
Android 用の外部オブジェクト
iOS デバイス用の外部オブジェクト
JavaScript 用の外部オブジェクト