ABAPシステムとSAP Data Intelligence連携方法紹介

SAP Data Intelligence(以降 SAP DI)は、「データ管理」、「データ統合」と「AIの開発・運用」を統合したソリューションです。
本ブログではSAP DIのパイプラインを使用してABAPシステムとのデータ統合を行う複数連携方法について説明します。

SAP DIの詳細については、SAP Data Intelligenceで実現するエンタープライズAIをご参照ください。

本ブログの目的

SAP DIを用いてABAPシステムと連携する為に選択できる複数の方法の特徴の理解を目的としています。

前提知識

  • ABAP関連 :CDS View、SLT、ODP、汎用モジュールを聞いたことがあるレベル
  • SAP DI関連:Operatorを使用してシステム間の統合シナリオ(パイプライン)を構築する事を知っているレベル

説明の流れ

  1. ABAPシステム-SAP DI連携前提条件
  2. SAP DIのパイプライン構築概要
  3. 連携方法① 「ABAP CDS Reader」
  4. 連携方法② 「SLT Connector」
  5. 連携方法③ 「ODP Reader」
  6. 連携方法④ 「Custom ABAP Operator」
  7. 「連携方法⑤「OpenAPI Client」
  8. SAP DI新Versionリリース
  9. まとめ

ここでは、SAP DIとABAPシステムを接続する為に、ABAPシステムが満たすべき要件について説明します。ABAPシステムのどのデータソース(CDS View, Table、ODP)を対象にするかによって要件が異なるので、各々紹介します。

CDS Viewをデータソースとする際

  • SAPS/4HANA 1909 以降で利用可能
  • SAP S/4HANA Cloud 以降で利用可能

Tableをデータソースとする際

  • SLT システムでアドオン DMIS 2018 SP02 以降(SP04 以降を推奨)、または SLT システムで DMIS 2020 を使用する場合利用可能
  • SLT システムでアドオン DMIS 2011 SP17 以上を使用する場合に利用可能 (DMIS 2011 の使用は非推奨、可能な場合はDMIS 2018/DMIS 2020を推奨 )。
  • SLT を S/4HANA 1909 以降の一部として使用する場合利用可能 (S/4HANA で SLT の使用は非推奨、可能な限り DMIS 2018/DMIS 2020 の使用を推奨)

ODPをデータソースとする際

  • アドオン DMIS 2018 SP02 以上を使用する場合に利用可能
  • SAP_BW コンポーネント 7.30 以降のシステムでアドオン DMIS 2011 SP17 以降を使用する場合利用可能

ここではABAPシステムからSAP DIにデータ読み込む為の手順について説明します。
大きく2つのステップがあります。

① SAP DIとABAPシステムの接続設定
② ABAPシステムのデータをSAP DIに読み込むパイプライン開発

① SAP DIとABAPシステムの接続設定

SAP DIではConnection Managementというタイルで接続設定を行う事が可能です。

SAP DIのLaunchpadからConnection Managementを選択します。

“Create Connection”ボタン(+)をクリックします。

新規に接続先を設定するページが開かれます。このページで接続するABAPシステムの情報を入力する事で接続を確立することが出来ます。
ここで設定を行うとSAP DIのMetadata Explorerからテーブルの情報を確認する事や、Modelerでのパイプライン開発の際に読み込むデータを簡単に選択する事が可能になります。

またSAPだけでなくAWS、Azure、Google Cloud、その他のベンダーでOracleのDBや、Open SourceのMySQLやApache Kafka、他にもREST・OData形式の接続も定義して管理することが出来ます。

“Connection Type”で”ABAP”を選択します。

接続対象となるS/4 HANAのホスト名、認証情報等を設定し、”Create”ボタンを押します。

接続設定は以上になります。Connectionの一覧画面で今回設定した接続(idの値で検索可能)の”Action”ボタンから”Check Status”を実行します。以下の様にOKと表示されたらABAPシステムとの接続に成功しています。

② ABAPシステムのデータをSAP DIに読み込むパイプライン開発

SAP DIではModelerというタイルでパイプライン開発を行う事が可能です。
SAP DIのLaunchpadからModelerを選択します。

こちらがパイプラインを開発するページになります。左側にはデータの読み書きや加工を行う為のOperatorsが準備されています。
この様々な機能を有したOperatorsをドラッグ&ドロップして右側の画面上で繋げることによりパイプラインを開発していきます。

ABAPシステムからのSAP DIへデータの読み込みOperatorsだけでも複数用意されており、状況に応じてOperatorsを使い分ける必要があります。以降のパートではABAPシステムからSAP DIへのデータを読み込む各々の連携手法の特徴について紹介していきます。

まず初めに紹介するのは「ABAP CDS Reader」というOperatorを使用した連携です。
CDS Viewからデータを初期ロードまたは差分ロードでレプリケーションを実行します。
SAP DIからデータ抽出可能なCDS Viewを作成するには以下のアノテーションを追加する必要があります。
@Analytics.dataExtraction.enabled
実際の手順については、SAP Data Intelligence – SAPシステムとnon-SAPシステムのデータ連携を参照ください。
またどのCDS ViewがDIで読み込み可能な場合は標準のViewであるI_DataExtractionEnabledView上で確認できます。

