2024/01最新版!Productivity Toolsを使ったCAPバックエンド開発①~モックデータでのバックエンドサービス公開~
2024-1-9 13:17:5 Author: blogs.sap.com(查看原文) 阅读量:5 收藏

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

Dev Spaceとは

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

Dev%20Space%u3092%u4F5C%u6210%u3059%u308B

Dev Spaceを作成する

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

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

Productivity%20Tools%u3067%u30D7%u30ED%u30B8%u30A7%u30AF%u30C8%u3092%u4F5C%u6210%u3059%u308B

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

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

Productivity%20Tools%20%u306E%20Story%20Board

Productivity Tools の Story Board

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

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

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

Productivity%20Tools%20%u306B%u304A%u3051%u308B%u30C7%u30FC%u30BF%u30E2%u30C7%u30EA%u30F3%u30B0

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

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

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

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

Productivity%20Tools%20%u306B%u3088%u308BOData%u30B5%u30FC%u30D3%u30B9%u306E%u8FFD%u52A0

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

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

%u5BFE%u8C61%u30C7%u30FC%u30BF%u30E2%u30C7%u30EB%u306E%u9078%u629E

対象データモデルの選択

4. Productivity Tools – 権限の作成

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

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

Productivity%20Tools%20%u306B%u3088%u308B%u6A29%u9650%u30ED%u30FC%u30EB%u306E%u4F5C%u6210

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

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

Productivity%20Tools%20%u306B%u3088%u308B%u6A29%u9650%u30ED%u30FC%u30EB%u306E%u4F5C%u6210

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

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

Productivity%20Tools%20%u306B%u3088%u308B%u6A29%u9650%u30ED%u30FC%u30EB%u306E%u4F5C%u6210

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

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

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

Productivity%20Tools%20%u306B%u3088%u308B%u30B5%u30F3%u30D7%u30EB%u30C7%u30FC%u30BF%u306E%u8FFD%u52A0

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

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

Productivity%20Tools%20%u306B%u3088%u308B%u30B5%u30F3%u30D7%u30EB%u30C7%u30FC%u30BF%u306E%u8FFD%u52A0

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

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

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

Productivity%20Tools%20%u306B%u3088%u308B%u30C7%u30D7%u30ED%u30A4

Productivity Tools によるデプロイ

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

%u6848%u5185%u30DA%u30FC%u30B8

案内ページ

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

%u6A29%u9650%u4E0D%u8DB3%u306B%u3088%u308BAPI%u306E%u547C%u3073%u51FA%u3057%u30A8%u30E9%u30FC

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

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

7. BTP Cockpit – 権限の付与

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

BTP%20Cockpit%u3067%u306E%u6A29%u9650%u306E%u5272%u308A%u5F53%u3066

BTP Cockpitでの権限の割り当て

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

%u9069%u5207%u306A%u6A29%u9650%u3092%u6301%u3063%u305F%u72B6%u614B%u3067API%u3092%u547C%u3073%u51FA%u3059

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

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

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

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

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

SAP%20Business%20Application%20Studio%u304B%u3089%u306E%u30BD%u30FC%u30B9%u30B3%u30FC%u30C9%u306Egit%u7BA1%u7406

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

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


文章来源: https://blogs.sap.com/2024/01/09/productivity-tools%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%9fcap%e3%83%90%e3%83%83%e3%82%af%e3%82%a8%e3%83%b3%e3%83%89%e9%96%8b%e7%99%ba%e2%91%a0%e3%83%a2%e3%83%83%e3%82%af%e3%83%87%e3%83%bc%e3%82%bf/
如有侵权请联系:admin#unsafe.sh