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 コンポーネントに自動的に注入されます。

<?xml version="1.0" encoding="UTF-8"?>
<blueprint ... >
    ...
    <!-- Configures the Inbound and Outbound SAP Connections -->
    <bean id="sap-configuration"
        class="org.fusesource.camel.component.sap.SapConnectionConfiguration">
        <property name="destinationDataStore">
            <map>
                <entry key="quickstartDest" value-ref="quickstartDestinationData" />
            </map>
        </property>
        <property name="serverDataStore">
            <map>
                <entry key="quickstartServer" value-ref="quickstartServerData" />
            </map>
        </property>
    </bean>

    <!-- Configures an Outbound SAP Connection -->
    <!-- *** Please enter the connection property values for your environment *** -->
    <bean id="quickstartDestinationData"
        class="org.fusesource.camel.component.sap.model.rfc.impl.DestinationDataImpl">
        <property name="ashost" value="example.com" />
        <property name="sysnr" value="00" />
        <property name="client" value="000" />
        <property name="user" value="username" />
        <property name="passwd" value="passowrd" />
        <property name="lang" value="en" />
    </bean>

    <!-- Configures an Inbound SAP Connection -->
    <!-- *** Please enter the connection property values for your environment ** -->
    <bean id="quickstartServerData"
        class="org.fusesource.camel.component.sap.model.rfc.impl.ServerDataImpl">
        <property name="gwhost" value="example.com" />
        <property name="gwserv" value="3300" />
        <!-- Do not change the following property values -->
        <property name="progid" value="QUICKSTART" />
        <property name="repositoryDestination" value="quickstartDest" />
        <property name="connectionCount" value="2" />
    </bean>
</blueprint>

290.6.2. 宛先設定

概要

宛先の設定は、SAP コンポーネントの destinationDataStore プロパティーで維持されます。このマップの各エントリーは、SAP インスタンスへの個別のアウトバウンド接続を設定します。各エントリーのキーはアウトバウンド接続の名前であり、URI 形式のセクションで説明されているように、宛先エンドポイント URI の destinationName コンポーネントで使用されます。

各エントリーの値は、アウトバウンド SAP 接続の設定を指定する宛先データ設定オブジェクト (org.fusesource.camel.component.sap.model.rfc.impl.DestinationDataImpl) です。

サンプル宛先設定

次の Blueprint XML コードは、サンプルの宛先を quickstartDest という名前で設定する方法を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<blueprint ... >
    ...
    <!-- Create interceptor to support tRFC processing -->
    <bean id="currentProcessorDefinitionInterceptor"
          class="org.fusesource.camel.component.sap.CurrentProcessorDefinitionInterceptStrategy" />

    <!-- Configures the Inbound and Outbound SAP Connections -->
    <bean id="sap-configuration"
        class="org.fusesource.camel.component.sap.SapConnectionConfiguration">
        <property name="destinationDataStore">
            <map>
                <entry key="quickstartDest" value-ref="quickstartDestinationData" />
            </map>
        </property>
    </bean>

    <!-- Configures an Outbound SAP Connection -->
    <!-- *** Please enter the connection property values for your environment *** -->
    <bean id="quickstartDestinationData"
        class="org.fusesource.camel.component.sap.model.rfc.impl.DestinationDataImpl">
        <property name="ashost" value="example.com" />
        <property name="sysnr" value="00" />
        <property name="client" value="000" />
        <property name="user" value="username" />
        <property name="passwd" value="password" />
        <property name="lang" value="en" />
    </bean>

</blueprint>

たとえば、前の Blueprint XML ファイルに示されているように宛先を設定した後、次の URI を使用して、quickstartDest 宛先で BAPI_FLCUST_GETLIST リモート関数呼び出しを呼び出すことができます。

sap-srfc-destination:quickstartDest:BAPI_FLCUST_GETLIST

tRFC および qRFC 宛先のインターセプター

前のサンプル宛先設定は、CurrentProcessorDefinitionInterceptStrategy オブジェクトのインスタンス化を示しています。このオブジェクトは、Camel ランタイムにインターセプターをインストールします。これにより、Camel SAP コンポーネントは、RFC トランザクションの処理中に Camel ルート内の位置を追跡できます。詳細は、「トランザクション RFC 宛先エンドポイント」 を参照してください。

重要

アウトバウンドトランザクション RFC 通信を適切に管理するには、このインターセプターを Camel ランタイムにインストールする必要があります。

