Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.140.3. RFC のメッセージボディー
要求および応答オブジェクト リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SAP エンドポイントは、SAP リクエストオブジェクトが含まれるメッセージボディーを持つメッセージを受信することを想定し、SAP 応答オブジェクトが含まれるメッセージボディーを持つメッセージを返します。SAP 要求および応答は、事前定義データタイプを持つ名前付きフィールドが含まれる固定マップデータ構造です。
SAP 要求および応答の名前付きフィールドは SAP エンドポイントに固有のものであり、各エンドポイントが SAP 要求でパラメーターを定義し、応答することに注意してください。SAP エンドポイントは、要求オブジェクトおよびそれに固有の応答オブジェクトを作成するためのファクトリーメソッドを提供します。
構造オブジェクト リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SAP 要求および応答オブジェクトはいずれも、
org.fusesource.camel.component.sap.model.rfc.Structure
インターフェイスをサポートする構造オブジェクトとして Java で表されます。このインターフェイスは、java.util.Map
インターフェイスと org.eclipse.emf.ecore.EObject
インターフェイスの両方を拡張します。
構造オブジェクトのフィールド値には、マップインターフェイスのフィールドの getter メソッドを介してアクセスします。さらに、構造インターフェイスは、フィールド値を取得するための type-restricted メソッドを提供します。
構造オブジェクトは、Eclipse Modeling Framework (EMF)を使用してコンポーネントランタイムに実装され、そのフレームワークの
EObject
インターフェイスをサポートします。構造オブジェクトのインスタンスには、提供するフィールドのマッピングの構造および内容を定義し、制限するメタデータが割り当てられます。このメタデータは、EMF が提供する標準の方法を使用してアクセスおよびイントロスペクションできます。詳細は、EMF のドキュメント を参照してください。
注記
構造オブジェクトに定義されていないパラメーターの取得を試みると、null を返します。構造に定義されていないパラメーターの設定を試みると、例外が発生し、誤ったタイプのパラメーターの値の設定を試みます。
以下のセクションで説明されているように、構造化オブジェクトには、複雑なフィールドタイプ(
STRUCTURE
および TABLE
)の値が含まれるフィールドを含めることができます。これらのタイプのインスタンスを作成し、そのインスタンスを 構造に追加する必要はありません。これらのフィールド値のインスタンスは、エンクロージング構造でアクセスする際に必要な場合にオンデマンドで作成されます。
フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
SAP リクエストまたは応答の構造オブジェクト内にあるフィールドは、要素的 または 複雑な のいずれかになります。elementary フィールドには単一のスカラー値が含まれ、複雑なフィールドには要素型または複合型の 1 つ以上のフィールドが含まれます。
要素のフィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
要素のフィールドは、文字、数値、16 進数、または文字列フィールドタイプのいずれかになります。以下の表では、構造オブジェクトに存在する可能性のある要素フィールドのタイプをまとめています。
フィールドタイプ | 対応する Java タイプ | Byte Length | Unicode バイトの長さ | Number Decimals Digits | 説明 |
---|---|---|---|---|---|
CHAR
|
java.lang.String
|
1 から 65535 | 1 から 65535 | - | ABAP Type 'C': Fixed sized character string |
DATE
|
java.util.Date
|
8 | 16 | - | ABAP Type 'D': Date (format: YYYYMMDD) |
BCD
|
java.math.BigDecimal
|
1 から 16 | 1 から 16 | 0 から 14 | ABAP Type 'P': Packed BCD 番号。BCD 番号には、バイトごとに 2 桁の数字が含まれます。 |
TIME
|
java.util.Date
|
6 | 12 | - | ABAP Type 'T': Time (形式:HHMMSS) |
BYTE
|
byte[]
|
1 から 65535 | 1 から 65535 | - | ABAP Type 'X':Fixed sized byte array |
NUM
|
java.lang.String
|
1 から 65535 | 1 から 65535 | - | ABAP Type 'N': Fixed sized numeric character string |
FLOAT
|
java.lang.Double
|
8 | 8 | 0 から 15 | ABAP Type 'F': Floating point number |
INT
|
java.lang.Integer
|
4 | 4 | - | ABAP Type 'I': 4-byte Integer |
INT2
|
java.lang.Integer
|
2 | 2 | - | ABAP Type 'S': 2-byte Integer |
INT1
|
java.lang.Integer
|
1 | 1 | - | ABAP Type 'B': 1-byte Integer |
DECF16
|
java.match.BigDecimal
|
8 | 8 | 16 | ABAP Type 'decfloat16': 8 -byte Decimal Floating Point Number |
DECF34
|
java.math.BigDecimal
|
16 | 16 | 34 | ABAP Type 'decfloat34': 16-byte Decimal Floating Point Number |
STRING
|
java.lang.String
|
8 | 8 | - | ABAP Type 'G': Variable length character string |
XSTRING
|
byte[]
|
8 | 8 | - | ABAP Type 'Y': Variable length byte array |
文字フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
文字フィールドには、基礎となる JCo ランタイムおよび ABAP ランタイムで、Unicode 文字または Unicode 文字エンコーディングのいずれかを使用できる固定サイズの文字列が含まれています。Unicode 以外の文字文字列は、バイトごとに 1 文字をエンコードします。Unicode 文字文字列は、UTF-16 エンコーディングを使用して 2 バイトでエンコードされます。文字フィールドの値は Java で
java.lang.String
オブジェクトとして表され、基礎となる JCo ランタイムは ABAP 表現への変換を行います。
文字フィールドは、関連付けられた
byteLength
および unicodeByteLength
プロパティーでフィールドの長さを宣言します。これは、各エンコーディングシステムでフィールドの文字文字列の長さを決定します。
CHAR
CHAR
文字フィールドは英数字が含まれるテキストフィールドで、ABAP タイプ C に対応します。NUM
NUM
文字フィールドは数値文字のみを含む数値テキストフィールドで、ABAP タイプ N に対応します。DATE
DATE
文字フィールドは、年、月、および日がYYYYMMDD
としてフォーマットされた 8 文字の日付フィールドで、ABAP タイプ D に対応します。TIME
TIME
文字フィールドは、時間、分、秒がHHMMSS
としてフォーマットされた 6 文字の時間フィールドで、ABAP タイプ T に対応します。
数値フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
数値フィールドには数字が含まれます。以下の数字フィールドタイプがサポートされます。
INT
INT
numeric フィールドは、基礎となる JCo および ABAP ランタイムの 4 バイトの整数値として保存される整数フィールドで、ABAP タイプ I に対応します。INT
フィールドの値は、Java でjava.lang.Integer
オブジェクトとして表されます。INT2
INT2
numeric フィールドは、基礎となる JCo および ABAP ランタイムの 2 バイトの整数値として保存される整数フィールドで、ABAP タイプ S に対応します。INT2
フィールドの値は、Java でjava.lang.Integer
オブジェクトとして表されます。INT1
INT1
フィールドは、基礎となる JCo および ABAP ランタイム値の 1 バイトの整数値として保存される整数フィールドで、ABAP タイプ B に対応します。INT1
フィールドの値は、Java でjava.lang.Integer
オブジェクトとして表されます。FLOAT
FLOAT
フィールドは、基礎となる JCo および ABAP ランタイムの 8 バイトの 2 つの値として保存されるバイナリー浮動小数点数フィールドで、ABAP タイプ F に対応します。FLOAT
フィールドは、フィールドの値が関連する 10 進数のプロパティーに含まれる 10 進数の数を宣言します。FLOAT
フィールドでは、この 10 進数のプロパティーの値は 1 から 15 桁の値になります。FLOAT
フィールド値は Java でjava.lang.Double
オブジェクトとして表されます。BCD
BCD
フィールドは、基礎となる JCo および ABAP ランタイムの 1 から 16 バイトパックの数字として保存されたバイナリーコード 10 進数フィールドで、ABAP タイプ P に対応します。パックされた数字は、1 バイトに 2 桁の数字を保存します。BCD
フィールドは、関連付けられたbyteLength
およびunicodeByteLength
プロパティーでフィールドの長さを宣言します。BCD
フィールドの場合、これらのプロパティーの値は 1 ~ 16 バイトになり、いずれのプロパティーも同じ値になります。BCD
フィールドは、関連する decimal プロパティーでフィールドの値に含まれる 10 進数の数を宣言します。BCD
フィールドでは、この 10 進数のプロパティーの値は 1 から 14 桁の値になります。BCD
フィールド値は Java でjava.math.BigDecimal
として表されます。DECF16
DECF16
フィールドは、基礎となる JCo ランタイムおよび ABAP ランタイムの浮動小数点値 8 バイトの IEEE 754 decimal64 浮動小数点値として保存され、ABAP タイプdecfloat16
に対応します。DECF16
フィールドの値には、16 桁の数字が含まれます。DECF16
フィールドの値は Java でjava.math.BigDecimal
として表されます。DECF34
DECF34
フィールドは、基礎となる JCo ランタイムおよび ABAP ランタイムの浮動小数点値 16 バイト IEEE 754 decimal128 として保存され、ABAP タイプdecfloat34
に対応します。DECF34
フィールドの値には、34 桁の数字が含まれます。DECF34
フィールドの値は Java でjava.math.BigDecimal
として表されます。
16 進数フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
16 進数フィールドには raw バイナリーデータが含まれます。以下の 16 進数フィールドタイプがサポートされます。
BYTE
BYTE
フィールドは、基礎となる JCo および ABAP ランタイムのバイト配列として保存される固定サイズのバイト文字列で、ABAP タイプ X に対応します。BYTE
フィールドは関連するbyteLength
およびunicodeByteLength
プロパティーでフィールドの長さを宣言します。BYTE
フィールドの場合、これらのプロパティーの値は 1 ~ 65535 バイトになり、両方のプロパティーの値が同じになります。BYTE
フィールドの値は、Java でbyte[]
オブジェクトとして表されます。
文字列フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
文字列フィールドは、変数長の文字列値を参照します。この文字列値の長さは、ランタイムまで固定されません。文字列値のストレージは、基礎となる JCo および ABAP ランタイムに動的に作成されます。文字列フィールド自体のストレージが修正され、文字列ヘッダーのみが含まれます。
STRING
STRING
フィールドは文字文字列を参照し、基礎となる JCo および ABAP ランタイムを 8 バイトの値として格納されます。ABAP タイプ G に対応します。STRING
フィールドの値は Java でjava.lang.String
オブジェクトとして表されます。XSTRING
XSTRING
フィールドはバイト文字列を参照し、基礎となる JCo および ABAP ランタイムを 8 バイトの値として格納されます。ABAP タイプ Y に対応します。STRING
フィールドの値は Java でbyte[]
オブジェクトとして表されます。
複雑なフィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
複雑なフィールドは、構造フィールドまたはテーブルフィールドタイプのいずれかになります。以下の表では、これらの複雑なフィールドタイプをまとめています。
フィールドタイプ | 対応する Java タイプ | Byte Length | Unicode バイトの長さ | Number Decimals Digits | 説明 |
---|---|---|---|---|---|
STRUCTURE
|
org.fusesource.camel.component.sap.model.rfc.Structure
|
個々のフィールドバイト長の合計 | 個々のフィールド Unicode バイト長の合計 | - | ABAP Type 'u' & 'v': Heterogeneous Structure |
TABLE
|
org.fusesource.camel.component.sap.model.rfc.Table
|
行構造のバイト長 | Unicode バイト長の行構造 | - | ABAP タイプ 'h': テーブル |
構造化フィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
STRUCTURE
フィールドには構造オブジェクトが含まれ、下層の JCo および ABAP ランタイムに ABAP 構造レコードとして保存されます。ABAP タイプ u
または v
に対応します。STRUCTURE
フィールドの値は、Java でインターフェイス org.fusesource.camel.component.sap.model.rfc.Structure
を持つ構造オブジェクトとして表されます。
テーブルフィールドタイプ リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
TABLE
フィールドにはテーブルオブジェクトが含まれ、下層の JCo および ABAP ランタイムに ABAP 内部テーブルとして保存されます。ABAP タイプ h
に対応します。フィールドの値は、インターフェイス org.fusesource.camel.component.sap.model.rfc.Table
のあるテーブルオブジェクトによって Java で表されます。
テーブルオブジェクト リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
テーブルオブジェクトは、同じ構造を持つ構造オブジェクトの行を含む同種のデータ構造です。このインターフェイスは、
java.util.List
インターフェイスと org.eclipse.emf.ecore.EObject
インターフェイスの両方を拡張します。
テーブルオブジェクトの行一覧は、リストインターフェイスで定義された標準の方法を使用してアクセスおよび管理されます。また、テーブルインターフェイスは、構造オブジェクトを作成および行リストに追加する 2 つのファクトリーメソッドを提供します。
テーブルオブジェクトは、Eclipse Modeling Framework (EMF)を使用してコンポーネントランタイムに実装され、そのフレームワークの EObject インターフェイスをサポートします。テーブルオブジェクトのインスタンスには、提供する行の構造と内容を定義し、制限するメタデータがアタッチされます。このメタデータは、EMF が提供する標準の方法を使用してアクセスおよびイントロスペクションできます。詳細は、EMF のドキュメント を参照してください。
注記
間違ったタイプの行構造値を追加または設定しようとすると、例外が発生します。