140.2.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 Meta-Data 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>
Copy to Clipboard Toggle word wrap

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

関数モジュールのインターフェイスは、データが RFC 呼び出しの function モジュールに転送される 4 つのパラメーター一覧で設定されます。各パラメーター一覧は 1 つ以上のフィールドで設定され、各フィールドは RFC 呼び出しで転送される名前付きパラメーターです。以下のパラメーター一覧および例外リストがサポートされます。
  • import パラメーター一覧 には、RFC 呼び出しの関数モジュールに送信されるパラメーター値が含まれます。
  • export パラメーター一覧 には、RFC 呼び出しの function モジュールによって返されるパラメーター値が含まれます。
  • 変更パラメーター一覧 には、RFC 呼び出しの関数モジュールとの間で送受信されるパラメーター値が含まれます。
  • table パラメーター一覧 には、RFC 呼び出しの関数モジュールに送信され、返される内部テーブル値が含まれます。
  • 関数モジュールのインターフェイスは、RFC 呼び出しでモジュールが呼び出されたときに発生する可能性がある ABAP 例外の例外 リスト で設定されます。
関数テンプレートは、関数インターフェイスの各パラメーター一覧のパラメーターの名前とタイプ、関数によって出力される ABAP 例外を記述します。関数テンプレートオブジェクトは、以下の表で説明されているように、メタデータオブジェクトの 5 つのプロパティーリストを維持します。
Expand
プロパティー 説明
importParameterList list フィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl の一覧。関数モジュールへの RFC 呼び出しで送信されるパラメーターを指定します。
changingParameterList list フィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl の一覧。関数モジュールとの間で RFC 呼び出しで送受信されるパラメーターを指定します。
exportParameterList list フィールドメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl の一覧。関数モジュールから RFC 呼び出しで返されるパラメーターを指定します。
tableParameterList list フィールドメタデータオブジェクト 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>
Copy to Clipboard Toggle word wrap

フィールドメタデータプロパティーを一覧表示します。