これは、トランザクション RFC 宛先エンドポイント (sap-trfc-destinationsap-qrfc-destination など) にとって非常に重要です。

ストラテジーがランタイム時に見つからない場合、Destination RFC Transaction Handlers は Camel ログに警告を発行します。この状況では、アウトバウンドトランザクション RFC 通信を適切に管理するために、Camel ランタイムを再プロビジョニングして再起動する必要があります。

ログインと認証のオプション

次の表に、SAP 宛先データストアで宛先を設定するための ログインと認証 オプションを示します。

名前

デフォルト値

説明

client

 

SAP クライアント、必須のログインパラメーター

user

 

ログインユーザー、パスワードベースの認証用のログインパラメーター。

aliasUser

 

ログインユーザーエイリアス。ログインユーザーの代わりに使用できます。

userId

 

ABAP AS へのログインに使用するユーザー ID。宛先設定が認証に SSO/アサーションチケット、証明書、現在のユーザー、または SNC 環境を使用する場合、JCo ランタイムによって使用されます。ユーザーまたはユーザーエイリアスがない場合は、ユーザー ID は必須です。この ID は SAP バックエンドによって使用されず、JCo ランタイムはローカルでこれを使用します。

passwd

 

ログインパスワード、パスワードベースの認証用のログインパラメーター。

lang

 

ユーザー言語の代わりに使用するログイン言語

mysapsso2

 

指定された SAP Cookie バージョン 2 を、SSO ベースの認証のログインチケットとして使用します。

x509cert

 

証明書ベースの認証に指定された X509 証明書を使用します。

lcheck

 

最初の呼び出しまで認証を延期する - 1 (有効)。特別な場合にのみ lcheck を使用します。

useSapGui

 

表示または非表示の SAP GUI を使用するか、SAP GUI を使用しません。

codePage

 

ログインパラメーターを変換するために使用されるコードページを定義する追加のログインパラメーター。特別な場合にのみ codePage を使用します。

getsso2

 

ログイン後に SSO チケットを注文します。取得したチケットは宛先属性で使用できます

denyInitialPassword

 

1 に設定した場合、初期パスワードを使用すると例外が発生します (デフォルトは 0 です)。

接続オプション

次の表に、SAP 宛先データストアで宛先を設定するための 接続 オプションを示します。

名前

デフォルト値

説明

saprouter

 

SAP ルーターの背後にあるシステムに接続するための SAP ルーター文字列。SAP ルーター文字列には、一連の SAP ルーターとそのポート番号が含まれており、次の形式になっています: (/H/<host>[/S/<port>])+

sysnr

 

SAP ABAP アプリケーションサーバーのシステム番号、直接接続に必須

ashost

 

SAP ABAP アプリケーションサーバー、直接接続に必須。

mshost

 

SAP メッセージサーバー、負荷分散接続の必須プロパティー。

msserv

 

SAP メッセージサーバーポート。負荷分散接続のオプションプロパティー。サービス名 sapmsXXX を解決するために、オペレーティングシステムのネットワークレイヤーは etc/services でルックアップを実行します。シンボリックサービス名の代わりにポート番号を使用する場合、ルックアップはなく、追加のエントリーは必要ありません。

gwhost

 

具体的なゲートウェイを指定できます。これを使用して、アプリケーションサーバーへの接続を確立します。指定しない場合、アプリケーションサーバーのゲートウェイが使用されます。

gwserv

 

gwhost を使用する場合は、これを設定します。そのゲートウェイで使用されるポートを指定できます。指定しない場合、アプリケーションサーバーのゲートウェイのポートが使用されます。サービス名 sapgwXXX を解決するために、オペレーティングシステムのネットワークレイヤーは etc/services でルックアップを実行します。シンボリックサービス名の代わりにポート番号を使用する場合、ルックアップはなく、追加のエントリーは必要ありません。

r3name

 

SAP システムのシステム ID。負荷分散接続の必須プロパティー。

group

 

SAP アプリケーションサーバーのグループ、負荷分散接続の必須プロパティー

network

LAN

