SAP Business Technology Platform の開発手法

こんにちは。
プロアクシアコンサルティングでオープンソリューション事業部に所属しています K.O です。

SCP についてエンジニアブログに取り上げて頂いてから3年以上が経過し、その間に BTP (Business Technology Platform) と名称を変えた SCP の環境と開発について、開発事例をご紹介させて頂きます。

Business Technology Platform の環境

BTP に名称が変わった他、SCP 当時は展開されているリージョンやクラウドの種類で使えるサービスが異なっていましたが 、BTP ではほぼ統一されてどのリージョンを選んでも提供されるサービスはほぼ同じになりました。

BTP で環境を作る際にはプロバイダ (AWS、Google Clpud、Azure または Cloud Foundry) を選択し、サービスとしてユーザに対して提供されます。BTP 利用者は BTP Cockpit から設定できる箇所のみ変更でき、インフラ面は SAP 社が管理することとなります。

この他、SAP 社のデータセンター上で稼働している BTP は Neo 環境と呼ばれていて、現在展開されている他のプロバイダ向け BTP にはリリースされていないサービスもありますが、2028年度に Neo 環境は廃止予定となっており、今後は新サービスは拡張されないものと思われます。

上記、プロバイダの差は新サービスが提供された場合にリリースされる速度や価格面で差が出てきますので、運用や利用規模を踏まえて選択する必要があります。

S/4 HANA 環境の違い

BTP を利用するにあたって SAP S/4 HANA Cloud と連携することができますが、バージョンによってカスタマイズ可能な範囲が異なります。S/4 HANA Cloud の長所としては、インフラの構築に掛かる費用・時間が掛かりにくく、利用環境のアップデートが担保されている点です。

さらに S/4 HANA Cloud には 「public edition」 と 「private edition」 が用意されています。

public edition の場合、新規導入が前提で拡張は BTP のみとなっており、SAP 社の提供する標準 API を拡張する形でカスタマイズが可能ですが、SAP をクラウド上で使用することに特化しており、顧客の様々なニーズに合わせることは難しくなります。このため、
顧客の業務を SAP S/4HANA の業務プロセスにフィットさせる作業が必要になります。

一方でインフラやアップデートが SAP 社によって管理されており、運用面・短期間の導入によるコスト面でのメリットを見だすことも可能です。

private edition の場合、前述したプロバイダを選択し、その上にクラウドサービスとして HANA Cloud、BTP を展開します。BTP 上にある程度アプリケーション領域やデータベース領域を作成することが可能になり、オンプレミス環境と同様に顧客のニーズに合わせて様々アプリケーションを作成、展開することが可能です。また旧来の SAP ERP とのコンバージョンが可能です。

一方で厳密なユーザー管理やアクセス制御が求められ、セキュリティについても意識しなければなりません。アップデートについては SAP 社のサポートを受ける事が可能です。

この他、従来通りオンプレミス環境にすることも可能です。
デメリットとしてはアップデートは顧客が任意で行う必要があり、アプリケーションのアップデートに伴う膨大な検証作業が発生することが挙げられます。場合によっては特定のバージョンへのアップデートを余儀なくされたり、または実施を断念しなければいけないケースもあり得るでしょう。

このように展開したい規模と業務要件に応じてサービスの選択必要になってきます。SAP R/3 を利用している企業の移行先として S/4HANA Cloud が選択肢になりますが、移行に当たって今までのオンプレミス環境で使用していた ABAP プログラムをそのまま利用できない可能性があります。
public edition ではフルアドオンによる開発が難しいという制約があるので Private Cloud 版の利用も考えなければいけません。

BTP 開発と HANA Cloud 環境について

BTP 上での開発も SCP の開発環境と同じく Java、JavaScript、CSS による HTML5 アプリケーションになります。こちらについては大きな変化はありませんが、大別して3種類の開発がありました。

一つは Fiori テンプレートを使用する方法です。
使用したい OData を選択し、見たい切り口のテンプレートを選択し、サービスとして組み上げる形式です。予め OData 側でデータが抽出されているので単純にビューとしての機能、条件を指定する検索、検索結果のダウンロードといった機能の開発に向いています。設定するのは OData 以外にも SAP 内部のテーブル情報と直結して検索したりすることが可能で、SAP の内部仕様に詳しいエンジニアがいれば WEB 技術の知識に乏しくても開発しやすいといえます。

もう一つは SCP でも紹介した Jav aの MVC モデルとしてのアプリケーション開発です。
画面は SAPUI5 に依存しており、デザインを自由に記述することはできませんが、開発者が任意にイベントを作成したり、REST API の呼び出しを組み合わせることでかなり自由度の高い開発が出来ます。

MVC モデルの開発例

もう一つは BTP を WEB API としてとらえ、アプリケーションを外だしで開発する Side-by-Side の開発です。
BTP 上に構築すると WEB アプリケーションないし BTP 上でスケジュールした形で動作しますが、他のアプリケーションのデータをコンバートしたり、連携して SAP と同期をとるといったような開発が可能です。大量データの送信や登録には向きませんが、SAP 側の開発と分離することができるため SAP 技術者と Java 技術者とのやり取りが綿密にできれば開発しやすい手法といえます。

BTP の今後に向けて思う事

今回ご紹介したこれらの開発において使用できる SAP の API は HANA Cloud 環境に依存しています。顧客の実現しようとしている機能が標準 API で賄えるかといった観点も今後は必要になってくるかもしれません。

オープン系開発者の自分の場合、やはり SAP 内部については詳しくありませんので更新系の制約、登録に際して必要なデータセットの組み合わせについてはもっと知見を身につけていかないと顧客に十分なサービスを提供できないと思う事が増えました。

今はまだ一部のパッケージを使った開発しかできませんが、今後は SAP の技術者とも情報交換を密にして業務知識や開発経験を活かせるようにしたいと思います。