290.6. 設定
					SAP コンポーネントは、宛先データ、サーバーデータ、およびリポジトリーデータを格納する 3 つのマップを維持します。宛先データストア と サーバーデータストア は、特別な設定オブジェクト SapConnectionConfiguration を使用します。これは、SAP コンポーネントに (Blueprint XML 設定ファイルまたは Spring XML 設定ファイルのコンテキストで) 自動的に注入されます。リポジトリーデータストア は、関連する SAP コンポーネントで直接設定する必要があります。
				
290.6.1. 設定の概要
概要
						SAP コンポーネントは、宛先データ、サーバーデータ、およびリポジトリーデータを格納する 3 つのマップを維持します。コンポーネントのプロパティー destinationDataStore は、宛先名でキー付けされた宛先データを保存します。プロパティー serverDataStore は、サーバー名でキー付けされたサーバーデータを保存します。プロパティー repositoryDataStore は、リポジトリー名でキー付けされたリポジトリーデータを保存します。初期化中にこれらの設定をコンポーネントに渡す必要があります。
					
例
						次の例は、ブループリント XML ファイルでサンプルの宛先データストアとサンプルサーバーデータストアを設定する方法を示しています。sap-configuration Bean (SapConnectionConfiguration 型) は、この XML ファイルで使用される SAP コンポーネントに自動的に注入されます。
					
290.6.2. 宛先設定
概要
						宛先の設定は、SAP コンポーネントの destinationDataStore プロパティーで維持されます。このマップの各エントリーは、SAP インスタンスへの個別のアウトバウンド接続を設定します。各エントリーのキーはアウトバウンド接続の名前であり、URI 形式のセクションで説明されているように、宛先エンドポイント URI の destinationName コンポーネントで使用されます。
					
						各エントリーの値は、アウトバウンド SAP 接続の設定を指定する宛先データ設定オブジェクト (org.fusesource.camel.component.sap.model.rfc.impl.DestinationDataImpl) です。
					
サンプル宛先設定
						次の Blueprint XML コードは、サンプルの宛先を quickstartDest という名前で設定する方法を示しています。
					
						たとえば、前の Blueprint XML ファイルに示されているように宛先を設定した後、次の URI を使用して、quickstartDest 宛先で BAPI_FLCUST_GETLIST リモート関数呼び出しを呼び出すことができます。
					
sap-srfc-destination:quickstartDest:BAPI_FLCUST_GETLIST
sap-srfc-destination:quickstartDest:BAPI_FLCUST_GETLISTtRFC および qRFC 宛先のインターセプター
						前のサンプル宛先設定は、CurrentProcessorDefinitionInterceptStrategy オブジェクトのインスタンス化を示しています。このオブジェクトは、Camel ランタイムにインターセプターをインストールします。これにより、Camel SAP コンポーネントは、RFC トランザクションの処理中に Camel ルート内の位置を追跡できます。詳細は、「トランザクション RFC 宛先エンドポイント」 を参照してください。
					
アウトバウンドトランザクション RFC 通信を適切に管理するには、このインターセプターを Camel ランタイムにインストールする必要があります。
							これは、トランザクション RFC 宛先エンドポイント (sap-trfc-destination や sap-qrfc-destination など) にとって非常に重要です。
						
ストラテジーがランタイム時に見つからない場合、Destination RFC Transaction Handlers は Camel ログに警告を発行します。この状況では、アウトバウンドトランザクション RFC 通信を適切に管理するために、Camel ランタイムを再プロビジョニングして再起動する必要があります。
ログインと認証のオプション
次の表に、SAP 宛先データストアで宛先を設定するための ログインと認証 オプションを示します。
| 名前 | デフォルト値 | 説明 | 
| 
										 | SAP クライアント、必須のログインパラメーター | |
| 
										 | ログインユーザー、パスワードベースの認証用のログインパラメーター。 | |
| 
										 | ログインユーザーエイリアス。ログインユーザーの代わりに使用できます。 | |
| 
										 | ABAP AS へのログインに使用するユーザー ID。宛先設定が認証に SSO/アサーションチケット、証明書、現在のユーザー、または SNC 環境を使用する場合、JCo ランタイムによって使用されます。ユーザーまたはユーザーエイリアスがない場合は、ユーザー ID は必須です。この ID は SAP バックエンドによって使用されず、JCo ランタイムはローカルでこれを使用します。 | |
| 
										 | ログインパスワード、パスワードベースの認証用のログインパラメーター。 | |
| 
										 | ユーザー言語の代わりに使用するログイン言語 | |