パフォーマンスを最適化するには、JCo とターゲットシステム間のネットワーク品質に応じてこの値を設定します。有効な値は LAN または WAN です (これは高速シリアル化にのみ関連します)。WAN は低速ですが、より効率的な圧縮アルゴリズムを使用し、さらなる圧縮オプションのためのデータ分析を行います。LAN は、非常に高速な圧縮アルゴリズムを使用し、基本的なデータ分析のみを行います。LAN オプションを設定すると、圧縮率は効率的とは言えませんが、ネットワーク転送時間にそれほど多くの時間はかからないと考えられています。デフォルト設定は LAN です。

serializationFormat

rowBased

シリアル化の形式。rowBased (デフォルト) または columnBased (高速シリアル化) にすることができます。

接続プールのオプション

次の表に、SAP 宛先データストアで宛先を設定するための 接続プール オプションを示します。

名前

デフォルト値

説明

peakLimit

0

宛先の同時にアクティブなアウトバウンド接続の最大数。値を 0 にすると、無制限の数のアクティブな接続が許可されます。それ以外の場合は、poolCapacity に自動的に増加します。設定されている場合のデフォルト設定は、poolCapacity の値です。poolCapacity が指定されていない場合、デフォルトは 0 (無制限) です。

poolCapacity

1

宛先によって開いたままのアイドル状態のアウトバウンド接続の最大数。値が 0 の場合は、接続プールがないことを意味します (デフォルトは 1です)。

expirationTime

 

宛先によって内部的に保持されている空き接続の最小時間 (ミリ秒単位) を開いたままにする必要があります。

expirationPeriod

 

宛先が解放された接続の有効期限をチェックするまでのミリ秒単位の期間。

maxGetTime

 

アプリケーションによって最大許容接続数がすでに割り当てられている場合に、接続を待機する最大時間 (ミリ秒単位)。

安全なネットワーク接続オプション

次の表に、SAP 宛先データストアで宛先を設定するための セキュアなネットワーク オプションを示します。

名前

デフォルト値

説明

sncMode

 

セキュアなネットワーク接続 (SNC) モード、0 (オフ) または 1 (オン)

sncPartnername

 

SNC パートナー、例: p:CN=R3, O=XYZ-INC, C=EN

sncQop

 

セキュリティーの SNC レベル: 1 ~ 9

sncMyname

 

独自の SNC 名。環境設定をオーバーライドします

sncLibrary

 

SNC サービスを提供するライブラリーへのパス

リポジトリーオプション

次の表に、SAP 宛先データストアで宛先を設定するための リポジトリー オプションを示します。

名前

デフォルト値

説明

repositoryDest

 

リポジトリーとして使用する宛先を指定します。

repositoryUser

 

これは、リポジトリーの宛先が定義されていない場合に、リポジトリー呼び出しのユーザーを定義します。これにより、リポジトリーの検索に別のユーザーを使用できます。

repositoryPasswd

 

リポジトリーユーザーのパスワード。リポジトリーユーザーを使用する場合は必須です。

repositorySnc

 

(オプション) この宛先に SNC が使用されている場合、このプロパティーが 0 に設定されていれば、リポジトリー接続に対して SNC をオフにすることができます。デフォルト設定はjco.client.snc_mode の値です。特殊な場合のみ。

repositoryRoundtripOptimization

 

RFC_METADATA_GET API を有効にすると、リポジトリーデータが 1 回の往復で提供されます。

1
ABAP システムで RFC_METADATA_GET の使用を有効にします。
0
ABAP システムで RFC_METADATA_GET を無効化します。

プロパティーが設定されていない場合、宛先は最初にリモート呼び出しを実行して、RFC_METADATA_GET が使用可能かどうかを確認します。利用可能な場合、宛先がそれを使用します。

注記

リポジトリーがすでに初期化されている場合 (他の宛先で使用されている場合など)、このプロパティーは効果がありません。通常、このプロパティーは ABAP システムに関連しており、同じ ABAP システムを指すすべての宛先で同じ値を持つ必要があります。バックエンドの前提条件は、ノート 1456826 を参照してください。

トレース設定オプション

次の表に、SAP 宛先データストアで宛先を設定するための トレース設定 オプションを示します。

名前

デフォルト値

説明

trace

 

RFC トレースを有効/無効にする (0 または 1)

cpicTrace

 

CPIC トレースを有効/無効にする [0..3]

290.6.3. サーバー設定

概要

サーバーの設定は、SAP コンポーネントの serverDataStore プロパティーで維持されます。このマップの各エントリーは、SAP インスタンスからの個別のインバウンド接続を設定します。各エントリーのキーはアウトバウンド接続の名前であり、URI 形式のセクションで説明されているように、サーバーエンドポイント URI の serverName コンポーネントで使用されます。

