/
RPC エンティティ

RPC エンティティ

概要

RPC エンティティとは、メインフレームおよび AS400 RPC プログラム、SOAP サービス、ストアドプロシージャなどのモデルとして使用されるプレーン Java オブジェクトです。

構造

RPC エンティティは 、RPC フィールドRPC パートおよび包含する RPC エンティティの 3 つの主要なパートで構成されます。

RPC フィールド - @RpcField に注釈が付けられた普通の Java フィールド。バックエンドプログラムのフィールドを表わす必要があります。

RPC フィールドは、バックエンドのプログラム構造オブジェクトを表わす RPC パートで体系化できます。RPC パートは、@RpcPart に注釈が付けられた Java クラス または 静的ネストクラス です。



右の コードスニペットは基本的な RPC エンティティ構造の例です。RPC フィールドRPC パート(必須ではない)に包含され、次に RPC エンティティに別の RPC フィールドとともに包含されます。ネストパートの階層は、特定数のレイヤまたは Java 静的ネストクラスに制限されません。RPC パートも別のクラスとして定義できます。OpenLegacy の専門用語によると、この種類のクラスは外部 RPC パートと呼ばれます。RPC フィールドは、レガシータイプの慣行に従い、任意のJava タイプにできます。

内包 RPC エンティティは、SDK プロジェクトが実行する必要がある単一バックエンドプログラム(入力、出力およびメタデータ)を表わします。

 

RPC エンティティの定義および動作は、@RpcActions@Actions@RpcNavigationなどのさまざまなプロパティで定義できます。



Rpc エンティティ

@RpcEntity(name="Books", language=Languages.COBOL) @RpcActions(actions = {         @Action(action = EXECUTE.class, path = "BOOKS")}) public class Items {       @RpcField(originalName = "BOOK")     private Book bookPart;           @RpcPart(name = "InnerRecord", originalName = "INNER-RECORD", displayName = "INNERRECORD")     public static class Book {           @RpcField(length = 16, originalName = "TITLE" legacyType = "Char")         private String title;               @RpcField(length=20, originalName ="AUTHOR", legacyType = "Char")         private String author;           @RpcNumericField(minimumValue = -9999, maximumValue = 9999, decimalPlaces = 0)            @RpcField(length = 2, originalName = "ISBN", legacyType = "Binary Integer")         private Integer isbn;           @RpcField(length = 28, originalName = "DESCRIPTION", legacyType = "Char")         private String description;       } }

RPC プロパティ



@RpcEntity@RpcField および @RpcPart などのプロパティは構造プロパティで、OpenLegacy コネクタによる Java コードのパートの取扱方法の定義に使用されます。Java クラスが、以下の   @RpcEntity@RpcPart@RpcEntitySuperClass および @RpcPartSuperClasss のいずれかで注釈が付けられている場合は、次の追加ロジックが Java クラスのコンパイル中に適用されます。

  • クラスの各フィールドの getters および setters の生成

  • List<RpcActionDefinition> アクション フィールドおよびその getter/setter の生成

  • 補助注釈の生成 (@JsonIgnore@XmlAccessorType@XmlTransient)Json および Xml にシリアル化する際の

  • 非表示アクションおよびその他の関連性のないフィールド

 



ランタイムにおける RpcEntity の動作は、以下のプロパティを使用してコントロールできます。

  • @RpcActionsおよび @Action

  • @Hidden を除く、RPC フィールドのプロパティ

  • 方向列挙

 





以下の表は、RPC プロパティ(注釈)と OpenLegacy RPC モデルクラス間の関係を示しています。


 

RPC エンティティプロパティ

RPC フィールドプロパティ

RPC パートプロパティ

@RpcEntity

@RpcField

@RpcPart

@RpcEntitySuperClass

@RpcBooleanField

@RpcPartSuperClass

@RpcNavigation

@RpcDateField

 

@RpcActions

@RpcNumericField

 

@Action

@RpcList

 

言語 - 列挙

@RpcDynamicField

 

 

@Hidden

 

 

方向列挙

 



アクション

アクションはエンティティ上に @RpcActions 注釈付きで指定され、現在のエンティティで実行できるすべてのアクションが含まれます。 

@RpcActionsには、アクションを指定する @Actions のアレイが含まれます。@Actions 注釈はいくつかの属性で構成されます。

  • action 属性は必須で、どのアクションを実行( READ、EXECUTE、UPDATE、DELETE、GET、POST)するかを宣言します。

  • path 属性は、レガシーシステムの実行可能プログラムへのパスを定義します。このプロパティを定義して、正しいプログラム/プロシージャ/REST API をトリガーする必要があります。

  • alias 属性は、指定した別名でアクションを使用する別のオプションです。

  • displayName 属性はデモ専用です。

  • olCache および olCacheEvict 属性は、特定のアクションのキャッシュ構成を定義できます。キャッシング OpenLegacy エンティティについて参照

    RpcActions

    @RpcEntity(name="Items", language=Languages.COBOL) @RpcActions(actions = {                 @Action(action = SHOW.class, path = ""),                 @Action(action = EXECUTE.class, path = "ITEMS", displayName = "Execute", alias = "execute"                         )            }) public class Items { ... }

RPC フィールドプロパティ

Rpc Entity の各フィールドは @RpcField で注釈する必要があります。 

@RpcField 注釈には、現在のフィールドの定義をカスタマイズできる複数の属性があります。以下は、この注釈で使用される主な属性の一部です。

  • length 属性は、バッファでこのフィールドが占めるバイト数を定義します。 

  • originalName 属性は、バックエンドシステムのフィールド名を説明します。

  • legacyType 属性は、バックエンドプラットフォームのフィールドのタイプを宣言します。注: この属性の使用はプラットフォームにより異なります。使用前に、この属性がお使いのプラットフォームに関連しているかどうかを確認してください。

  • order 属性は、エンティティのシリアライズ中に読まれるフィールドのデフォルト順序を変更する場合に使用します。

  • direction 属性は、フィールドを入力、出力、Input_Output またはエラーとして定義する場合に使用します。direction 属性は、以下の方向を定義する方向列挙のオブジェクトです。入力、出力、INPUT_OUTPUT、エラーおよび なし。デフォルト方向は INPUT_OUTPUT です。



@RpcBooleanField@RpcNumericField@RpcList などは、@RpcField 注釈と一緒に使用できます。

@RpcBooleanField は、ブール値フィールドの定義、真/偽値を設定してバックエンド値プラットフォームと一致させる場合に使用します。

@RpcDateField は、日時形式の定義およびバックエンドプラットフォームのロケールに使用します。

@RpcNumericField を使用すると、最小および最大値、小数位および表示パターンを定義できます。

@FieldAttribute 注釈は、フィールドに関する追加メタデータの提供に使用します。

@RpcList を使用すると、バックエンドプラットフォームのリスト構造を表すフィールドを定義できます。count 属性はリストの長さを定義します。カウントが 0 の場合は、リストは変数長の動的リストとみなされます。

追加

  • @RpcNavigation 注釈は、 category 属性があるカテゴリ名を定義します。このカテゴリは Web ソリューションのエンティティ表示に使用されます。

  • @Hidden は、ビュー内の注釈付きフィールドを非表示にする場合に使用されます。