| 
										 | 指定された SAP Cookie バージョン 2 を、SSO ベースの認証のログインチケットとして使用します。 | |
| 
										 | 証明書ベースの認証に指定された X509 証明書を使用します。 | |
| 
										 | 
										最初の呼び出しまで認証を延期する - 1 (有効)。特別な場合にのみ  | |
| 
										 | 表示または非表示の SAP GUI を使用するか、SAP GUI を使用しません。 | |
| 
										 | 
										ログインパラメーターを変換するために使用されるコードページを定義する追加のログインパラメーター。特別な場合にのみ  | |
| 
										 | ログイン後に SSO チケットを注文します。取得したチケットは宛先属性で使用できます | |
| 
										 | 
										 | 
接続オプション
次の表に、SAP 宛先データストアで宛先を設定するための 接続 オプションを示します。
| 名前 | デフォルト値 | 説明 | 
| 
										 | 
										SAP ルーターの背後にあるシステムに接続するための SAP ルーター文字列。SAP ルーター文字列には、一連の SAP ルーターとそのポート番号が含まれており、次の形式になっています:  | |
| 
										 | SAP ABAP アプリケーションサーバーのシステム番号、直接接続に必須 | |
| 
										 | SAP ABAP アプリケーションサーバー、直接接続に必須。 | |
| 
										 | SAP メッセージサーバー、負荷分散接続の必須プロパティー。 | |
| 
										 | 
										SAP メッセージサーバーポート。負荷分散接続のオプションプロパティー。サービス名 sapmsXXX を解決するために、オペレーティングシステムのネットワークレイヤーは  | |
| 
										 | 具体的なゲートウェイを指定できます。これを使用して、アプリケーションサーバーへの接続を確立します。指定しない場合、アプリケーションサーバーのゲートウェイが使用されます。 | |
| 
										 | 
										 | |
| 
										 | SAP システムのシステム ID。負荷分散接続の必須プロパティー。 | |
| 
										 | SAP アプリケーションサーバーのグループ、負荷分散接続の必須プロパティー | |
| 
										 | 
										 | 
										パフォーマンスを最適化するには、JCo とターゲットシステム間のネットワーク品質に応じてこの値を設定します。有効な値は  | 
| 
										 | 
										 | 
										シリアル化の形式。 | 
接続プールのオプション
次の表に、SAP 宛先データストアで宛先を設定するための 接続プール オプションを示します。
| 名前 | デフォルト値 | 説明 | 
| 
										 | 
										 | 
										宛先の同時にアクティブなアウトバウンド接続の最大数。値を  | 
| 
										 | 
										 | 
										宛先によって開いたままのアイドル状態のアウトバウンド接続の最大数。値が  | 
| 
										 | 宛先によって内部的に保持されている空き接続の最小時間 (ミリ秒単位) を開いたままにする必要があります。 | |
| 
										 | 宛先が解放された接続の有効期限をチェックするまでのミリ秒単位の期間。 | |
| 
										 | アプリケーションによって最大許容接続数がすでに割り当てられている場合に、接続を待機する最大時間 (ミリ秒単位)。 | 
安全なネットワーク接続オプション
次の表に、SAP 宛先データストアで宛先を設定するための セキュアなネットワーク オプションを示します。
| 名前 | デフォルト値 | 説明 | 
| 
										 | 
										セキュアなネットワーク接続 (SNC) モード、 | |
| 
										 | 
										SNC パートナー、例:  | |
| 
										 | 
										セキュリティーの SNC レベル:  | |
| 
										 | 独自の SNC 名。環境設定をオーバーライドします | |
| 
										 | SNC サービスを提供するライブラリーへのパス | 
リポジトリーオプション
次の表に、SAP 宛先データストアで宛先を設定するための リポジトリー オプションを示します。
| 名前 | デフォルト値 | 説明 | 
| 
										 | リポジトリーとして使用する宛先を指定します。 | |
| 
										 | これは、リポジトリーの宛先が定義されていない場合に、リポジトリー呼び出しのユーザーを定義します。これにより、リポジトリーの検索に別のユーザーを使用できます。 | |
| 
										 | リポジトリーユーザーのパスワード。リポジトリーユーザーを使用する場合は必須です。 | |
| 
										 | 
										(オプション) この宛先に SNC が使用されている場合、このプロパティーが  | |