各エントリーの値は、インバウンド SAP 接続の設定を定義する サーバーデータ設定オブジェクトorg.fusesource.camel.component.sap.model.rfc.impl.ServerDataImpl です。

例: サーバー設定

次の Blueprint XML コードは、名前が quickstartServer のサンプルサーバー設定を作成する方法を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<blueprint ... >
    ...
    <!-- Configures the Inbound and Outbound SAP Connections -->
    <bean id="sap-configuration"
        class="org.fusesource.camel.component.sap.SapConnectionConfiguration">
        <property name="destinationDataStore">
            <map>
                <entry key="quickstartDest" value-ref="quickstartDestinationData" />
            </map>
        </property>
        <property name="serverDataStore">
            <map>
                <entry key="quickstartServer" value-ref="quickstartServerData" />
            </map>
        </property>
    </bean>

    <!-- Configures an Outbound SAP Connection -->
    <!-- *** Please enter the connection property values for your environment *** -->
    <bean id="quickstartDestinationData"
        class="org.fusesource.camel.component.sap.model.rfc.impl.DestinationDataImpl">
        <property name="ashost" value="example.com" />
        <property name="sysnr" value="00" />
        <property name="client" value="000" />
        <property name="user" value="username" />
        <property name="passwd" value="passowrd" />
        <property name="lang" value="en" />
    </bean>

    <!-- Configures an Inbound SAP Connection -->
    <!-- *** Please enter the connection property values for your environment ** -->
    <bean id="quickstartServerData"
        class="org.fusesource.camel.component.sap.model.rfc.impl.ServerDataImpl">
        <property name="gwhost" value="example.com" />
        <property name="gwserv" value="3300" />
        <!-- Do not change the following property values -->
        <property name="progid" value="QUICKSTART" />
        <property name="repositoryDestination" value="quickstartDest" />
        <property name="connectionCount" value="2" />
    </bean>
</blueprint>

この例では、サーバーがリモート SAP インスタンスからメタデータを取得するために使用する宛先接続である quickstartDest も設定する方法に注目してください。この宛先は、repositoryDestination オプションを介してサーバーデータで設定されます。このオプションを設定しない場合は、代わりにローカルメタデータリポジトリーを作成する必要があります (「リポジトリーの設定」 を参照)。

たとえば、前述の Blueprint XML ファイルに示されているように宛先を設定した後、次の URI を使用して、呼び出し元のクライアントからの BAPI_FLCUST_GETLIST リモート関数呼び出しを処理できます。

sap-srfc-server:quickstartServer:BAPI_FLCUST_GETLIST

必須オプション

サーバーデータ設定オブジェクトに必要なオプションは次のとおりです。

名前

デフォルト値

説明

gwhost

 

サーバー接続を登録するゲートウェイホスト。

gwserv

 

登録を行うことができるポートであるゲートウェイサービス。サービス名 sapgwXXX を解決するために、オペレーティングシステムのネットワーク層は etc/services でルックアップを実行します。シンボリックサービス名の代わりにポート番号を使用する場合、ルックアップはなく、追加のエントリーは必要ありません。

progid

 

登録が行われたプログラム ID。ゲートウェイおよび ABAP システムの宛先で識別子として機能します。

repositoryDestination

 

リモート SAP サーバーでホストされているメタデータリポジトリーから、メタデータを取得するためにサーバーが使用できる宛先名を指定します。

connectionCount

 

ゲートウェイに登録する接続の数。

安全なネットワーク接続オプション

サーバーデータ設定オブジェクトの安全なネットワーク接続オプションは次のとおりです。

名前

デフォルト値

説明

sncMode

 

セキュアなネットワーク接続 (SNC) モード、0 (オフ) または 1 (オン)

sncQop

 

セキュリティーの SNC レベル、1 ~ 9

sncMyname

 

サーバーの SNC 名。デフォルトの SNC 名を上書きします。通常、p:CN=JCoServer, O=ACompany, C=EN のようなものです。

sncLib

 

SNC サービスを提供するライブラリーへのパス。このプロパティーが指定されていない場合は、代わりに jco.middleware.snc_lib プロパティーの値が使用されます。

その他のオプション

サーバーデータ設定オブジェクトのその他のオプションは次のとおりです。

名前

デフォルト値

説明

saprouter

 

