注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

SLT(SAP Landscape Transformation Replication Server)を設定する

SAP Landscape Transformation Replication Server(SLT)は、データベーストリガーを使用して変更データキャプチャ(CDC)を実行するデータレプリケーションツールです。これにより、ソース SAP システムからターゲットシステムへ効率的にデータをレプリケーションできます。

SLT と Palantir Foundry Connector 2.0 for SAP Applications(「コネクター」)を連携するように設定すると、SAP から Foundry への CDC レプリケーションが可能になります。

このセットアップでは、専用のコンテキスト(キューエイリアス)を持つ SLT 設定を作成します。

SAP テーブルを Foundry にレプリケーションするには、オブジェクトごとに Foundry データセット同期を設定します。データセット同期を設定すると、SLT が対象の SAP オブジェクトにトリガーを設定し、SAP 内のオブジェクトへの変更がキャプチャされ、ODP(Operational Data Provisioning)シナリオ用に SLT サーバーのキューに保存されます。Foundry は事前に設定したスケジュールでこのキューをポーリングし、これらの変更を Foundry データセットに同期します。バージョン 2.34(SP34)以降では、コネクターは OData 経由の ODP ベースのデータ抽出 ↗を使用して ODP とやり取りします。

SAP オブジェクトに対して Foundry データセット同期を初めて設定すると、SLT はフルロードを実行します。以降のトリガーでは、オブジェクトの変更のみを取得します。SLT キューのパージは SLT が管理します。

また、CDC モード(インクリメンタル(差分連携))で動作させる代わりに、特定の SAP オブジェクトのフルロード(スナップショット)を SLT が実行するように Foundry データセット同期を設定することもできます。

前提条件

このガイドでは、コネクターがインスタンスにすでにインストールされていることを前提としています。コネクターのインストール手順を確認できます。

ODP を直接使用する(コネクターのバージョン 2.33(SP33)以前)

  • コネクターのインストールには SAP_BASIS(SAP NetWeaver と SAP S/4HANA の両方のシステムに適用される技術コンポーネントのバージョン)7.4 SP14 以降
  • SAP SLT およびソースシステムには DMIS 2011_1_730 コンポーネント SP15 以降
  • すべての Mass Transfer ID(MTID)で 1:N レプリケーションを許可する SAP SLT 設定

次の SAP ノートが SLT システムに適用されていることを確認してください。

  • SAP OSS ノート 1660374 – フェッチの待機時間が不十分なためタイムアウトが発生する
  • SAP OSS ノート 2215583 – ODQ からの抽出中にデータ内容が移動したことによるエラー

次の SAP ノートを読み、該当する場合は関連する手順を実施したことを確認してください。

  • SAP OSS ノート 2697016 – CNV_IUUC_DB_CONN131 でテーブルをレプリケーションできない - ほかの設定でトリガー設定が異なる - SAP Landscape Transformation Replication Server。
  • SAP OSS ノート 2787584 - ユーザーに SAP_ALL が付与されているにもかかわらず LTRC で認可の問題が発生する - SLT
  • SAP OSS ノート 3032108 - 1:N レプリケーションはサポートされていますか? - SLT

SAP SLT シナリオでは、古い DMIS バージョンの場合、テーブルに対して 1:4 の登録(最大4コンシューマー)が可能です。DMIS 2018 SP4 以降では、SAP の新しい CDC 機能が有効になり、許可されるコンシューマー数の制限がなくなりました。

OData 経由で ODP を使用する(コネクターのバージョン 2.34(SP34)以降)

コネクターのバージョン 2.34 では PALODATA コンポーネントが導入され、SAP が推奨する ↗ OData API を使用して同期を設定できます。

OData が比較的新しい技術であるため、このコンポーネントでは SAP_BASIS バージョンの前提条件が 7.50 SP09 以降に引き上げられています。 また、次の SAP ノートを読み、該当する場合は適用したことを確認してください。

  • SAP OSS ノート 2854759 - OData V2 経由の抽出時の日付フィールドの処理
  • SAP OSS ノート 2878969 - ODP 抽出の ODATA 関数インポート名が切り詰められる
  • SAP OSS ノート 3062232 - ODP ODATA V2 - ポインターの最後の skiptoken が deltatoken を返さない
  • SAP OSS ノート 3023446 - oData version2 を使用した ODP: デルタリクエストで odata.maxpagesize が無視される
  • SAP OSS ノート 2888122 - ソースシステムの最新のデルタリクエストが削除されると ODATA ODP デルタを実行できない

リソースサイジング