2種類のデータの読み込み方法初期ロードと差分ロードについて説明します。
初期ロード
パイプライン実行時に選択したCDS Viewを全件取得する事が可能です。
差分ロード
ABAPシステムから更新されたデータをリアルタイムにSAP DIで取得する事が可能です。その際にはCDS ViewのCDC Deltaの機能を利用します。以下のアノテーションを追加する事が必要になります。
@ Analytics.dataExtraction.changeDataCapture.automatic
その他にもCDC Deltaの機能を使用するには条件があります。
・取得可能なカラムはJoinした項目のみ取得可能(Associationのカラムは取得できない)
・差分取得対象はメインのテーブル、もしくはN:1のLeft Outer joinしたテーブル
CDC Deltaの詳細は、CDS based data extraction – Part II Delta Handlingを参照ください。

2つ目に紹介するOperatorsは「SLT Connector」です。
SAP Landscape Transformation Replication Serverを通じてリモートのABAPシステムと接続しデータの読み込み(初期ロード及び差分ロード)を行います。
これにより、SAP Data Intelligenceのパイプライン内でビジネスデータの直接読み込みを可能にし、ビジネスデータとビッグデータの緊密な連携を実現します。

また連携方法①で紹介したCDS Viewによる連携が使用できないSAP Business SuiteやSAP Business Warehouse等のABAPシステムにおいてもSLT技術を使用したDMISコンポーネントをインストールする事で連携する事が可能となります。

3つ目に紹介するOperatorは「ODP Reader」を使用した方法です。
ODP(Operational Data Processing)はSAP NetWeaver または ABAP ベースのアプリケーションからのデータ抽出およびデータ複製 (デルタメカニズムを含む) のための技術インフラストラクチャを提供しています。ODPの詳細はOperational Data Provisioning (ODP) FAQを参照ください。

また「SLT Connector」と同様にCDS Viewが使用できないSAP Business SuiteやSAP Business Warehouseからの連携が可能です。
このOperatorにおいてもパイプライン起動時に1度オブジェクトのすべてのデータを取得する初期ロードと差分データを取得する差分ロードを選択可能です。

続いて紹介するOperatorは「Custom ABAP Operator」です。ABAPシステムで実装されたカスタムプログラム・汎用モジュールを呼び出し、返り値をSAP DIで受け取る事でデータの連携が可能です。

実装の詳細な手順は近日Blogを公開する予定ですのでそちらをご覧ください。(公開され次第リンクを紹介いたします。)
ここまでの「ABAP CDS Reader」,「SLT Connector」,「ODP Reader」の連携方法の場合読み込む対象(テーブル、CDS View、Object)に対して初期ロード行いデータを全件取得するか、更新されたデータのみを取得する差分ロードを行うことが出来ました。これらは大量データを一括取得する事に向いたOperatorです。

一方で「Custom ABAP Operator」ではSAP DIと連携先のABAPシステムの両方で開発を行う事で特定の条件にあうマスタデータやトランザクションデータの抽出、BAPIをよびだしてS/4データの更新などを満たす連携を行う事が出来ます。
連携するデータを詳細な条件指定より絞る事が可能なOperatorです。

最後に紹介する方法はODataを使用してAPI連携する方法です。
「OpenAPI Client」は外部の公開されているREST APIのエンドポイントに対してリクエストを送信する事が可能です。
S/4HANAでは標準Odata(RESTベースのプロトコル)形式のエンドポイントが多数提供されています。事前準備済みのエンドポイントについてはAPI Business hubを参照してください。
またABAP RESTful Application Programming Model(RAP)を使用してカスタムエンドポイントを公開する事が可能です。
これらのエンドポイントに対してリクエスト処理を送信する事でデータの連携を行う事が出来ます。またデータを読み込むだけではなくPOST処理等によってデータの更新処理を行う事も可能です。

2021年11月にSAP DIのオンプレミス版とクラウド版それぞれにおいて新しいversionがリリースされました。

上記のアップデート情報からも分かるようにメタデータから接続、パイプライン開発、管理といった様々な分野において多数の新機能が追加されました。
その中でOperatorに対してはGeneration2という新しい機能(Stateful Pipeline, Auto Restart)を使用できる第2世代Operatorの提供を開始しています。
ABAPシステムとの連携に使用できるGeneration2のOperatorには「Read Data From SAP System」というCDS ViewとSLTによるデータ連携を行えるOperatorを使用する事が可能です。
現時点においては、Generation2で提供されているOperatorの数は限定されていますが、今後数多くのOperatorが提供される予定ですので、より多くの方法によってABAPシステムとの連携を行う事が可能となるはずです。

新versionの情報は以下のBlogを参照ください。
オンプレミス版: SAP Data Intelligence – What’s New in 3.2
クラウド版:SAP Data Intelligence – What’s New in SAP DI:2110

本ブログではABAPシステムとSAP DIの連携方法それぞれの特徴についてご紹介しました。

今後クラウド版のSAP DIのトライアル版の提供も予定されているので、ぜひ実際にSAP DIに触ってみてください。