その ABAP システムのゲートウェイでサーバーを登録するときに、ファイアウォールによって保護されているため、SAProuter を介してのみアクセスできるシステムに使用する SAP ルーター文字列。一般的なルーター文字列は /H/firewall.hostname/H/ です。

maxStartupDelay

 

失敗した場合の 2 回の起動試行間の最大時間 (秒単位)。最初は、起動に失敗するたびに待機時間が 1 秒から 2 倍になり、最大値に達するかサーバーが正常に起動できるようになります。

trace

 

RFC トレースを有効/無効にする (0 または 1)

workerThreadCount

 

サーバー接続で使用されるスレッドの最大数。設定されていない場合、connectionCount の値が workerThreadCount として使用されます。スレッドの最大数は 99 を超えることはできません。

workerThreadMinCount

 

サーバー接続で使用されるスレッドの最小数。設定されていない場合、connectionCount の値が workerThreadMinCount として使用されます。

290.6.4. リポジトリーの設定

概要

リポジトリーの設定は、SAP コンポーネントの repositoryDataStore プロパティーで維持されます。このマップの各エントリーは、個別のリポジトリーを設定します。各エントリーのキーはリポジトリーの名前であり、このキーはこのリポジトリーが接続されているサーバーの名前にも対応しています。

各エントリーの値は、メタデータリポジトリーのコンテンツを定義するリポジトリーデータ設定オブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RepositoryDataImpl です。リポジトリーデータオブジェクトは、機能テンプレート設定オブジェクト org.fuesource.camel.component.sap.model.rfc.impl.FunctionTemplateImpl のマップです。このマップの各エントリーは汎用モジュールのインタフェースを指定し、各エントリーのキーは指定された汎用モジュールの名前です。

リポジトリーデータの例

次のコードは、メタデータリポジトリーを設定する簡単な例を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<blueprint ... >
    ...
    <!-- Configures the sap-srfc-server component -->
    <bean id="sap-configuration"
        class="org.fusesource.camel.component.sap.SapConnectionConfiguration">
        <property name="repositoryDataStore">
            <map>
                <entry key="nplServer" value-ref="nplRepositoryData" />
            </map>
        </property>
    </bean>

    <!-- Configures a metadata Repository -->
    <bean id="nplRepositoryData"
        class="org.fusesource.camel.component.sap.model.rfc.impl.RepositoryDataImpl">
        <property name="functionTemplates">
            <map>
                <entry key="BOOK_FLIGHT" value-ref="bookFlightFunctionTemplate" />
            </map>
        </property>
    </bean>
    ...
</blueprint>

関数テンプレートのプロパティー

汎用モジュールのインタフェースは、RFC コールでデータが汎用モジュールとの間でやり取りされる 4 つのパラメーターリストで構成されています。各パラメーターリストは 1 つ以上のフィールドで構成され、それぞれが RFC コールで転送される名前付きパラメーターです。次のパラメーターリストと例外リストがサポートされています。

  • インポートパラメーターリスト には、RFC コールで汎用モジュールに送信されるパラメーター値が含まれています。
  • エクスポートパラメーターリスト には、RFC コールで汎用モジュールによって返されるパラメーター値が含まれています。
  • 変更パラメーター一覧 には、RFC コールで汎用モジュールとの間で送受信されるパラメーター値が含まれています。
  • テーブルパラメーター一覧 には、RFC コールで汎用モジュールとの間で送受信される内部テーブル値が含まれています。
  • 汎用モジュールのインタフェースは、モジュールが RFC コールで呼び出されたときに発生する可能性のある ABAP 例外の 例外リスト からも構成されます。

関数テンプレートは、関数インターフェイスの各パラメーターリスト内のパラメーターの名前と型、および関数によって出力される ABAP 例外を記述します。関数テンプレートオブジェクトは、次の表に示すように、メタデータオブジェクトの 5 つのプロパティーリストを保持します。

プロパティー

説明

importParameterList

リストフィールドメタデータオブジェクトのリスト、org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl。汎用モジュールへの RFC 呼び出しで送信されるパラメーターを指定します。

changingParameterList

リストフィールドメタデータオブジェクトのリスト、org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl。汎用モジュールとの間の RFC 呼び出しで送受信されるパラメーターを指定します。

exportParameterList

リストフィールドメタデータオブジェクトのリスト、org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl。汎用モジュールからの RFC 呼び出しで返されるパラメーターを指定します。