コネクターを SLT と組み合わせて使用すると、SAP システムのリソースを大量に消費する場合があります。そのため、レプリケーションを開始する前に、SLT に関する SAP 公式のサイジングドキュメントを確認してください。SAP 環境からのデータ抽出を開始する前に、SLT サーバーに空きバックグラウンドプロセスおよび空きダイアログプロセスがあることを確認してください(SLT とコネクターが異なるサーバーにある場合は、コネクターがインストールされている SAP アプリケーションサーバーでも確認してください)。

  • トランザクション SM50 に移動し、空きバックグラウンドプロセスおよび空きダイアログプロセスがあるかを確認します。空きプロセスがない場合、Foundry へのデータ転送に失敗します。
  • システムのサイジングに関する詳しいガイダンスについては、SAP 公式の SLT サイジングガイド ↗を参照してください。

SLT の設定

ステップ2a と2b は、いずれか一方のみが必要です。ステップ2a に従い、Post-Installation Wizard を使用することを推奨します。ステップ3と4は、リモート SLT シナリオの場合にのみ必要です。

1. ソースシステムへの RFC 宛先接続を作成する

SLT が SAP ソースシステムからデータをレプリケーションするために使用する Remote Function Call (RFC) 接続を作成するには、RFC 接続を作成するを参照してください。

2a. Post-Installation Wizard を使用してソースシステムの SLT 設定を作成する

コネクターの Post-Installation Wizard を使用して SLT 設定を作成するには、トランザクションコード /n/PALANTIR/POST_INST を使用し、ステップ7の SLT 設定を作成のみを有効にします。SLT 設定のパラメーターは次のとおりです。

パラメーター説明
コンテキスト名一意の設定名
コンテキストの説明SAP トランザクション LTRC および Foundry でユーザーに表示されるコンテキストの説明
データ転送ジョブデータ転送ジョブの数
初期読み込みジョブ初期読み込み用のジョブの数
計算ジョブ初期読み込み範囲の計算用の計算ジョブの数
権限グループデフォルトでは権限グループなし
ソース RFC 宛先論理宛先 - ソースシステムの RFC 宛先名
単一クライアントから読み取り単一クライアントからデータを読み取る場合は、このオプションを選択します
複数使用を許可複数使用を許可する場合は、このオプションを選択します

2b. SLT ツールを使用してソースシステムの SLT 設定を作成する

ステップ2a と2b は、いずれか一方のみが必要です。

  1. SLT 設定を作成するには、トランザクションコード LTRC を使用します。
  2. 新しい設定を作成します。
  3. 一般データセクションで、構成名と説明を入力します。
  4. ソースシステムセクションで、次の操作を行います。
    • RFC 接続を選択します。
    • 先ほど作成した RFC 宛先接続(この例では SAP_SOURCE)を選択します。RFC 宛先という名前ですが、この設定ではソースシステムの接続を選択します。
    • 複数使用を許可を有効にします。

    この設定を有効にすると、複数のフォロワーがソースシステムからレプリケーションされたデータを取得できるようになります。この設定は、設定の作成後には変更できません。フォロワーが1つの場合、複数使用を許可は影響しないため、最初の設定時に有効にすることを推奨します。後から複数使用を有効にするには、設定を削除して新しい設定を作成する必要があります。

    • 本番環境では、単一クライアントから読み取りを有効にします。使用されるクライアント番号は、RFC 接続で定義されている番号です。この設定により、本番データのみが Foundry にレプリケーションされるようになります。既存の SLT 環境では、すべての設定で同じ設定値を使用する必要があります。そのため、SAP OSS Note 2372636 - Cannot replicate data when different trigger options exist - SLT を確認してください。
  5. ターゲットシステムセクションで、次の操作を行います。
    • RFC 接続を選択します。
    • シナリオで Operational Data Provisioning (ODP) を選択します。SAP_BASIS のサポートパッケージレベルが高い場合、このシナリオは RFC 接続ではなくその他の下に表示されます。
    • RFC 宛先を NONE に設定します。
    • キューエイリアスとして任意のエイリアス名を設定します。ソースシステムの SAP システムID (SID) がわかるキュー名にすることを推奨します。このキューエイリアス名は、後で Foundry データセットの同期を定義するときに、コンテキストとして使用されます。
  6. データ転送設定セクションで、SAP SLT サーバー上で実行するデータ転送ジョブ、初期読み込みジョブ、データ計算ジョブの数を設定します。複雑なシナリオに必要なジョブ数については、SLT サイジングガイド ↗を参照してください。
  7. 内容を確認し、接続を作成します。
  8. トランザクションコード LTRC の SLT メイン画面に戻り、ODP シナリオ用の BAdI 実装が SLT システムでアクティブになっていることを確認してください。設定を確認するには、設定名を選択して設定を開き、エキスパート機能タブをクリックします。BAdI 実装がアクティブになっていることを確認してください。アクティブになっていない場合、ODP は正常に機能しません。
  9. メインメニューから SA38 トランザクションに移動します。SAP OSS Note 1660374 - Fetch does not wait long enough; timeout に記載されているとおり、プログラム SAP_RSADMIN_MAINTAIN を実行してパラメーター RODPS_FETCH_TIMEOUT を設定します。値は秒単位で指定します。

