実装の概要

DDEditor から FML を読み込んで、その FML からデータディクショナリを作成します。

DDEditor から FML が読み込まれるとき、次の API が呼び出されます。
public DataDictionary  getDataDictiomaryFromFML2(String dataDictionaryName, String fml, String topLevelElementName, String serviceName, String operationName)
この API は、次のパラメーターを取ります。
  1. 最上位のルート要素名:FML 内の複数のルートノードからルートノードを選択します。

  2. サービス名:FML で定義された複数のサービスから呼び出されたサービスを選択します。定義されているサービスが 1 つだけの場合、このパラメーターはオプションになります。

  3. 操作名:選択されたサービスで定義された複数の関数から呼び出された操作名を選択します。

この読み込みにより、リモートサービス(LiveCycle リモートエンドポイントおよび宛先)の詳細が取得され、データディクショナリに保存されます。この詳細情報はサービスレベル注釈にあり、リモートサービスへの接続に使用されます。リモートサービスで定義されている関数は複数ある可能性がありますが、データディクショナリサービスには、1 つの関数の詳細しか保存されません。そして、この操作を呼び出して、Java オブジェクトを取得します。「操作名」では、操作/関数の名前を判断します。この操作の入力パラメーターの詳細も、データディクショナリに保存されます。前述した API の「最上位のルート要素名」パラメーターは、(複数の最上位エンティティ内の)最上位エンティティで使用されます。ルートレベルのタグエンティティが 1 つしか含まれない場合は、この情報を渡す処理は必須ではありません。空白または null を選択することができます。

この API は、Data Dictionary 構築ブロックからの FML の読み込み、および Flash Builder から取得されれた FML の読み込みをサポートします。このシナリオに基づいて、次の 2 つが状況が考えられます。
  • Flash Builder から取得された FML が読み込まれる場合。デフォルトのバインドが、データディクショナリ要素に対して生成されます。

  • Data Dictionary 構築ブロックから書き出された FML が再度読み込まれる場合。DDE のバインド情報は、FML が書き出されるときに注釈として FML に保存されます。FML がシステムに再度読み込まれるときに、同じ情報が復元されます。

実行時フェーズで、Data Dictionary 構築ブロックは、データディクショナリに保存されたサービスの詳細を使用して、リモートサービスに接続します。
public DataDictionaryInstance getDDIFromRemotingService(String dataDictionaryId, Object[] remotingServiceOperationParams)
説明:
  • dataDictionaryId - データディクショナリインスタンスが取得されるデータディクショナリを識別します。

  • remotingServiceOperationParams - リモートサービスの操作に渡されるパラメーターです。