list フィールド meta-data object org.fusesource.camel.component.sap.model.rfc.impl.ListFieldMeataDataImpl は、パラメーター一覧のフィールドの名前とタイプを指定します。要素的なパラメーターフィールド(CHAR, DATE, BCD, TIME, ----------|-----, splunk, splunk, splunk, splunk, splunk, splunk, ----------|-----, ----------|-----, ----------|-----, list field meta-data object: 通表は、リストフィールドの meta-data オブジェクトに設定できる設定プロパティーを示しています。BYTE NUM FLOAT INT INT1 INT2 DECF16 DECF34 STRING XSTRING
Expand
名前 デフォルト値 説明
name - パラメーターフィールドの名前。
type - フィールドのパラメータータイプ。
byteLength - Unicode 以外のレイアウトのフィールドの長さ(バイト単位)。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。
unicodeByteLength - Unicode レイアウトのフィールドの長さ(バイト単位)。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。
decimals 0 フィールド値の 10 進数数。パラメータータイプ BCD および FLOAT にのみ必要です。「RFC のメッセージボディー」 を参照してください。
optional false true の場合、フィールドはオプションであり、RFC 呼び出しで設定する必要はありません。
すべての elementary パラメーターフィールドでは、nametypebyteLength、および unicodeByteLength プロパティーを meta-data オブジェクトで指定する必要があります。さらに、BCDFLOATDECF16、および DECF34 フィールドには、meta-data オブジェクトで decimal プロパティーを指定する必要があります。
TABLE または STRUCTURE タイプの複雑なパラメーターフィールドの場合、以下の表には、list フィールド meta-data オブジェクトに設定できる設定プロパティーが記載されています。
Expand
名前 デフォルト値 説明
name - パラメーターフィールドの名前
type - フィールドのパラメータータイプ
recordMetaData - 構造またはテーブルのメタデータ。レコードメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl は、構造行またはテーブル行にフィールドを指定するために渡されます。
optional false true の場合、フィールドはオプションであり、RFC 呼び出しで設定する必要はありません。
すべての複雑なパラメーターフィールドでは、nametype および recordMetaData プロパティーをフィールドの meta-data オブジェクトに指定する必要があることに注意してください。recordMetaData プロパティーの値はレコードフィールドのメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl で、ネストされた構造またはテーブル行の構造を指定します。

elementary list field meta-data example

以下のメタデータ設定は、オプションの 24 桁のパックされた BCD 番号パラメーターと、TICKET_PRICE という名前の小数点を指定します。
<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>
Copy to Clipboard Toggle word wrap

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

以下のメタデータ設定は、TABLE レコードメタデータオブジェクトで指定された行構造を持つ CONNINFO という名前の必須パラメーターを指定します。connectionInfo
<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>
Copy to Clipboard Toggle word wrap

レコードのメタデータ属性

レコードのメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl は、ネストされた STRUCTURE または TABLE パラメーターの名前および内容を指定します。レコードの meta-data オブジェクトは、レコードフィールドのメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl の一覧を維持します。これは、ネストされた構造またはテーブル行にあるパラメーターを指定します。
以下の表は、レコードメタデータオブジェクトに設定できる設定プロパティーの一覧です。
Expand
名前 デフォルト値 説明
name - レコードの名前。
recordFieldMetaData - レコードフィールドのメタデータオブジェクトの一覧 org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl構造内に含まれるフィールドを指定します。
注記
レコードメタデータオブジェクトのすべてのプロパティーが必要です。

レコードのメタデータの例

以下の例は、レコード meta-data オブジェクトを設定する方法を示しています。
<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>
Copy to Clipboard Toggle word wrap

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

レコードフィールド meta-data オブジェクト org.fusesource.camel.component.sap.model.rfc.impl.FieldMetaDataImpl は、構造を持つパラメーターフィールドの名前およびタイプを指定します。
レコードフィールド meta-data オブジェクトはパラメーターフィールド meta-data オブジェクトと似ていますが、ネストされた構造またはテーブル行内の個別のフィールドのオフセットを追加で指定する必要があります。個々のフィールドの Unicode および Unicode オフセットは、構造または行に前述のフィールドの Unicode および Unicode バイトの長さ以外のものの合計から計算して指定する必要があります。ネストされた構造やテーブル行のフィールドのオフセットを適切に指定できないと、基礎となる JCo および ABAP ランタイムのパラメーターのフィールドストレージが重複し、RFC 呼び出しの値が適切に転送されないことに注意してください。
要素的なパラメーターフィールド(CHAR, DATE, BCD, TIME, ----------|-----, splunk, splunk, splunk, splunk, splunk, NORMAL, ----------|-----, ----------|-----, ----------|-----, …​" には、レコードフィールドの meta-data オブジェクトに設定できる設定プロパティーが記載されています。BYTE NUM FLOAT INT INT1 INT2 DECF16 DECF34 STRING XSTRING
Expand
名前 デフォルト値 説明
name - パラメーターフィールドの名前
type - フィールドのパラメータータイプ
byteLength - Unicode 以外のレイアウトのフィールドの長さ(バイト単位)。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。
unicodeByteLength - Unicode レイアウトのフィールドの長さ(バイト単位)。この値は、パラメーターのタイプによって異なります。「RFC のメッセージボディー」 を参照してください。
byteOffset - Unicode 以外のレイアウトのフィールドオフセット(バイト単位)。このオフセットは、エンクロージング構造内のフィールドのバイトロケーションです。
unicodeByteOffset - Unicode レイアウトのフィールドオフセット(バイト単位)。このオフセットは、エンクロージング構造内のフィールドのバイトロケーションです。
decimals 0 フィールド値の 10 進数数。パラメータータイプ BCD および FLOAT にのみ必要です。「RFC のメッセージボディー」 を参照してください。
TABLE または STRUCTURE タイプの複雑なパラメーターフィールドの場合、以下の表には、レコードフィールドのメタデータオブジェクトに設定できる設定プロパティーが記載されています。
Expand
名前 デフォルト値 説明
name - パラメーターフィールドの名前
type - フィールドのパラメータータイプ
byteOffset - Unicode 以外のレイアウトのフィールドオフセット(バイト単位)。このオフセットは、エンクロージング構造内のフィールドのバイトロケーションです。
unicodeByteOffset - Unicode レイアウトのフィールドオフセット(バイト単位)。このオフセットは、エンクロージング構造内のフィールドのバイトロケーションです。
recordMetaData - 構造またはテーブルのメタデータ。レコードメタデータオブジェクト org.fusesource.camel.component.sap.model.rfc.impl.RecordMetaDataImpl は、構造行またはテーブル行にフィールドを指定するために渡されます。

要素のレコードフィールドのメタデータの例

以下のメタデータ設定は、Unicode 以外のレイアウトの場合で、Unicode レイアウトの場合で 170 バイトをエンクロージング構造(Unicode レイアウトの場合)に 85 バイトに配置された DATE フィールドパラメーターを指定します。ARRDATE
<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>
Copy to Clipboard Toggle word wrap

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

以下のメタデータ設定は、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>
Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat