ビジネス・ホストおよびアダプタの概要
ここでは、外部言語で記述されたすべてのビジネス・ホストとアダプタに適用される情報を提供します。
実行時変数の作成
PEX フレームワークでは、管理ポータルを使用してリモート・クラスの変数の実行時の値を指定できるので、1 つの PEX コンポーネントをさまざまなプロダクションで再利用できます。リモート・クラスで宣言された変数は、管理ポータルには対応するビジネス・ホストの設定として表示されます。例えば、ビジネス・サービスの Python クラスで Min = int(0) を宣言した場合、プロダクションのビジネス・サービスには [最小] の設定があります。実行時に、この変数は管理ポータルでの設定の値に設定されます。
管理ポータルに表示したくない変数をリモート・クラスで宣言する場合は、メタデータを追加してその変数を非表示にできます。
変数のメタデータ
変数に対して作成された管理ポータルの設定を制御するメタデータをリモート・クラスに追加できます。このメタデータの構文は、外部言語によって異なります。Java ではアノテーション、.NET では属性、Python では variableName_info という名前の特殊なメソッドをそれぞれ使用します。例えば、以下のコードは、設定 MyVariable が必須であることを指定し、その設定のヒントとして表示される説明を追加します。
@FieldMetadata(IsRequired=true,Description="Name of the company")
public String MyVariable;
[FieldMetadata(IsRequired=true,Description="Name of the company")]
public string MyVariable;
MyVariable = int(0)
@classmethod
def MyVariable_info(self) -> \
{
'Description': "Maximum value",
'IsRequired': True
}:
pass
この構文を使用して、管理ポータルの設定の動作を制御する以下の要素をメタデータに追加できます。
メタデータの要素 | 説明 |
---|---|
Description | 管理ポータルにヒントとして表示される、設定の説明。 |
Category | カテゴリ見出しで設定をグループ化します。例えば、Category="Basic" を Java クラスに追加すると、その設定は、設定の [基本] セクションにグループ化されます。 |
DataType | 変数のデータ型を上書きし、設定を新しいデータ型に関連付けます (例 : Ens.DataType.ConfigName)。 |
IsRequired | true の場合、設定の値を指定する必要があります。既定値は false です。 |
ExcludeFromSettings | true の場合、変数は管理ポータルに設定として表示されなくなります。既定値は false です。 |
PEX コンポーネントのメタデータ
リモート・クラスの個々の変数にメタデータを追加できるのと同様に、PEX コンポーネント全体に適用されるメタデータを追加できます。このメタデータを使用して、管理ポータルでコンポーネントに関する情報を提供します。この情報は、管理ポータルの [情報を提供する設定] の [Production EXtensions] ページおよび [プロダクション構成] ページに表示されます。
メタデータの要素 | 説明 |
---|---|
Description | PEX コンポーネントの説明。 |
Info URL | PEX コンポーネントに関連付けられている URL。例えば、コンポーネントの詳細を提供する Web ページ。 |
このクラス・メタデータを組み込むための構文は、外部言語によって異なります。Java ではアノテーション、.NET では属性を使用します。Python では、docstring と特殊変数を使用します。以下のコードは、これらのメタデータ要素を PEX コンポーネントのリモート・クラスに追加します。
@ClassMetadata(Description="Custom Java Business Service",InfoURL="http://www.mycompany.com")
public class MyBusinessService extends com.intersystems.enslib.pex.BusinessService {
[ClassMetadata(Description ="Custom .NET Business Service", InfoURL="www.mycompany.com")]
public class MyBusinessService : InterSystems.EnsLib.PEX.BusinessService
class MyBusinessService(iris.pex.BusinessService):
""" Custom Business Service in Python """
INFO_URL = "http://www.mycompany.com"