Technology Blog Posts by SAP
cancel
Showing results for 
Search instead for 
Did you mean: 
takayuki_tanaka
Product and Topic Expert
Product and Topic Expert
2,131

はじめに


クリーンコア開発が主張され始めて久しい今日この頃ですが、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