tableParameterList

リストフィールドメタデータオブジェクトのリスト、org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl。汎用モジュールとの間の RFC 呼び出しで送受信されるテーブルパラメーターを指定します。

exceptionList

ABAP 例外メタデータオブジェクトのリスト、org.fusesource.camel.component.sap.model.rfc.impl.AbapExceptionImpl。汎用モジュールの RFC 呼び出しで潜在的に発生する ABAP 例外を指定します。

関数テンプレートの例

次の例は、関数テンプレートを設定する方法の概要を示しています。

<bean id="bookFlightFunctionTemplate"
    class="org.fusesource.camel.component.sap.model.rfc.impl.FunctionTemplateImpl">
    <property name="importParameterList">
        <list>
            ...
        </list>
    </property>
    <property name="changingParameterList">
        <list>
            ...
        </list>
    </property>
    <property name="exportParameterList">
        <list>
            ...
        </list>
    </property>
    <property name="tableParameterList">
        <list>
            ...
        </list>
    </property>
    <property name="exceptionList">
        <list>
            ...
        </list>
    </property>
</bean>

リストフィールドのメタデータプロパティー

リストフィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl は、パラメーターリスト内のフィールドの名前とタイプを指定します。基本パラメーターフィールド (CHARDATEBCDTIMEBYTENUMFLOATINTINT1INT2DECF16DECF34STRINGXSTRING) の場合、リストフィールドメタデータオブジェクトに設定できる設定プロパティーを次の表に示します。

名前

デフォルト値

説明

name

-

パラメーターフィールドの名前。

type

-

フィールドのパラメータータイプ。

byteLength

-

非 Unicode レイアウトのバイト単位のフィールド長。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。

unicodeByteLength

-

Unicode レイアウトのバイト単位のフィールド長。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。

decimals

0

フィールド値の小数点以下の桁数。パラメータータイプ BCD および FLOAT にのみ必要です。「RFC のメッセージボディー」 を参照してください。

任意

false

true の場合、フィールドはオプションであり、RFC 呼び出しで設定する必要はありません

注記

すべての基本パラメーターフィールドでは、フィールドメタデータオブジェクトで nametypebyteLength、および unicodeByteLength プロパティーを指定する必要があります。さらに、BCDFLOATDECF16、および DECF34 フィールドでは、フィールドメタデータオブジェクトで decimal プロパティーを指定する必要があります。

タイプ TABLE または STRUCTURE の複雑なパラメーターフィールドの場合、次の表に、リストフィールドメタデータオブジェクトに設定できる設定プロパティーを示します。

名前

デフォルト値

説明

name

-

パラメーターフィールドの名前

type

-

フィールドのパラメータータイプ

recordMetaData

-

構造またはテーブルのメタデータ。レコードメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl が渡され、構造またはテーブル行のフィールドが指定されます。

任意

false

true の場合、フィールドはオプションであり、RFC 呼び出しで設定する必要はありません

注記

すべての複合パラメーターフィールドでは、フィールドメタデータオブジェクトで nametype、および recordMetaData プロパティーを指定する必要があります。recordMetaData プロパティーの値は、レコードフィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl で あり、ネストされた構造の構造またはテーブル行の構造を指定します。

基本リストフィールドのメタデータの例

次のメタデータ設定では、オプションの TICKET_PRICE という名前の小数点以下 2 桁の 24 桁のパックされた BCD 数値パラメーターを指定します。

<bean class="org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMetaDataImpl">
    <property name="name" value="TICKET_PRICE" />
    <property name="type" value="BCD" />
    <property name="byteLength" value="12" />
    <property name="unicodeByteLength" value="24" />
    <property name="decimals" value="2" />
    <property name="optional" value="true" />
</bean>

複雑なリストフィールドのメタデータの例

次のメタデータ設定では、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>

レコードのメタデータのプロパティー

レコードメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl は、ネストされた STRUCTURE または TABLE パラメーターの行の名前と内容を指定します。レコードメタデータオブジェクトは、レコードフィールドメタデータオブジェクトのリスト org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl を維持します。これは、ネストされた構造体またはテーブル行に存在するパラメーターを指定します。

次の表に、レコードメタデータオブジェクトに設定できる設定プロパティーを示します。

名前

デフォルト値

説明

name

-

レコードの名前。

recordFieldMetaData

-

