ABAP New open SQL:Code pushdownのツール備忘

ごめんなさい。今回も具体的なソースコードは無しです。
現在、お仕事ではSAP BW系を実装しています。1年間以上SAP S/4関連でベタベタなABAPコーディングをしていたことに加えて、SAP BW/HANAのバージョンは初めて触れるので、SAP BW系でもCode pushdownの環境が充実してきていることを実感しています。っというか、浦島状態でこの3ヶ月位戸惑っていました。

  • 話は変わり、昔々(Win95のころ)、あるところでは(マイクロソフト)、2つの勢力が主導権を争い、南北朝時代に突入しました。(多分)
    • 非定型の情報系(メールを含むグループウェア)のお仕事をしていると、マイクロソフト製品がどれもこれも2種類ある様な感じで、お互いにサービスの互換性がなく、導入時に2択を迫られる感じでした。現在でも南北朝時代の面影が残っています。

(いつもの通り前置き長いですが、、、)

  • そして、令和の現在、あるところでは(SAP)、2つの勢力が主導権を争い、南北朝時代に突入しました。(多分)
      • SAP S4 vs SAP BW, SAP HANA連合軍
      • (ABAP CDS view vs HANA information view)
    • Suite on HANAの時はたしかHAHA liveっていうライブラリー群がありました。以前SAP HANAの検証プロジェクトに参画しているときにいろいろ聞いたのですが、HANA liveはパフォーマンスが思わしくなくて使い物にならないとの判断を下されていました。
    • 私はというとアドオンで動かしたらどうなるかというチームの主要メンバー(と言うより実質1人)で、更に以前参画していた20億件プロジェクトの知見と、SAPトレーニングHA300の設計セオリー通りに実装していたので、一見無理ゲーとも思えるような要件でもパフォーマンス良好とのご判断を頂きました。
    • でっHANA liveを少し覗くとSAPトレーニングHA300の設計セオリー通りにことごとく反していて、これでは駄目だよねって思いました。ただし、HANA liveは急いで作った感があってSAPはブラッシュアップしていくんだろうと思っていましたが、ブラッシュアップしたのはHANA liveでは無くSQL Engineの方でした。つまり(ABAP)CDS viewですね。
    • これと同時にS4の標準実装の主戦場はABAP CDS viewに移っていき現在に至ると思います。
    • 一方でHANA information viewはと言うと、BW on HANAでDSOのHANA intonation viewの自動生成(こちらもHA300のセオリーに反した自動生成でした)や、HANA analysts process(AMDP)なんかを機能追加して、過去プロジェクトで多用して、夜間バッチ処理を3分間程度で終わるようにして、ユーザ様に喜ばれました。
    • 現在、S4はABAP CDS viewで標準が作られていて、アドオンも雰囲気(いろいろ理由は後付けしますが)でABAP CDS viewを採用し、BW4は、Composite providerについてはSQL scriptまたはHANA information viewが自動生成されて、変換(Transfer)についてはHANA analysis processの名残でAMDPのスケルトンが自動生成されて、SQL scriptまたはHANA information viewを実装するようになっています。
  • SAP HANAを語るときに、上級コンサル様が抽象的な内容をフワフワ語る時は、SAP AGが発信元となるCode pushdownやCode to data等をデータベースのゴールデンルールに絡めて語ることが多いと思います。(正直自身は飽き飽きしてます)そして具体的にどう落とし込むの?についてはケムに巻かれて謎のまま。なぜこのようなコンテンツが拡散されてしまったか?私が思うには、S4(アドオン)とBW4およびSAP HANA(Native)に精通した技術者が稀有だからと思います。SAP技術者縦割り(FI,CO,SD,MM,BW...)の法則ですね。私自身は元々MS系を幅広く(Win32API~VB6~VBA~dotNET)を経験してからSAP業界に入ったので、何をやっても二流プレーヤーのままSAP縦割りを横断するようにアサインされて来たので、手前味噌ですが気がつくと一流の二流プレーヤーにもう一歩と言う感じで、SAP HANAと周辺技術について実装も含め網羅的に経験出来ました。
  • では?どんなアーキ、設計、実装がベターなのか?妄想タイム開始です。(国内のSAPベンダでは、政治的な問題で実現は難しいかな)
    • サーバ構成について:SAP AGが語っているように、S4単体で基幹系情報系を盛り込むべきと思います。
      • 過去の国内の提案書はおそらく、ERPとBWの絵が描かれていたと思います。そして過去の提案書を焼き直しして現在も提案しているのだと思います。失敗したとしても提案者のせいにされないものね。そんな手堅さと言うより保険かな?があると安心できます。
      • しかし実装の一メンバーとしては、何を処理するにもデータ連携(コピー)する必要があり、連携する仕組みを実装すると同時に、運用後はデータ間の整合性に悩まされると思います。イニシャルコスト、ランニングコスト共に増大します。またデータ連携すなわち夜間バッチとなるので、リアルタイム経営からどんどん離れて行きます。
      • SAP HANAのパフォーマンスを本気で引き出すと、無理ゲー要件もリアルに取得出来たりすることが殆どです。S4のマスターDBに設定しているSAP HANAにアドオンテーブルで情報系の時系列データを溜め込んでいけば良いのです。S4になってから標準テーブル(ACDOCA,VBAK,VBAP,EKKO,EKPO等)に、タイムスタンプ型の登録、更新日時項目が増えていると思います。これを使用して1時間に1回程度バッチ処理を回せば良いのです。おそらく数分で処理が終わると思います。サービスタイムを気にする必要もありません。なぜなら同一サーバなので、基幹系情報系は一心同体なのですから。
    • S4(ERP)アドオンについて:原則SAP標準のABAP CDS viewを用いて設計するべきと思います。
      • 簡単に書きましたがこれが最もハードルが高いと思います。何故なら現在までSAP標準CDSで書かれた基本設計書を一度も見た事が無いからです。
      • 基本設計者って国内では中堅以上がアサインされると思います。上級コンサルはCode pushdownとか言っているけれど、ERP6.0となんら変わってないじゃんって思っている人がほとんどで、今だに基本設計書の項目定義には、標準テーブル項目(VBAK-VBELNとか)が書かれています。
      • SAP標準CDSで設計すると言うことは、iSalesOrder-OrderNumberと基本設計書の項目定義に書く必要があるのです。中堅メンバーに対してこのような指示を出せる人がいるかどうか?難しいと思います。指示の出し方としては、SAP標準CDSで設計するとワンタイム取引先等のイレギュラー対応を考慮する必要が無くなるから時間が掛かってもこっちでやって、って言い続けるしか無いと思います。
    • BW4(情報系)について:S4インスタンス内のEmbedded BWで実装するのが良いと思います。
      • HANA Information Viewを実装の中心にして、ABAP CDS Viewでラッピングします。HANA Studio-HANA Modelingは、スーパーユーザ向けにEUCを推進するためにデザインされています。そのためABAP CDS Viewを文字ベースで記述するのと比較して、開発効率で雲泥の差となります。また実行パフォーマンスは体感としては平均10倍速く動作します。クライアントや権限制御は、ABAP CDS Viewに組み込みます。今まで通り権限オブジェクトを効かすことが出来ます。
      • BW4になってから、Composite Providerなるものが出てきました。現プロジェクトでいろいろ実装してみましたが、制限が多すぎて、バグが多すぎて、なんとも使いにくい仕組みでした。バグが多いのは仕組み上当たり前の話で、Composite Providerを作成すると、バックでHANA Information Viewを自動生成しているようです。自動生成の仕組みにバグが多数潜んでいるようです。
      • HANA Studio-HANA Modelingは、スーパーユーザ向けにEUCを推進するためにデザインされているので、Composite Providerを習得するコストよりも、HANA Information Viewを習得するコストのほうがずっと少なく済みます。時間依存マスタに関しても、難しいことは無くHANA Information ViewのTemporal Joinを直接叩けば良いだけのことです。(ABAP CDS Viewであっても結合条件にBetween句を書けば良いだけのことですが)そもそも、Composite Providerの仕組みはHANA Information Viewに乗っかっているので、Composite Providerで出来ることは、HANA Information Viewですべて出来ます。

キーワード:
SAP
SAP HANA
SAP S4
SAP S4HANA
SAP BW
SAP BW4
SAP BW4HANA
Embedded BW
CDS View
ABAP CDS View
HANA View
HANA Information View
Composite Provider
Code to data
Code Pushdown
Codepushdown
Pushdown