| 
										 | 
										 
 
										プロパティーが設定されていない場合、宛先は最初にリモート呼び出しを実行して、 注記 リポジトリーがすでに初期化されている場合 (他の宛先で使用されている場合など)、このプロパティーは効果がありません。通常、このプロパティーは ABAP システムに関連しており、同じ ABAP システムを指すすべての宛先で同じ値を持つ必要があります。バックエンドの前提条件は、ノート 1456826 を参照してください。 | 
トレース設定オプション
次の表に、SAP 宛先データストアで宛先を設定するための トレース設定 オプションを示します。
| 名前 | デフォルト値 | 説明 | 
| 
										 | 
										RFC トレースを有効/無効にする ( | |
| 
										 | 
										CPIC トレースを有効/無効にする  | 
290.6.3. サーバー設定
概要
						サーバーの設定は、SAP コンポーネントの serverDataStore プロパティーで維持されます。このマップの各エントリーは、SAP インスタンスからの個別のインバウンド接続を設定します。各エントリーのキーはアウトバウンド接続の名前であり、URI 形式のセクションで説明されているように、サーバーエンドポイント URI の serverName コンポーネントで使用されます。
					
						各エントリーの値は、インバウンド SAP 接続の設定を定義する サーバーデータ設定オブジェクト、org.fusesource.camel.component.sap.model.rfc.impl.ServerDataImpl です。
					
例: サーバー設定
						次の Blueprint XML コードは、名前が quickstartServer のサンプルサーバー設定を作成する方法を示しています。
					
						この例では、サーバーがリモート SAP インスタンスからメタデータを取得するために使用する宛先接続である quickstartDest も設定する方法に注目してください。この宛先は、repositoryDestination オプションを介してサーバーデータで設定されます。このオプションを設定しない場合は、代わりにローカルメタデータリポジトリーを作成する必要があります (「リポジトリーの設定」 を参照)。
					
						たとえば、前述の Blueprint XML ファイルに示されているように宛先を設定した後、次の URI を使用して、呼び出し元のクライアントからの BAPI_FLCUST_GETLIST リモート関数呼び出しを処理できます。
					
sap-srfc-server:quickstartServer:BAPI_FLCUST_GETLIST
sap-srfc-server:quickstartServer:BAPI_FLCUST_GETLIST必須オプション
サーバーデータ設定オブジェクトに必要なオプションは次のとおりです。
| 名前 | デフォルト値 | 説明 | 
| 
										 | サーバー接続を登録するゲートウェイホスト。 | |
| 
										 | 
										登録を行うことができるポートであるゲートウェイサービス。サービス名  | |
| 
										 | 登録が行われたプログラム ID。ゲートウェイおよび ABAP システムの宛先で識別子として機能します。 | |
| 
										 | リモート SAP サーバーでホストされているメタデータリポジトリーから、メタデータを取得するためにサーバーが使用できる宛先名を指定します。 | |
| 
										 | ゲートウェイに登録する接続の数。 | 
安全なネットワーク接続オプション
サーバーデータ設定オブジェクトの安全なネットワーク接続オプションは次のとおりです。
| 名前 | デフォルト値 | 説明 | 
| 
										 | 
										セキュアなネットワーク接続 (SNC) モード、 | |
| 
										 | 
										セキュリティーの SNC レベル、 | |
| 
										 | 
										サーバーの SNC 名。デフォルトの SNC 名を上書きします。通常、 | |
| 
										 | 
										SNC サービスを提供するライブラリーへのパス。このプロパティーが指定されていない場合は、代わりに  | 
その他のオプション
サーバーデータ設定オブジェクトのその他のオプションは次のとおりです。
| 名前 | デフォルト値 | 説明 | 
| 
										 | 
										その ABAP システムのゲートウェイでサーバーを登録するときに、ファイアウォールによって保護されているため、SAProuter を介してのみアクセスできるシステムに使用する SAP ルーター文字列。一般的なルーター文字列は  | |
| 
										 | 失敗した場合の 2 回の起動試行間の最大時間 (秒単位)。最初は、起動に失敗するたびに待機時間が 1 秒から 2 倍になり、最大値に達するかサーバーが正常に起動できるようになります。 | |
| 
										 | 
										RFC トレースを有効/無効にする ( | |
| 
										 | 
										サーバー接続で使用されるスレッドの最大数。設定されていない場合、 | |
| 
										 | 
										サーバー接続で使用されるスレッドの最小数。設定されていない場合、 | 
290.6.4. リポジトリーの設定
概要
						リポジトリーの設定は、SAP コンポーネントの repositoryDataStore プロパティーで維持されます。このマップの各エントリーは、個別のリポジトリーを設定します。各エントリーのキーはリポジトリーの名前であり、このキーはこのリポジトリーが接続されているサーバーの名前にも対応しています。
					
						各エントリーの値は、メタデータリポジトリーのコンテンツを定義するリポジトリーデータ設定オブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RepositoryDataImpl です。リポジトリーデータオブジェクトは、機能テンプレート設定オブジェクト org.fuesource.camel.component.sap.model.rfc.impl.FunctionTemplateImpl のマップです。このマップの各エントリーは汎用モジュールのインタフェースを指定し、各エントリーのキーは指定された汎用モジュールの名前です。
					
リポジトリーデータの例
次のコードは、メタデータリポジトリーを設定する簡単な例を示しています。
関数テンプレートのプロパティー
汎用モジュールのインタフェースは、RFC コールでデータが汎用モジュールとの間でやり取りされる 4 つのパラメーターリストで構成されています。各パラメーターリストは 1 つ以上のフィールドで構成され、それぞれが RFC コールで転送される名前付きパラメーターです。次のパラメーターリストと例外リストがサポートされています。
- インポートパラメーターリスト には、RFC コールで汎用モジュールに送信されるパラメーター値が含まれています。
- エクスポートパラメーターリスト には、RFC コールで汎用モジュールによって返されるパラメーター値が含まれています。
- 変更パラメーター一覧 には、RFC コールで汎用モジュールとの間で送受信されるパラメーター値が含まれています。
- テーブルパラメーター一覧 には、RFC コールで汎用モジュールとの間で送受信される内部テーブル値が含まれています。
- 汎用モジュールのインタフェースは、モジュールが RFC コールで呼び出されたときに発生する可能性のある ABAP 例外の 例外リスト からも構成されます。
関数テンプレートは、関数インターフェイスの各パラメーターリスト内のパラメーターの名前と型、および関数によって出力される ABAP 例外を記述します。関数テンプレートオブジェクトは、次の表に示すように、メタデータオブジェクトの 5 つのプロパティーリストを保持します。
| プロパティー | 説明 | 
| 
										 | 
										リストフィールドメタデータオブジェクトのリスト、 | 
| 
										 | 
										リストフィールドメタデータオブジェクトのリスト、 | 
| 
										 | 
										リストフィールドメタデータオブジェクトのリスト、 | 
| 
										 | 
										リストフィールドメタデータオブジェクトのリスト、 | 
| 
										 | 
										ABAP 例外メタデータオブジェクトのリスト、 | 
関数テンプレートの例
次の例は、関数テンプレートを設定する方法の概要を示しています。
リストフィールドのメタデータプロパティー
						リストフィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl は、パラメーターリスト内のフィールドの名前とタイプを指定します。基本パラメーターフィールド (CHAR、DATE、BCD、TIME、BYTE、NUM、FLOAT、INT、INT1、INT2、DECF16、DECF34、STRING、XSTRING) の場合、リストフィールドメタデータオブジェクトに設定できる設定プロパティーを次の表に示します。
					
| 名前 | デフォルト値 | 説明 | 
| 
										 | - | パラメーターフィールドの名前。 | 
| 
										 | - | フィールドのパラメータータイプ。 | 
| 
										 | - | 非 Unicode レイアウトのバイト単位のフィールド長。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。 | 
| 
										 | - | Unicode レイアウトのバイト単位のフィールド長。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。 | 
| 
										 | 
										 | フィールド値の小数点以下の桁数。パラメータータイプ BCD および FLOAT にのみ必要です。「RFC のメッセージボディー」 を参照してください。 | 
| 
										 | 
										 | 
										 | 
							すべての基本パラメーターフィールドでは、フィールドメタデータオブジェクトで name、type、byteLength、および unicodeByteLength プロパティーを指定する必要があります。さらに、BCD、FLOAT、DECF16、および DECF34 フィールドでは、フィールドメタデータオブジェクトで decimal プロパティーを指定する必要があります。
						
						タイプ TABLE または STRUCTURE の複雑なパラメーターフィールドの場合、次の表に、リストフィールドメタデータオブジェクトに設定できる設定プロパティーを示します。
					
| 名前 | デフォルト値 | 説明 | 
| 
										 | - | パラメーターフィールドの名前 | 
| 
										 | - | フィールドのパラメータータイプ | 
| 
										 | - | 
										構造またはテーブルのメタデータ。レコードメタデータオブジェクト  | 
| 
										 | 
										 | 
										 | 
							すべての複合パラメーターフィールドでは、フィールドメタデータオブジェクトで name、type、および recordMetaData プロパティーを指定する必要があります。recordMetaData プロパティーの値は、レコードフィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl で あり、ネストされた構造の構造またはテーブル行の構造を指定します。
						
基本リストフィールドのメタデータの例
						次のメタデータ設定では、オプションの TICKET_PRICE という名前の小数点以下 2 桁の 24 桁のパックされた BCD 数値パラメーターを指定します。
					
複雑なリストフィールドのメタデータの例
						次のメタデータ設定では、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 を維持します。これは、ネストされた構造体またはテーブル行に存在するパラメーターを指定します。
					
次の表に、レコードメタデータオブジェクトに設定できる設定プロパティーを示します。
| 名前 | デフォルト値 | 説明 | 
| 
										 | - | レコードの名前。 | 
| 
										 | - | 
										レコードフィールドメタデータオブジェクトのリスト、 | 
レコードメタデータオブジェクトのすべてのプロパティーが必要です。
レコードメタデータの例
次の例は、レコードメタデータオブジェクトを設定する方法を示しています。
レコードフィールドのメタデータプロパティー
						レコードフィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl は、構造体でパラメーターフィールドの名前とタイプを指定します。
					
レコードフィールドメタデータオブジェクトは、ネストされた構造またはテーブル行内の個々のフィールド位置のオフセットを追加で指定する必要があることを除いて、パラメーターフィールドメタデータオブジェクトに似ています。個々のフィールドの非 Unicode オフセットと Unicode オフセットは、構造体または行内の前のフィールドの非 Unicode バイト長と Unicode バイト長の合計から計算して指定する必要があります。
ネストされた構造体およびテーブル行のフィールドのオフセットを適切に指定しないと、基礎となる JCo および ABAP ランタイムのパラメーターのフィールドストレージが重複し、RFC コールでの値の適切な転送が妨げられるます。
						基本パラメーターフィールド (CHAR、DATE、BCD、TIME、BYTE、NUM、FLOAT、INT、INT1、INT2、DECF16、DECF34、STRING、XSTRING) の場合、レコードフィールドメタデータオブジェクトに設定できる設定プロパティーを次の表に示します。
					
| 名前 | デフォルト値 | 説明 | 
| 
										 | - | パラメーターフィールドの名前 | 
| 
										 | - | フィールドのパラメータータイプ | 
| 
										 | - | 非 Unicode レイアウトのバイト単位のフィールド長。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。 | 
| 
										 | - | Unicode レイアウトのバイト単位のフィールド長。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。 | 
| 
										 | - | 非 Unicode レイアウトのフィールドオフセット (バイト単位)。このオフセットは、囲んでいる構造内のフィールドのバイト位置です。 | 
| 
										 | - | Unicode レイアウトのフィールドオフセット (バイト単位)。このオフセットは、囲んでいる構造内のフィールドのバイト位置です。 | 
| 
										 | 
										 | 
										フィールド値の小数点以下の桁数。パラメータータイプ  | 
						タイプ TABLE または STRUCTURE の複雑なパラメーターフィールドの場合、次の表に、レコードフィールドメタデータオブジェクトに設定できる設定プロパティーを示します。
					
| 名前 | デフォルト値 | 説明 | 
| 
										 | - | パラメーターフィールドの名前 | 
| 
										 | - | フィールドのパラメータータイプ | 
| 
										 | - | 非 Unicode レイアウトのフィールドオフセット (バイト単位)。このオフセットは、囲んでいる構造内のフィールドのバイト位置です。 | 
| 
										 | - | Unicode レイアウトのフィールドオフセット (バイト単位)。このオフセットは、囲んでいる構造内のフィールドのバイト位置です。 | 
| 
										 | - | 
										構造またはテーブルのメタデータ。レコードメタデータオブジェクト  | 
基本レコードフィールドのメタデータの例
						次のメタデータ設定は、ARRDATE という名前の DATE フィールドパラメーターを指定します。これは、非 Unicode レイアウトの場合は囲んでいる構造体の 85 バイト、Unicode レイアウトの場合は囲んでいる構造体の 170 バイトに配置されています。
					
複雑なレコードフィールドのメタデータの例
						次のメタデータ設定は、flightInfo レコードメタデータオブジェクトによって指定された構造を持つ FLTINFO という名前の STRUCTURE フィールドパラメーターを指定します。パラメーターは、非 Unicode レイアウトと Unicode レイアウトの両方の場合に、囲んでいる構造の先頭に配置されます。