<< English version is here >>
1. はじめに
本ブログでは、SAP Cloud PlatformでSAP S/4HANAを拡張するために必要となるアーキテクト向けの基本情報や、実際にコンサルタントや開発者がSAP S/4HANAを拡張する際に利用するAPIの探し方から使い方までに重点を置いたブログシリーズとなります。新規カスタムアプリケーションの開発やシステム連携において、バックエンドシステムのAPIの存在は不可欠です。このブログを通して、効率よくAPIを探し、それを利用する際の参考となれば幸いです。
本ブログシリーズは以下の内容でお送りする予定で、今回は第一回目のSAP Cloud Platformでの拡張開発概要になります。これまでも概要ブログは多くありましたが、2020年版ということで改めて最新のメッセージをご紹介いたします。
- SAP Cloud Platformでの拡張開発概要 << Here
- SAP S/4HANAのAPIの探し方
- SAP S/4HANAのAPIの使い方
- APIが存在しない場合の対応
- SAP S/4HANAとのイベント連携
2. SAP Cloud Platformのコンセプト
SAP Cloud Platformは、SAP S/4HANAをはじめとしたSAPアプリケーションを拡張、統合、そしてイノベーション技術を利用可能にするための
Business Technology Platformです。(いわゆるビジネスアプリケーションに特化したPaaS環境です)
そして、リソースの柔軟な拡張性やオープンな技術を使ったクラウドネイティブ技術を中心に、下記のシナリオを実現するサービス群を提供しています。単体のサービス群だけでなく、それらを組み合わせて実現するビジネスソリューションを提供できるのがSAPの強みです。それぞれの詳細についてはSAP Cloud Platformの
公式サイトも合わせて参照ください。
2.1 Integration Suite
プロセス・データ・人・デバイスをセキュアに接続し、オンプレミスやクラウドのアプリケーションを統合します。プロセス連携(EAI)・データ連携(ETL)、API管理、IoT、SaaSコネクタなどのツールや、SAP・nonSAPアプリケーション向けの事前定義済み連携コンテンツを豊富に提供しています。
2.2 Enterprise Extension
SAPソリューションを拡張するための開発・実行基盤として、Cloud Foundryを中心したPaaS環境を展開しています。Java、 Node.js、Pythonなどの開発言語やオープン技術を組み合わせたアプリケーション開発が可能です。また、SAP独自の開発フレームワークやライブラリ、専用のSAP拡張ツールを利用することで、SAPソリューションとの接続性や開発効率を高めることができます。
2.3 Intelligent Business Process Management
ワークフローベースのビジネスプロセスとRPAやチャットボットのインテリジェント機能を連携し、各プロセスをエンドツーエンドで可視化・自動化するためのトータルソリューション。SAP Cloud Platform Workflow・Business Rules・Process Visibilityサービスを組み合わせて、ビジネスアプリケーションの上に拡張プロセスを作成したり、インテリジェントなビジネスプロセス管理の視点で差別化アプリケーションを構築することができます。
2.4 Data-Driven Insights
分析ソリューションのSAP Analytics Cloudと、インメモリデータベースのSAP HANAをSAP Cloud Platform上で利用することで、リアルタイム分析が可能になります。事前定義された分析レポート、データへのパーソナライズアクセス、アプリケーションに容易に埋め込み可能なアドホック分析機能を提供します。また、SAP Data Intelligenceを利用することで、あらゆるデータソースを繋ぎそのデータに機械学習を適用した結果を出力するエンドツーエンド処理(データパイプライン)を可能にします。
2.5 Digital Experience
従業員・サプライヤーなどのパートナー、一般消費者向けのポータルサイトの構築や、コーポレートシステムなどのバックエンドデータを利用したモバイルアプリケーションの展開、チャットボットを利用した新たなユーザー体験など、あらゆるチャネル、デバイスに対応したアプリケーションをワンプラットフォームで提供します。
また、上記のシナリオに対して以下2点を提供していることが、迅速にビジネスプロセスを拡張するためのBusiness Technology Platformとしての特徴になります。
・再利用可能なビジネスサービス
機械学習を組み込んだサービス(Service Ticket Intelligence, Document Classificationなど)、マスターデータ、税計算など
・事前定義済みのコンテンツ・SAP拡張向けツール
Cloud Platform Integrationのプロセスフロー、intelligent RPAのSAP S/4HANA向けコンテンツ、Fiori Elements(UIテンプレート)、SAP Conversational AIのBotジェネレーターなど
3. マルチクラウド・Hyperscalerとの連携
SAP Cloud Platformはマルチクラウド戦略をとっており、IaaSレイヤーはMicrosoft Azure、AWS、Google CloudといったHyperscalerとのパートナーシップの元、世界中でサービスを提供しています。また、SAP Cloud Platformの開発コックピットからHyperscalerのネイティブサービスと連携することもできるため、SAPとHyperscalerの両者の強みを生かした設計が可能です。
4. SAP S/4HANAの拡張
上記にて、SAP Cloud Platformを活用することで、SAPソリューション単体では実現できないシナリオへの対応や、それを迅速に実現するための手段について触れました。ここでは、そもそもSAP S/4HANAにおける拡張方式についておさらいし、API・イベントの存在がSAP Cloud Platformとの連携において重要であることを確認していきます。
4.1 In-App拡張とSide-by-Side拡張
まずSAP S/4HANAには大きく2種類の拡張方式があります。下図のように、SAP S/4HANA内での拡張である
In-App拡張と、SAP Cloud Platformを使った拡張である
Side-by-Side拡張です。
どちらか一方のみの手段で拡張をするのではなく、要件に応じて使い分けるというのが基本コンセプトです。これは、SAP S/4HANAのリリースアップグレードによる機能追加のメリットを継続的に受けられるように、SAP S/4HANAをクリーンな状態に保ち、より柔軟で豊富な選択肢を提供する開発・実行基盤をクラウドで提供するというものです。
つまり、In-App拡張ではパラメーター設定やキーユーザー拡張などアップグレードへの影響が小さい手段で行い、Side-by-Side拡張では、アドオンを始め、モバイル、IoT、機械学習、チャットボット、インテグレーションなどSAP S/4HANAでは対応が難しいシナリオを実施するということになります。対象ユーザーという観点でも、従業員だけでなくパートナー企業や一般消費者が利用するアプリケーションの展開に向いており、スケーラブルなリソースや新機能を継続的に提供するクラウド環境ならではのメリットも生かすことができます。
In-App拡張とSide-by-Side拡張の詳細については
こちらも参照ください。
4.2 APIとイベント
そして、Side-by-Side拡張において重要なのが、SAP S/4HANAのAPIやイベントの存在です。APIは、従来から提供されているSAP独自プロトコルのRFCベースのBAPIや、HTTPベースのSOAP、SAP S/4HANAから提供されているRESTベースのOData APIがあります。中でもODataがSAPソリューションのAPIの中心となってきており、SAP S/4HANAの新しいユーザーインターフェースのSAP FioriもODataを使ってアクセスをしています。また、SAP S/4HANAは、ビジネスオブジェクト(販売・購買・品目マスターなど)に対するアクション(登録・変更・削除)に応じたイベントをトリガーすることもでき、そのイベントをSAP Cloud Platformで受けることで、アーキテクチャ的には疎結合としつつ、プロセス的には密結合な拡張を実現することも可能です。(下図はイベント連携の例です)
4.3 SAPソリューションのAPIとイベントのカタログサイト
これらSAPソリューションのAPIやイベントの包括的なカタログサイトとして、
SAP API Business HubというWebサイトを公開しています。このサイトではSAP S/4HANAだけでなくSAP SuccessFactorsなどのSaaSソリューションのAPIや、冒頭で触れたSAP Cloud Platformの事前定義済みコンテンツなどの情報も含まれています。また、APIはOpen API形式(Swagger)で公開されているため、テストもこのサイト上から行うことができます。これにより各システムにログインしなくてもAPIを探しテストすることが容易になります。このSAP API Business Hubについては、次回のAPIの探し方編にて詳細をご紹介させていただきます。また、SAP S/4HANA、SAP C/4HANA、SAP SuccessFactorsなど、SAPソリューションの各バックエンドを意識することなく、ビジネスオブジェクトを意識した単一のAPIエンドポイントを提供する
SAP Graphという新サービスも開発が進んでいます。(現在ベータ中)
4.4 開発効率を高めるSAP Cloud SDK
実際にコーディングを効率化させる開発キットとして、
SAP Cloud SDKも提供されています。(JavaとNode.js向けに提供) このSDKを利用することで、SAP S/4HANAのAPIを仮想データモデル(VDM)として扱うことができ、データ型を保証したコーディングや、ODataの呼び出しがより簡単になります。また、SAP Cloud Platformの宛先サービスと連携し、ソースコード内では外部システム・サービスとの認証を抽象化するなど、よりビジネスロジックのコーディングに注力するための機能も揃っています。このSAP Cloud SDKについても、今後のAPIの使い方編にて詳細をご紹介させていただきます。
4.5 求められるスキルセット
アプリケーション開発という点では、In-App拡張の場合はもちろんSAP S/4HANAの開発スキル(ABAP言語や様々な拡張フレームワーク)が必要です。一方でSide-by-Side拡張の場合には、Javaなどのオープン・Web系の開発スキルが必要となります。上記のSAP API Business HubのようなAPIカタログが揃っていることで、バックエンドのSAPソリューションとはスキルセットを分けて開発を進めることが可能です。ただし、要件によってはSAP独自のAPIであるBAPIや接続方法を利用するケースもあります。このような場合には、SAP S/4HANAのアプリケーションコンサルタントやテクノロジーコンサルタントとの協力が必要になるかと思います。
また、全体アーキテクチャを定義する際には、SAPとオープンな技術の両方を把握されている方の支援があるとスムーズです。
下表はIn-App拡張とSide-by-Side拡張での開発者スキルの参考情報です。
スキル |
In-App拡張 |
Side-by-Side拡張 |
プラットフォーム |
SAP NetWeaver |
Cloud Foundry |
開発言語 |
ABAP |
Java, Node.js, Python, ABAPなど |
ハードウェア |
特になし |
特になし |
データベース |
SAP HANA |
SAP HANA, PostgreSQL, Mongo DBなど |
UI |
Fiori, SAPUI5 |
Fiori, SAPUI5, Angular, Reactなど |
開発フレームワーク |
Exit, BAdI, キーユーザー拡張, ABAP CDSなど |
CAP, RAP, Extension Factory, Springなど |
API |
OData, SOAP, BAPI |
OData, SOAP, REST, BAPI |
Dev&Ops |
TMS, ABAP Workbench |
Jenkins, Gitなど |
統合開発環境 |
ABAP Workbench, Eclipse(ADT) |
Web IDE, Business Application Studio, VS Code, Eclipse(ADT)など |
5. 学習のための無償コンテンツ
ここまでで、SAP Cloud Platformのコンセプト、及びSAP S/4HANAの拡張開発における基本的な情報をご紹介させていただきました。SAP Cloud Platformと連携する上での基礎を把握いただければ、あとはいかにSAP Cloud Platformが提供する豊富なサービス群を利用したり、オープン技術を組み合わせるかです。
昨今、SAPではコンサルタント、エンジニア、開発者を支援するために無償の技術情報を多く提供しています。中でもSAP Cloud Platform向けの情報は豊富で、サービス毎のチュートリアルや技術分野毎の学習ステップも用意されているため、スキル拡張に大いに役立つ下記コンテンツをご紹介いたします。
オンラインビデオトレーニング。豊富なコースが提供されており、1コースは多くが4週に渡ってコンテンツが更新され、受講者は毎週ステップバイステップのコンテンツと確認テストを受ける形式です。配信期間中のコースは質問をすることも可能です。配信期間後のコースも受講することは可能ですので、ご自身の都合に合わせて利用いただけます。1コースを終えるのにそれなりの時間がかかる分、かなり有益なトレーニングです。
主にSAP Cloud Platformやプラットフォーム製品のステップバイステップのチュートリアルコンテンツ。製品・サービス毎に初級者・中級者・上級者向けのコンテンツを提供しています。初期セットアップから応用例など実際の実装にも役に立つ情報が満載です。
SAPコンサルタント・開発者のコミュニティサイト。SAPの製品開発メンバーが各製品の最新情報や導入方法などを発信したり、SAPソリューションの導入に携わるコンサルタント・開発者の方々がTipsやアイディアをブログとして共有されています。また、コミュニティ内では質問も積極的に交わされていますので合わせて活用ください。
分野毎の学習ステップを網羅したまとめサイト。例えば、SAP S/4HANAの拡張開発トピックであれば、最初にSAP Cloud Platformの概要をopenSAPで学び、次にSAP S/4HANAの拡張コンセプトやSAP Cloud SDKの概要をTechEDのオンラインビデオコンテンツで学ぶといった学習パスが示されています。習得目的のトピックさえ決まっていれば、必要となるカリキュラムは提供されていますので、確実にスキルアップいただけます。
各製品技術情報の定番サイト。すべての製品情報・設定情報はここにあります。使い方、設定方法がわからない場合にはSAP Help Portalでまずは検索してみてください。Tips情報やコードサンプル、詳細な定義情報が網羅されています。最近では日本語化されているページも多くあります。
以上SAP Cloud PlatfformでのSAP S/4HANA拡張の概要編になりますが、いかがでしたでしょうか。もちろんSAP Cloud Platformは無償のトライアル環境も提供していますので、ぜひ上記の学習コンテンツと合わせて実際に触れてみてください。
次回以降では、拡張開発においてキーとなるAPI・イベント関連の詳細情報についてご紹介していきますので、ぜひ合わせて参考にいただければと思います。