【エンジニアブログ】SAP Cloud Platform の開発について

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

普段は、金融関連の Web システムなどの開発・プロジェクト対応をやっています。最近 SAP Cloud Platform での開発案件に参画いたしましたので、本日は SAP Cloud Platform 上での開発についてお話ししたいと思います。

SAP Cloud Platform 略して SCP を最近耳にすることが多くなりましたが、皆さんはどのように SAP 開発に利用されていますでしょうか。

現状の SCP の利用方法

SCP は、SAP が提唱する Intelligent Enterprise の世界観を実現するために非常に重要なテクノロジーおよびプラットフォームです。

現行の SAP 環境の S/4HANA へのマイグレーションプロジェクトでの利用シーンでは、従来 ABAP で開発を行ってきた Add On 部分を SAP Core の中で行わずに、SAP Core の外側、つまり SCP 上で開発するために利用されています。

SAP Core に変更を加えないことは、基幹システムの複雑化を回避します。これにより、S/4HANA の四半期毎のバージョンアップに追随しやすくできるので、この手法で開発することは非常に重要なこととなっています。

私の経験したプロジェクトでは、従来 SAP の GUI をカスタマイズしたり、マスタメンテナンスのために Add On で開発した Import / Export 機能を、 SCP 上で Fiori インターフェースや SAP Gateway を使用して実現するものでした。

SCP の環境

SCP は SAP が提供しているデータセンター ( Neo 版) と、IaaS プロバイダー ( Microsoft Azure , Amazon Web Services , Alibaba Cloud , Google Cloud Platform ) が提供するデーターセンター ( Cloud Foundry 版) から選択して利用できます。

Neo 版と Cloud Foundry 版では、利用できる機能や製品バージョンが異なります。
また、提供元のデータセンターやリージョンによって、展開されているサービスに差があります。
このため、システムを構成する場合には、開発で利用する予定のサービスが構築先のリージョンで提供されているかを、事前に把握しておく必要があります。

それ以外の確認事項として、遠方のデータセンターのサービスを利用する場合は、近距離のデータセンターに比べて応答時間が余分にかかるため、レイテンシについて注意する必要があります。

SCP で提供されているサービスの詳細については、下記のサイトから確認することができます。
https://discovery-center.cloud.sap/viewServices

SCP を利用した開発の特徴

従来 SAP のマスターデータを変更するためのアプリケーションを開発するためには、SAP のテーブルのデータ構造や処理フローを理解しておく必要があり、開発者は SAP についての十分な知見が必要でした。

しかしながら、SCP を利用して開発を行う場合は、SCP が提供する S/4HANA の REST API と OData を理解すれば、SAP のデータ構造や処理フローを詳細に理解していなくても、正しくマスター更新するプログラムと画面を開発することが可能です。SCP が提供するインターフェースを利用するための作法が決まっており、その作法に則りさえすれば容易に開発することができます。

その反面、あるレベル以上の細かなことを実装したりハンドリングする場合に、開発側が要望している情報を取れないなど、あまり適さないケースもあります。このため、SCP を利用する際の開発者は、どういった処理を行う場合に SCP での開発が適するのかの見極めができるようになることが大事です。

SCP での開発ではどの開発言語の知識が必要か

SCP の開発環境は Java で実装されているので、Java の知識のあるエンジニアが向いています。
これから新しく Java を習得する人でも開発は比較的容易にできるので、そこは多少開発言語の縛りがあるなと感じるぐらいです。

フロントの開発は Node.js で実装されているのと MVC モデルの View と Controller に集中すればよく、一般的な Web システムの開発経験よりは、スマートフォンアプリの開発経験がある方が理解しやすいと思います。

SCP の開発環境

SCP の開発はツールと画面単位ごとに Git リポジトリが用意されており Web 上の IDE (統合開発環境) で行いますので、それぞれの開発者の PC に開発用のアプリケーションをインストールすることなく、SAP のアカウントだけあれば容易に開発環境を準備することができます。

このため、急に開発者が増員になった場合や、昨今のようにリモートワークに切り替わった場合でも、インターネットに接続できる環境とブラウザがあれば開発はできますので、開発環境を整えるために必要なコストや時間を削減することができます。

SCP 環境でのテスト

上の欄でも述べましたが SCP で開発する場合、SAP の内部構造を意識しなくても開発ができます。
しかし、SCP での開発をうまく進めるためには、開発者だけでなくテストを担当する要員も必要になります。テストをしっかり行うためには、テストに必要なシナリオやデータを準備する必要があるので、SAP の内部構造をよく理解しているメンバーとの共同作業が必要になります。

従来の SAP 開発で培った SAP の知識やノウハウと、オープン系で開発経験を培ってきたメンバーをうまくチーミングすることができれば、SCP を利用した開発でもスムーズに進めることができます。

SCP を利用することのメリット

SCP を利用することで、複雑化していた既存システムの簡略化が可能です。これにより、いままで DX 推進の足かせとなっていた部分が取り除かれ、最新技術によるイノベーションに対応するための基盤が準備できます。

既に SCP では多くのサービスが提供されてますし、これからもクラウドのサービスとして機能が拡張されてきます。これらのサービスが S/4HANA と綿密に連携してすることで、クラウド上のサービスで基幹システムのデータを容易にアクセスできるようになります。

また、SCP を利用することで S/4HANA だけでなく、SAP が提供する様々なソリューションやサードパーティの提供するクラウドサービスとも連携することができるようになります。これにより、SCP を開発基盤として利用することで、社内で利用している様々なシステムで生成されるデータを一貫して活用できるようになります。

開発環境についても多くの開発テンプレートが準備されているので、HTML5 や CSS3 などの最新技術を活かして短時間で開発ができるようになります。Web インターフェースの開発だけでなく、SCP SDK for iOS や SCP SDK for Android などモバイルデバイス向けの SDK も準備されており、利用環境に合わせたアプリケション開発ができます。マルチプラットフォームへの開発を行うことで、より現場の利用環境に合わせた利便性のいいアプリケーションを開発することができます。

SCPの将来への期待

今回、ABAP での開発経験のない、オープン系の開発者の私が SCP での開発プロジェクトに参画しましたが、SAP の知見が少ない状態でも SAP を利用した開発を進めることができました。
今まで、SAP の開発とオープン系の開発で多少隔たりがあったところを、SCP を利用することでかなり敷居が低くなったと感じます。

各業種での業務知識や、 SAP で業務を実現するための知見を持った SAP コンサルタントと、オープン系のエンジニアが連携することで最新のテクノロジーで基幹システムのデータを活用できるようになるので、今まで提供できなかった新しいサービスが提供できるようになると思います。