レコードフィールドメタデータオブジェクトのリスト、org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl。構造体に含まれるフィールドを指定します。

注記

レコードメタデータオブジェクトのすべてのプロパティーが必要です。

レコードメタデータの例

次の例は、レコードメタデータオブジェクトを設定する方法を示しています。

<bean id="connectionInfo"
        class="org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl">
    <property name="name" value="CONNECTION_INFO" />
    <property name="recordFieldMetaData">
        <list>
            ...
        </list>
    </property>
</bean>

レコードフィールドのメタデータプロパティー

レコードフィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl は、構造体でパラメーターフィールドの名前とタイプを指定します。

レコードフィールドメタデータオブジェクトは、ネストされた構造またはテーブル行内の個々のフィールド位置のオフセットを追加で指定する必要があることを除いて、パラメーターフィールドメタデータオブジェクトに似ています。個々のフィールドの非 Unicode オフセットと Unicode オフセットは、構造体または行内の前のフィールドの非 Unicode バイト長と Unicode バイト長の合計から計算して指定する必要があります。

注記

ネストされた構造体およびテーブル行のフィールドのオフセットを適切に指定しないと、基礎となる JCo および ABAP ランタイムのパラメーターのフィールドストレージが重複し、RFC コールでの値の適切な転送が妨げられるます。

基本パラメーターフィールド (CHARDATEBCDTIMEBYTENUMFLOATINTINT1INT2DECF16DECF34STRINGXSTRING) の場合、レコードフィールドメタデータオブジェクトに設定できる設定プロパティーを次の表に示します。

名前

デフォルト値

説明

name

-

パラメーターフィールドの名前

type

-

フィールドのパラメータータイプ

byteLength

-

非 Unicode レイアウトのバイト単位のフィールド長。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。

unicodeByteLength

-

Unicode レイアウトのバイト単位のフィールド長。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。

byteOffset

-

非 Unicode レイアウトのフィールドオフセット (バイト単位)。このオフセットは、囲んでいる構造内のフィールドのバイト位置です。

unicodeByteOffset

-

Unicode レイアウトのフィールドオフセット (バイト単位)。このオフセットは、囲んでいる構造内のフィールドのバイト位置です。

decimals

0

フィールド値の小数点以下の桁数。パラメータータイプ BCD および FLOAT にのみ必要です。「RFC のメッセージボディー」 を参照してください。

タイプ TABLE または STRUCTURE の複雑なパラメーターフィールドの場合、次の表に、レコードフィールドメタデータオブジェクトに設定できる設定プロパティーを示します。

名前

デフォルト値

説明

name

-

パラメーターフィールドの名前

type

-

フィールドのパラメータータイプ

byteOffset

-

非 Unicode レイアウトのフィールドオフセット (バイト単位)。このオフセットは、囲んでいる構造内のフィールドのバイト位置です。

unicodeByteOffset

-

Unicode レイアウトのフィールドオフセット (バイト単位)。このオフセットは、囲んでいる構造内のフィールドのバイト位置です。

recordMetaData

-

構造またはテーブルのメタデータ。レコードメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl が渡され、構造またはテーブル行のフィールドが指定されます。

基本レコードフィールドのメタデータの例

次のメタデータ設定は、ARRDATE という名前の DATE フィールドパラメーターを指定します。これは、非 Unicode レイアウトの場合は囲んでいる構造体の 85 バイト、Unicode レイアウトの場合は囲んでいる構造体の 170 バイトに配置されています。

<bean    class="org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl">
    <property name="name" value="ARRDATE" />
    <property name="type" value="DATE" />
    <property name="byteLength" value="8" />
    <property name="unicodeByteLength" value="16" />
    <property name="byteOffset" value="85" />
    <property name="unicodeByteOffset" value="170" />
</bean>

複雑なレコードフィールドのメタデータの例

次のメタデータ設定は、flightInfo レコードメタデータオブジェクトによって指定された構造を持つ FLTINFO という名前の STRUCTURE フィールドパラメーターを指定します。パラメーターは、非 Unicode レイアウトと Unicode レイアウトの両方の場合に、囲んでいる構造の先頭に配置されます。

<bean    class="org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl">
    <property name="name" value="FLTINFO" />
    <property name="type" value="STRUCTURE" />
    <property name="byteOffset" value="0" />
    <property name="unicodeByteOffset" value="0" />
    <property name="recordMetaData" ref="flightInfo" />
</bean>
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.