3. コネクターへの RFC 宛先接続を作成する(リモート SLT シナリオ)

コネクターは、要件を満たす別の SAP インスタンスにデプロイできます。この場合、コネクターは RFC 接続を介して SLT サーバーと通信します。そのため、通信チャネルを有効にするには RFC 接続が必要です。

セットアップ手順については、RFC 接続ガイドを参照してください。

4. SAP SLT を使用するようにコネクターを設定する(リモート SLT シナリオ)

SLT とコネクターが別々のインスタンスにある場合は、次の追加設定手順に従ってください。

  • トランザクション /n/PALANTIR/PARAM を開きます。
  • 次のパラメーター値を入力します。
    • パラメーターID: SLT
    • パラメーター名: RFC_CONFIGURATION
    • パラメーター値: RFC configuration name created in the beginning of this section (eg, SLT_SERVER_RFC)

設定テーブルにこれらのパラメーターが設定されていない場合、デフォルトは次の値です。

  • timestamp: OFF
  • fetchOption: XML
  • pageSize: 50000

大規模テーブルの同期におけるパフォーマンス上の考慮事項

コネクターは、SAP の ODP フレームワークを使用してデータを Foundry にレプリケーションします。ODP は、ソースシステムから ODP キュー(テーブル名 ODQDATA_F)にデータをレプリケーションします。データは ODQ にステージングされ、ODP キューにデータが転送されると、コネクターは要求されたデータをページ単位で /PALANTIR/PAG_01 テーブルと /PALANTIR/PAG_02 テーブルに格納し始めます。すべてのページが Foundry に正常に転送されると、Foundry はテーブルを整理するためにクローズリクエストを送信します。このクローズリクエストにより、/PALANTIR/PAG* テーブルのエントリーが削除されます。

初期同期(履歴同期や一括同期など)を実行する場合は、データベースのサイジングを見直し、必要な容量を慎重に検討してください。容量が不足すると、SLT レプリケーションジョブや Foundry への転送に失敗する可能性があるため、まずレプリケーションするテーブルに基づいてデータベースのサイジングを準備してください。

SAP の既知の問題に対処するためのパラメーター

SAP の既知の問題への対処に使用するパラメーターが、ほかに2個あります。

問題:SAP SLT サーバーが日付/時刻フィールドの正確なフィールド長を提供しない

問題:SAP SLT サーバーは、日付/時刻フィールドの正確なフィールド長を提供しません。この問題は SAP Note で修正されています。ただし、データ型の長さに関する問題が発生した場合は、SAP Note を適用するまで、次のパラメーターを設定できます。

  • パラメーターID = SLT
  • パラメーター名 = SLT_DATA_XXX(XXX はフィールドの技術名を指します)
  • パラメーター値 = Length of the data type

SAP_BASIS の以前のサポートパッケージ (SP 14) では、SAP によって DATS フィールドが16文字に設定されていました。しかし、DATS フィールドは8文字(YYYYMMDD)である必要があります。TIMS フィールドも SAP によって16文字に設定されていましたが、TIMS データは6文字(HHMMSS)です。

この問題に対処するには、次のパラメーターを設定します。

パラメーターIDパラメーター名パラメーター値
SLTSLT_DATA_DATS8
SLTSLT_DATA_TIMS6

問題:小数点以下の桁数が3桁ではない SAP QUAN データ型

問題:SAP には、数量と金額に使用する特定のデータ型があります。数量データ型 QUAN は、デフォルトで小数点以下3桁です。コネクターが QUAN データ型を含むデータを取得しようとすると、これらの QUAN データ型に対して小数点以下3桁が自動的に作成されます。ただし、QUAN データ型を含む SAP テーブルの一部では、小数点以下の桁数が異なっていても、小数点以下3桁として Foundry に送信されます。

この問題に対処するには、次のパラメーターを使用します。

  • パラメーターID = SLT
  • パラメーター名 = SLT_DTYPE_XXX(XXX はフィールドのデータ型を指します)
  • パラメーター値 = Data Type Name which will be taken Into account

QUAN データ型を Decimal データ型に変更するには、次のようにパラメーターを設定します。

パラメーターIDパラメーター名パラメーター値
SLTSLT_DTYPE_QUANDEC