新しくなったSAP CloudPlatform Trial環境にSAPUI5アプリをデプロイしてみた

#はじめに
**この記事は [SAP Advent Calendar 2019](https://adventar.org/calendars/3908) の12月12日(木)分の記事として執筆しています**

株式会社KYOSOでSAP Cloud PlatformやS/4 HANA上でのFioriアプリ開発をしています。

今年の秋ごろにSAP Cloud Platform Trialの環境ががリニューアルして、
Cloud Foundry環境がメインになりました。

これまでTrialのNeo環境を利用してSAPUI5アプリケーションを作ってみたりしていたのですが、
あらためてCF環境でSAPUI5アプリ開発を試してみました。

これからSAP Cloud Platform TrialでSAPUI5を触ってみる！という方にむけて
・SAPUI5でFiori画面を作る
・CF環境にデプロイする
といったところの参考になればと思います。

手順等は以下のチュートリアルを参考にしています。
・[Develop Your First SAPUI5 Web App with SAP Web IDE](https://developers.sap.com/group.cp-ui5-first-app.html)
　内容：SAPUI5アプリの作成～デプロイ・デバッグ


#SAP CloudPlatform Trialでデプロイ準備をする

[SAP CloudPlatform Trial](https://cockpit.hanatrial.ondemand.com/cockpit/#/home/trial)にアクセスしてみます。
初めてアクセスするときはIDがないと思うので、アカウントを作成する必要があります。（無償）

![コメント 2019-12-09 141609.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/fc0d04ec-6ff6-ee1b-6d8e-c035154dd2ea.png)

ログインするとNeo/CFの選択がなくなり、
CF環境にのみアクセスできるようになっています。
※はじめての場合はtrialアカウントを作成するリージョンを選べます。お好きなほうをえらびましょう
　
「Enter Your Trial Account」を押下してCF環境のコクピット（管理画面）にアクセスできます。

![図7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/50a0c9e8-0339-2145-887e-01c8b4195a2a.png)

リージョンを選択してtrial環境を作成した時点で、
GrobalAccountとSubAccountが作成されていると思います。

アカウントについては[こちら](https://help.sap.com/viewer/65de2977205c403bbc107264b8eccf4b/Cloud/ja-JP/8ed4a705efa0431b910056c0acdbf377.html)を参照ください。

CF環境の利用は期限付き（30日間）ですが、期限後が過ぎても利用期間を延長することが可能です。
（右上に期間が表示されてます。）

trialと書かれているサブアカウントを押下して、[Spece](https://docs.cloudfoundry.org/concepts/roles.html#spaces)を作成します。
CF環境でサービスやアプリケーションを利用するときはSpeceという単位に割り当てます。
今回はSAPUI5アプリのデプロイ先となるSpeceを作成します。

![図6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/2492e99e-5a6b-66c4-8192-38d2c6a691c6.png)



OverViewページからメニューのSpacesを押下し、
「create Space」を押下します。

| Space Name |
|:-:|
| demo ※任意  |

![図8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/68d59ee9-168e-f04b-6535-c4e31e768120.png)

SAPUI5アプリケーションをデプロイするためのSpaceが作成できました。



##WebIDEでSAPUI5アプリケーションを作る
![図1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/d5d96940-0c75-9ae2-7af4-ac86f78a3bc1.png)
SAP Cloud Platform TrialのトップページからWebIDE Fullstackサービスにアクセスします。

###CF環境設定
WebIDEでプロジェクトを作成する前に、
先ほど作成したTrial環境のSpeceを設定します。

WebIDEの設定画面からCloudFoundryの設定を変更します。
APIエンドポイントとデプロイ先となるSpaceを選択します。
APIエンドポイントを変更した際にログインを求められたときはCloudPlatformのログイン情報を入力してください。
![図9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/6dbae3f4-d8ed-6dc6-7dc3-1323115cb092.png)

※APIエンドポイントはサブアカウントのOverViewに表示されています
![図10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/35e860bd-45a5-07fa-619b-8dbf567e3664.png)

わすれずに「Save」を押下します。

###MTAプロジェクトの作成

ホーム画面でNew Project from Templateを選び、
デプロイお試し用に中身のないSAPUI5アプリケーションを以下の手順で作成してみます。

Neo環境へのデプロイであればSAPUI5のプロジェクトを作るところからですが、
CF環境にデプロイするためにまずMTA（Multi Target Application）を作成します。

![図11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/3f8ef466-c95d-e134-8186-4008c0e9960d.png)
EnvironmentでCloudFoundryを選択し、Multi-Target Applicationを選択

![コメント 2019-12-10 105943.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/4ec2d985-9ba1-350e-7be9-d83211eeaa35.png)
![コメント 2019-12-10 110042.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/6d2b63c9-c438-e6a2-5184-1b94b1a2ed42.png)

任意のプロジェクト名を設定してFinishを押下します。
WebIDEのWorkSpaceにMTAのprojectが作成されました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/0301a1b1-7e8e-2acf-e328-b98af42ac6d5.png)

作成されたプロジェクトを右クリック→New→HTML5 Moduleを選択すると、
再びテンプレートの選択画面が表示されるので、SAPUI5 Applicationを選択します。

![図12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/672384c6-278b-d197-1691-f1173c2dedd3.png)


![図4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/dff6b08e-c6ff-2a1e-00a5-0ee1635df214.png)
![図5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/37e557e7-fa73-7223-583d-866acf9dd30a.png)

SAPUI5 Applicationを選択して必要項目を任意に設定し、Finishを押下
MTAの配下にSAPUI5のプロジェクトが作成されています。

![図14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/a2a95b38-ce22-987d-282c-f92da56ec122.png)

とりあえずアプリを動かしてみようということで無邪気にRunを押下してみます。
rootにするファイルの選択画面が表示されるので、index.htmlを選択します。
![図15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/0fdb4d34-607e-91ed-3f37-acd54be3b265.png)
![図16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/6150924a-1453-5d16-d0ee-5578ff871308.png)


エラーで怒られて実行できなかったので、表示された設定画面でCloudFoundryの設定を参照するようにラジオボタンを変更し、CF環境の設定値を入力します。
![図17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/6e1cdb3b-f2e8-39a2-5618-f1f41a215a4d.png)

少し待ちます（右下で実行中マークが動きます。）
処理が終わるとログイン画面が表示されるのでCloud Platformのログイン情報を入力します。

無事画面が表示されました。

![図18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/3c76bd1e-6d20-a2ab-a4c9-80b064be899c.png)

![図19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/ceb338e2-ebbb-f9fe-f901-922a8c8e1fda.png)

###プロジェクトのBuild
作成したMTAをBuildしてデプロイするパッケージを作成します。
MTAプロジェクトを選択して右クリック→Build→Build with Cloud MTA Build Toolを選択

![図20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/e8cc5d58-b651-fba9-48e4-e7f7f33e771a.png)

完了するとコンソールにメッセージが表示され、
.mtarファイルが作成されることが確認できます。
![図21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/b05777c1-e002-3ddb-062d-44d013ad136d.png)

作成された.mtarファイルを選択して右クリック→Deploy→Deploy to SAP Cloud Platformを選択
デプロイ先の選択ダイアログが表示されるのでCF環境の設定を入力します
![図23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/35687300-3b83-8ea5-0ef5-5c20d7445032.png)

Deployを押下すると処理が実施されます。
コンソールにデプロイ成功のメッセージが出力されたら終了です。
![図24.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/d4907845-143a-c147-f40d-995be1d63d26.png)


###CF環境上のアプリを確認

デプロイに成功したらSAP Cloud Platform Trialからtrialサブアカウント→Spaceに移動します。
Speceを見るとApplicationに3つ増えていました。
<img width="960" alt="図25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/7a665a1e-9a57-28fb-9afd-75942d15ba04.png">

とりあえず一番上のappRouterの詳細を見てみると、
SAPUI5アプリのURLが表示されています。

![図27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/79adf6a5-5202-419a-494a-6935281f0d88.png)

純粋にこのURLをクリックしても「Not Found」と書かれているだけで悲しくなってしまいましたが、
WebIDEからRunした際のパス（例：/demodeployApp-1.0.0/index.html）をつけてあげると無事に動いてることが確認できました。

**WebIDEで実行した場合**
![図28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/19968648-0ef8-a5c4-7719-05894a2d1458.png)

**appRouterのURLにパスを追加した**
![図29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/159467/910b0178-c7b6-43b6-8009-5a26a5bc2bcc.png)

デプロイ後に確認した際、Applicationに増えていたもう一つのRouterはWebIDEから実行されているURLみたいです。

##さいごに
上記の内容でSAP Cloud Platform Trial環境でSAPUI5アプリを作成→デプロイまでを行うことができました。

今回はここまでの記事になりましたが、
Portal機能を使ってFiori LaunchPadから作成したアプリを動作できるようにしたり、
HANA DBからOData経由でCRUDをできるようにしていけるようにしていく内容も投稿したいと思います。

これからSAP Cloud PlatformやSAPUI5アプリ開発をしていくにあたって参考になればと思います。

わたしとしてもCloud Foundryをいままで使ったことがほとんどなかったのですが、
Cloud Foundry環境はSAP Cloud Platformのメインになっていくと思うので
今のうちに習得していきたいとおもいます。