Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
takayuki_tanaka
Product and Topic Expert
Product and Topic Expert
1,199

はじめに


クリーンコア開発が主張され始めて久しい今日この頃ですが、SAP BTP上でのカスタム開発とはどのようなものなのでしょうか。本ブログでは、簡単なデータセットを公開し、権限管理を行い、世界中から利用できるようにするまでの手順をStep by Stepガイドの形式でお届けします。なお、内容は2024年01月時点でのスクリーンショットを用いて解説しており、見た目は予告なく変更される可能性がありますので、ご注意ください。

 

前提条件



  • SAP BTPでCloud Foundry ランタイムが有効化されている

  • SAP BTP でSAP Business Application Studioが有効化され、必要な権限がユーザーに付与されている


 

目次



  1. バックエンド開発プロジェクトの作成

  2. Productivity Tools – データモデルの作成

  3. Productivity Tools – ODataサービス (データ操作API) の作成

  4. Productivity Tools – 権限の作成

  5. Productivity Tools – サンプルデータの作成

  6. Productivity Tools – SAP BTPへのデプロイ

  7. BTP Cockpit – 権限の付与


 

1. バックエンド開発プロジェクトの作成


この章では、まずSAP Business Application Studioよりプロジェクトの開発を行います。

SAP Business Application Studioのホーム画面から、 Dev Space を作成します。この Dev Space は、簡単に言えば開発用のコンテナになります。ここにSAP Business Application Studioのエディタを接続することで、環境を綺麗に使いつつ開発を進めていくことが可能です。加えてこのコンテナには必要な開発ツールをプリセットしたものを選択することが可能です。

 


Dev Spaceとは


 

今回は、下図の通りコンテナタイプとして「Full-Stack Application Using Productivity Tools」を選択し、追加ツールとして「SAP HANA Database Explorer」と「SAP HANA Tools」を選択してください。これらの追加ツールは、DB操作ツールであり、効率的にSAP BTP上のSAP HANA Cloudへのアクセスを提供します。

 


Dev Spaceを作成する


 

2. Productivity Tools – データモデルの作成


続いて、Productivity Toolsを用いてバックエンドサービスの作成を行います。まずはバックエンドサービスにて扱うデータモデルを定義しましょう。左端に並んだペインからProductivity Toolsのタブを開き、「create project」ボタンをクリックし、画面を進みます。次ページではアプリケーション名等を設定します。

 


Productivity Toolsでプロジェクトを作成する


 

プロジェクトの作成が完了すると、以下のようなStory Boardの画面が表示されます。この画面はProductivity Toolsのホーム画面のようなものであり、ここからあらゆる操作を行うことができます。早速「Data Models」セクションの横にある「+」ボタンをクリックし、データモデルを追加しましょう。

 


Productivity Tools の Story Board


 

今回は「jobRecord」というデータモデルを作成します。このエンティティは、以下の項目を保持します。

 




























項目名 データ型 説明
ID UUID ジョブのID
executedBy String ジョブの実行者
executedAt Timestamp ジョブの実行時刻
Content String ジョブの内容

 

下図の強調部分をクリックしながら作成を進めます。

 


Productivity Tools におけるデータモデリング


 

3. Productivity Tools – ODataサービス (データ操作API) の作成


次に、このデータを外部から操作するためのAPIを作成します。このAPIはSAP BTPにおけるCAP開発においては Service と呼ばれており、REST APIをラップしたOData APIの形をとります。

Story Board上の「Services」セクションより、「+」ボタンをクリックしてサービスを作成しましょう。

 


Productivity Tools によるODataサービスの追加


 

この際、「Enable draft editing」のチェックボックスを外し、先ほど作成したデータモデルを選択することで、このデータモデルに対するAPIを作成することが可能です。

 


対象データモデルの選択


 

4. Productivity Tools – 権限の作成


これまででデータモデルとAPIを作成しましたが、これを安全に公開するためには権限の設定が必要です。SAP BTPにおけるカスタム開発では、XSUAAという認証認可のサービスを用いて権限の付与設定が可能です。今回は、作成したAPIを呼び出すためのロールを定義し、アプリケーション本体と同時にデプロイを行います。これにより、BTP Cockpitにて権限を付与されたユーザーのみがAPIを利用できるようになります。

Story Boardの「Services」セクション配下のユーザーアイコンをクリックし「Define User Role」をクリックします。

 


