269.2.4. リポジトリーの設定
概要 リンクのコピーリンクがクリップボードにコピーされました!
リポジトリーの設定は、SAP コンポーネントの repositoryDataStore プロパティーで維持されます。このマップの各エントリーは、個別のリポジトリーを設定します。各エントリーのキーはリポジトリーの名前であり、このキーはこのリポジトリーが接続されるサーバー名にも対応します。
各エントリーの値は、メタデータリポジトリーの内容を定義するリポジトリーデータ設定オブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RepositoryDataImpl です。リポジトリーデータオブジェクトは、関数テンプレート設定オブジェクト org.fuesource.camel.component.sap.model.rfc.impl.FunctionTemplateImpl のマップです。このマップの各エントリーは、関数モジュールのインターフェースを指定し、各エントリーのキーは指定された function モジュールの名前です。
リポジトリーデータの例 リンクのコピーリンクがクリップボードにコピーされました!
以下のコードは、meta-data リポジトリーを設定する簡単な例を示しています。
関数テンプレートプロパティー リンクのコピーリンクがクリップボードにコピーされました!
関数モジュールのインターフェースは、RFC 呼び出しの function モジュールにデータを転送する 4 つのパラメーターリストで構成されます。各パラメーター一覧は 1 つ以上のフィールドで構成されており、各フィールドは RFC 呼び出しで転送される名前付きパラメーターです。以下のパラメーター list および 例外の一覧がサポートされます。
- import パラメーター一覧 には、RFC 呼び出しの function モジュールに送信されるパラメーター値が含まれます。
- export パラメーターリスト には、RFC 呼び出しの関数モジュールによって返されるパラメーター値が含まれます。
- 変更パラメーターリスト には、RFC 呼び出しの function モジュールに送信され、返されるパラメーター値が含まれます。
- table パラメーターリスト には、RFC 呼び出しの function モジュールに送信され、返される内部テーブル値が含まれます。
- 関数モジュールのインターフェースは、RFC 呼び出しでモジュールが呼び出されると発生する ABAP 例外の例外リスト も含まれています。
関数テンプレートは、関数インターフェースの各パラメーター一覧のパラメーターおよびタイプ、および関数によってスローされた ABAP 例外を記述します。関数テンプレートオブジェクトは、以下の表で説明されているように、メタデータオブジェクトの 5 つのプロパティー一覧を維持します。
| プロパティー | 説明 |
|
|
リストフィールドメタデータオブジェクト( |
|
|
リストフィールドメタデータオブジェクト( |
|
|
リストフィールドメタデータオブジェクト( |
|
|
リストフィールドメタデータオブジェクト( |
|
|
ABAP 例外メタデータオブジェクト( |
関数テンプレートの例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、関数テンプレートの設定方法の概要を示しています。
フィールドメタデータプロパティーの一覧を表示します。 リンクのコピーリンクがクリップボードにコピーされました!
リストフィールドの meta-data オブジェクト( org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl )は、パラメーター一覧のフィールドの名前とタイプを指定します。要素的なパラメーターフィールド(CHAR、DATE、BCD、TIME TIME、BYTE、NUM、FLOAT、INT、INT1、INT1、INT2、DECF16、DECF34、文字列)の場合、以下の表は、リストフィールドメタデータオブジェクトに設定できる設定プロパティーを一覧表示しています。
| Name | デフォルト値 | 説明 |
|
| - | パラメーターフィールドの名前。 |
|
| - | フィールドのパラメータータイプ。 |
|
| - | 非Unicodeレイアウトのフィールドの長さ(バイト単位)。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。 |
|
| - | Unicode レイアウトのフィールドの長さ(バイト単位)。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。 |
|
|
| フィールド値の 10 進数の数。パラメータータイプ BCD および FLOAT にのみ必要です。「RFC のメッセージボディー」 を参照してください。 |
|
|
|
|
すべての要素的なパラメーターフィールドでは、フィールドの meta-data オブジェクトで 名前、タイプ、バイト長、および unicodeByteLength プロパティーを指定する必要があることに注意してください。さらに、BCD、FLOAT、DECF16、および DECF34 の各フィールドでは、10 進数のプロパティーをフィールド meta-data オブジェクトで指定する必要があります。
TABLE または STRUCTURE タイプの複雑なパラメーターフィールドの場合、以下の表は、リストフィールドメタデータオブジェクトに設定できる設定プロパティーを示しています。
| Name | デフォルト値 | 説明 |
|
| - | パラメーターフィールドの名前 |
|
| - | フィールドのパラメータータイプ |
|
| - |
構造またはテーブルのメタデータ。レコードメタデータオブジェクト |
|
|
|
|
すべての複雑なパラメーターフィールドでは、名前、type、および recordMetaData プロパティーをフィールド meta-data オブジェクトで指定する必要があります。recordMetaData プロパティーの値は、ネスト化された構造の構造を指定するレコードフィールド meta-data オブジェクトの org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl です。
要素リストフィールドメタデータの例 リンクのコピーリンクがクリップボードにコピーされました!
以下のメタデータ設定は、TICKET_PRICE という名前の 2 進数の場所で、24 桁のパッシングされた BCD 番号パラメーターを指定します。
複合リストフィールドメタデータの例 リンクのコピーリンクがクリップボードにコピーされました!
以下の meta-data 設定は、connectionInfo レコードのメタデータオブジェクトで指定される行構造を持つ CONNINFO という名前の必要な TABLE パラメーターを指定します。
<bean class="org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMetaDataImpl">
<property name="name" value="CONNINFO" />
<property name="type" value="TABLE" />
<property name="recordMetaData" ref="connectionInfo" />
</bean>
<bean class="org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMetaDataImpl">
<property name="name" value="CONNINFO" />
<property name="type" value="TABLE" />
<property name="recordMetaData" ref="connectionInfo" />
</bean>
レコードメタデータプロパティー リンクのコピーリンクがクリップボードにコピーされました!
レコードメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl は、ネスト化された STRUCTURE または TABLE パラメーターの名前および内容を指定します。レコードメタデータオブジェクトは、ネスト化された構造またはテーブル行にあるパラメーターを指定するレコードフィールドメタデータデータオブジェクト( org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl )の一覧を維持します。
以下の表は、レコードメタデータオブジェクトに設定できる設定プロパティーの一覧です。
| Name | デフォルト値 | 説明 |
|
| - | レコードの名前。 |
|
| - |
レコードフィールドメタデータオブジェクト( |
record meta-data オブジェクトのすべてのプロパティーが必要です。
レコードメタデータの例 リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、レコードメタデータオブジェクトの設定方法を示しています。
レコードフィールドメタデータプロパティー リンクのコピーリンクがクリップボードにコピーされました!
レコードフィールドの meta-data オブジェクト org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl は、構造を持つパラメーターフィールドの名前およびタイプを指定します。
レコードフィールドメタデータオブジェクトはパラメーターフィールドの meta-data オブジェクトと似ていますが、ネストされた構造やテーブル行内の個々のフィールドの場所のオフセットは追加で指定する必要があります。個々のフィールドのユニコード以外のオフセットと Unicode オフセットは、構造または行の前のフィールドの非Unicodeおよび Unicode バイト長の合計から計算して指定する必要があります。ネストされた構造でフィールドのオフセットを適切に指定できず、テーブル行により、基礎となる JCo および ABAP ランタイムのパラメーターのフィールドストレージが重複し、RFC 呼び出しの値が適切に転送されないことに注意してください。
CHAR,DATE,BCD,TIME,BYTE,NUM,FLOAT, INTINT1 INT1 INT2INT 2DECF16,DECF34,STRING,XSTRING)の場合、以下の表は、レコードフィールドメタデータオブジェクトに設定できる設定プロパティーを一覧表示しています。
| Name | デフォルト値 | 説明 |
|
| - | パラメーターフィールドの名前 |
|
| - | フィールドのパラメータータイプ |
|
| - | 非Unicodeレイアウトのフィールドの長さ(バイト単位)。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。 |
|
| - | Unicode レイアウトのフィールドの長さ(バイト単位)。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。 |
|
| - | 非Unicodeレイアウトのバイト単位のフィールドオフセット。このオフセットは、エンクロージング構造内のフィールドのバイトロケーションです。 |
|
| - | Unicode レイアウトのフィールドオフセット(バイト単位)。このオフセットは、エンクロージング構造内のフィールドのバイトロケーションです。 |
|
|
|
フィールド値の 10 進数の数。パラメータータイプ |
TABLE または STRUCTURE タイプの複雑なパラメーターフィールドの場合、以下の表は、レコードフィールドメタデータオブジェクトに設定できる設定プロパティーを示しています。
| Name | デフォルト値 | 説明 |
|
| - | パラメーターフィールドの名前 |
|
| - | フィールドのパラメータータイプ |
|
| - | 非Unicodeレイアウトのバイト単位のフィールドオフセット。このオフセットは、エンクロージング構造内のフィールドのバイトロケーションです。 |
|
| - | Unicode レイアウトのフィールドオフセット(バイト単位)。このオフセットは、エンクロージング構造内のフィールドのバイトロケーションです。 |
|
| - |
構造またはテーブルのメタデータ。レコードメタデータオブジェクト |
要素レコードフィールドメタデータの例 リンクのコピーリンクがクリップボードにコピーされました!
以下のメタデータ構成は、ARR という名前の DATE フィールドパラメーターが、Unicode 以外のレイアウトの場合は 85 バイトをエンクロージング構造に指定し、Unicode レイアウトの場合の囲み構造に 170 バイトを指定します。
DATE
複雑なレコードフィールドメタデータの例 リンクのコピーリンクがクリップボードにコピーされました!
以下の meta-data 設定は、flightInfo record meta-data オブジェクトで指定された構造を持つ FLTINFO という名前の STRUCTURE フィールドパラメーターを指定します。パラメーターは、非Unicode レイアウトと Unicode レイアウトの両方で、囲み構造の先頭に置かれます。