【SAPUI5】OData(8) ODataを使ったSAPUI5アプリケーションの作り方 開発編-1

##概要
WebIDEを使うと、ウィザードに従って設定するだけでODataを使ったアプリケーションを作ることができます。（ほぼプログラミング不要！）
各構成要素（ファイルなど）にどのような設定があって、どうやってODataがつながるのか理解したいので、まずはウィザードで作成してそのあと設定内容を確認していこうと思います。

※OData関連の投稿一覧は以下の記事をご参照ください。
[【SAPUI5】OData(1) ODataとは](https://qiita.com/tami/items/411a226d1ea6bb25b5f1)

##ゴール
SAP Gateway Demo SystemのODataを使って、受注伝票のリストを表示します。
（SAP Gateway Demo Systemについては、[前回](https://qiita.com/tami/items/510a28655ee1af6254ea)の記事をご参照ください）

##ステップ
1. テンプレートからアプリを作成
2. データソース（OData）を指定
---このページではここまで---

3. ビューのレイアウトを作成

###1. テンプレートからアプリを作成
WebIDEのホーム画面で、New Project from Templateを選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/e58f1776-2716-d863-a98a-918ceeffd9bb.png)

SAPUI5 Applicationを選択します。色々なテンプレートがありますが、このテンプレートはシンプルなガラだけを作ってくれます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/23b16cda-ed0c-a9d6-9c99-1bf63a042b0d.png)

プロジェクト名、名前空間を入力します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/39d8d9b4-ab6f-9bc8-40f8-bb823ec2b390.png)

ビュー名を入力してFinishを押します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/66dc1609-8b53-677a-b8df-5ceea4a039c0.png)

以下のようにフォルダ、ファイルが作られました。
これらのファイルの意味については以下の記事を参考にしてください。（説明がないものもありますが）
[【SAPUI5】入門編の記事まとめ](https://qiita.com/tami/items/53990a14e5ca919ec35a)
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/805de6a6-78c4-627f-29a0-67e9e8d119a6.png)

この段階で実行してみます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/360c8689-b532-e200-6538-e300443e0e9f.png)

ポップアップが出たら、index.htmlを選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/cac07c70-3be1-d814-5590-07376409526d.png)

タイトルだけのシンプルなアプリができました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/e38227c4-269a-1dac-d3b3-5776f7e7153d.png)

###2. データソース（OData）を指定
manifest.jsonファイルを開いて画面下にある"Descriptor Editor"のタブを開きます。
これまではjson形式で編集していましたが、実は設定画面が用意されていたのです。
<img width="356" alt="manifest.png" src="https://qiita-image-store.s3.amazonaws.com/0/276021/a7170ddb-c7c6-4458-78bf-ae5ea162e26e.png">

"Data Sources"タブを開き、+ボタンを押します。
<img width="641" alt="manifest2.png" src="https://qiita-image-store.s3.amazonaws.com/0/276021/32a2ad5f-f47b-0708-3392-eb12dda5a4a6.png">

"Service Catalog"を選択し、プルダウンからES5を選択します。
Servicesのところに"GWSAMPLE_BASIC"と打ち込んで検索するとサービスが表示されるのでそれを選択します。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/39d50f89-463e-3480-183b-0ad6a724d2b4.png)

"Use default model"を選択すると、選択したデータソースがデフォルトのモデルに設定されます。デフォルトのモデルはアプリ実行時に自動的に読み込まれます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/da733ce9-48e3-da54-37db-89f9987b96ca.png)

これでデータソースの指定が完了しました。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/da7f6ae8-62d3-9b9f-f0a2-144bdbb0d678.png)

Data Sourcesタブでは以下のように見えます。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/f617d586-c37e-8581-300f-edc2beabb2b8.png)

Modelsタブでは"Default"の行が追加され、データソースに上記のサービスが設定されています。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/43c2f56d-820e-bf70-e981-5c72552a7d51.png)

##自動登録されたもの
ここまでの設定の結果、自動で登録されたものを確認します。
###manifest.json
manifest.jsonファイルをDescriptor EditorからCode Editorに切り替えて見てみます。
"sap.app"配下に以下のコードが追加されています。ODataの取得元やバージョンに関する情報であることがわかります。

```json
		"dataSources": {
			"GWSAMPLE_BASIC": {
				"uri": "/ES5/sap/opu/odata/iwbep/GWSAMPLE_BASIC/",
				"type": "OData",
				"settings": {
					"odataVersion": "2.0",
					"localUri": "localService/metadata.xml"
				}
			}
		}
```

"models"配下に以下のようにデフォルトのモデルが設定されています。デフォルトのモデルなのでモデル名がブランク""になっています。

```json
			"": {
				"type": "sap.ui.model.odata.v2.ODataModel",
				"settings": {
					"defaultOperationMode": "Server",
					"defaultBindingMode": "OneWay",
					"defaultCountMode": "Request"
				},
				"dataSource": "GWSAMPLE_BASIC",
				"preload": true
			}
```
###localServiceフォルダ
localServiceフォルダと、metadata.xmlファイルが作成されています。
これは、サーバに接続しない状態でもテストができるようにするための設定です。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/08354302-870c-e431-fdc6-e8b269b4bb05.png)

metadata.xmlの中身は以下のようになっています。[前回](https://qiita.com/tami/items/510a28655ee1af6254ea)紹介したEntity Setがすべて含まれています。
![image.png](https://qiita-image-store.s3.amazonaws.com/0/276021/a40e3321-20c0-81af-bfb2-2770775aa3db.png)

##参考
[SAPUI5 Tutorial with WebIDE. Part I. How to Consume Custom OData in SAPUI5 Application](https://sapyard.com/sapui5-tutorial-part-i-how-to-consume-custom-odata-in-sapui5-application/)

##関連記事
[OData(7) ODataを使ったSAPUI5アプリケーションの作り方 準備編](https://qiita.com/tami/items/510a28655ee1af6254ea)
[OData(9) ODataを使ったSAPUI5アプリケーションの作り方 開発編-2](https://qiita.com/tami/items/bdbd8774ea9527ea6790)