Productivity Tools による権限ロールの作成


 

「+」アイコンから、新しい権限ロールを作成します。今回はこのサービスについての管理者権限のため、Fullアクセスを設定します。

 


Productivity Tools による権限ロールの作成


 

権限を追加すると、自動でこの権限がある場合にAPIを呼び出せるように設定されます。デフォルトで他にも「any」等の権限が設定されていますが、これらは同画面のスイッチによりオフにできます。オフにすると、その権限を持っていてもユーザーはAPIにアクセスできません。

 


Productivity Tools による権限ロールの作成


 

5. Productivity Tools – サンプルデータの作成


開発用に、サンプルのデータを投入しましょう。Story Boardの「Data Models」セクションより、「Add Sample Data」をクリックします。

 


Productivity Tools によるサンプルデータの追加


 

「Add」ボタンをクリックしてデータを追加し、適当なデータを記入します。データは自動で保存されます。

 


Productivity Tools によるサンプルデータの追加


 

6. Productivity Tools – SAP BTPへのデプロイ


最後に、SAP BTPのCloud Foundry環境にアプリケーションをデプロイします。左端のペインから「Task Explorer」をクリックし、「Enable Discovery and Deploy {アプリ名}」の横にホバーすると出現する実行ボタンをクリックします。すると、自動的にターミナルが立ち上がり、デプロイに必要なビルド、認証認可サービス等の周辺サービスとの紐付け(Bindingと呼ばれます)、デプロイを実行します。途中でCloud Foundry環境へのログイン情報を求められますので入力してください。その際、デプロイを行うスペースを選択すると、デプロイが継続実行されます。しばらくすると、アプリケーションのデプロイが完了してデプロイ先のURLが提示されます。

 


Productivity Tools によるデプロイ


 

URLにアクセスすると、今回開発を行っているバックエンドサービスに関する案内ページが開きます。ここから、ODataのメタデータを取得したり、フロントエンドアプリケーションをプレビューしたりできます。この辺りはまた別のブログでご紹介できればと思います。

 


案内ページ


 

ServicesセクションにODataサービスの一覧が表示されます。今回は「jobRecord」の横にあるJSONのようなアイコンをクリックします。すると下図のような画面が開きます。

 


権限不足によるAPIの呼び出しエラー


 

こちらは権限不足によりAPIにアクセスできなかったことを意味しています。それもそのはずで、まだこのAPIを利用するために必要な権限ロールをユーザーに付与していません。最後の章では、このロールを付与し、正しくAPIを呼び出します。

 

7. BTP Cockpit – 権限の付与


BTP Cockpitでサブアカウント画面に入り、左端のペインから「セキュリティ」-> 「ロールコレクション」の順に進みます。ここで先んじて作成した権限ロールの名前を検索すると、アプリ自体のデプロイと同時にロールがデプロイされているはずです。このロールコレクションにユーザーを割り当てます。

 


BTP Cockpitでの権限の割り当て


 

これによりAPIを呼び出せるようになったはずです。キャッシュをクリアし、先ほどと同様のURLにアクセスしてみましょう。

 


適切な権限を持った状態でAPIを呼び出す


 

上図のように、先ほど投入したサンプルデータが見えるようになります。

以上がSAP BTPにおけるバックエンド開発の流れになります。次回のブログでは、ここにSAP BTP上で提供されるDBサービスであるHANA Cloudを接続して、アプリケーションデータを永続化していきたいと思います。

 

おまけ: gitリポジトリへのプッシュ


SAP Business Application Studioではターミナルがビルトインされています。こちらを用いて、任意のgitリポジトリでソースコード管理を行うことができます。

 


SAP Business Application Studioからのソースコード管理


 

まとめ


SAP BTPにおけるカスタム開発をご紹介しました。CAPというフレームワークに基づいて作成することで、簡単にバックエンドを構築できます。加えて、SAP Business Application StudioではProductivity Toolsなるものが提供されており、これを使うことでローコードに開発を進めることが可能です。

後編のブログでは、今回モックデータとした部分をHANA Cloudへ接続し、実際のWebアプリケーションに近いものを作成していきます。アプリ開発の土台となるバックエンド+DBの開発が、SAP BTPでどのように実装できるのかぜひご覧ください。続編は以下よりご覧いただけます。

2024/01最新版!Productivity Toolsを使ったCAPバックエンド開発②~HANA Cloud編~

参考文献


1 Comment