初めてのPowerAppsのアプリを作成（第1部）

前回、[初めてのFlowを作成](http://qiita.com/firehouse-harris/items/cc695eb9b0f26fc0f374)して、今回はまたFlowを使ってPowerAppsのアプリを作成してみました。

## Microsoft PowerAppsとは
Microsoft PowerAppsとは新たらしいアプリのプラットホームです。Flowと同じように、コードが必要なく、ExcelやPowerPointのようなGUIでアプリを作成することができます。

PowerAppsは社内のためのアプリを作成するのは得意なので、今回は、[CRUD](https://ja.wikipedia.org/wiki/CRUD)アプリを作成してみます。

## 前提条件

- Outlookのメールアドレス。[無料で作れます。](https://outlook.live.com/owa/)

- Microsoftの職場または学校のアカウントが必要です。普通の個人的なWindowsやSkypeのアカウントは使えないのでご注意ください。職場または学校のアカウントを持っていない方は[無料でサインアップ](https://powerapps.microsoft.com/ja-jp/)ができます。

  ![sign-up.png](https://qiita-image-store.s3.amazonaws.com/0/153003/97542f0d-acf3-7c9f-253b-4ea8e70e9e51.png "sign-up.png")

## 目的

ここでは、会社のサポートのメールアドスがあって、そのアドレスまで送信された問い合わせメールを重複に返事しないようなサポートケースを管理するアプリを作成したいと仮定します。

## 新しい環境を作成

PowerAppsにサインインして、[ホーム画面](https://web.powerapps.com/)を見てください。

今回のアプリはMicrosoft Common Data Service（共通データサービス）を使うので、まず新しい環境を作成するのは必要です。

![common-data-service.png](https://qiita-image-store.s3.amazonaws.com/0/153003/9c961fcc-83c7-b6d9-f82b-dbe9b89a818b.png "common-data-service.png")


ホーム画面のCommon Data Serviceの`はじめに`のボタンを押します。

現れるダイアログで「新しい環境を作成する」を選択します.

![new-environment.png](https://qiita-image-store.s3.amazonaws.com/0/153003/f573754c-1365-89c2-7818-3da2ea78a9f6.png "new-environment.png")

次のダイアログで環境の名前と設定を入力します。他の職場のユーザーが使えるため、必ず`全てのユーザーにアクセスを許可を与する`を選択してください。`環境を作成する`のボタンを押します。

![environment-settings.png](https://qiita-image-store.s3.amazonaws.com/0/153003/23116a99-1de4-2db5-41eb-29ecc31a2644.png "environment-settings.png")

作成を実行するのは数分かかります。

![creating-database.png](https://qiita-image-store.s3.amazonaws.com/0/153003/e9d80c05-4ef8-6bbc-d918-c7c0a284dd07.png "creating-database.png")

終わると、画面の上のメニューに新しい環境の名前が表示されます。このメニューで環境を変えることができます。

![env-in-menu.png](https://qiita-image-store.s3.amazonaws.com/0/153003/72df77a0-b56b-9967-b932-c742e9d75ed9.png "env-in-menu.png")

## エンティティを作成

画面の左側のメニューのCommon Data Serviceの下にある`エンティティ`のリンクをクリックしてください。

この画面ではCommon Data Serviceと付いている様々なエンティティが表示されています。このエンティティはのビジネスよく使う「販売注文」や「製品」のような共通のデータ型です。このエンティティはそのまま使ってもいいですし、編集して他のフィールドを追加してもいいですし。

付いているエンティティを使うのは便利ですが、Common Data Serviceの機能についてもっと細かく調べるため、今回は新しいエンティティを追加します。

`新しいエンティティ`のリンクをクリックして、以下のようにエンティティの名前を付けます。

![new-entity.png](https://qiita-image-store.s3.amazonaws.com/0/153003/3d46f41b-0978-b454-1715-cbfb6d0860b3.png "new-entity.png")

`次へ`のボタンを押します。次の画面ではフィールドを追加します。フィールドとはデータベースやスプレッドシートの欄のようなことです。今回のアプリはとりあえず4つのフィールドが必要です。

- 件名 (Subject)
- 受信日時 (Received)
- 本文 (Body)
- メールID (MessageId)：これはOutlookからもらう

そして、全てのエンティティは数個の自動のフィールドが付いています。このフィールドはグレイのフォントで表示されています。自動的に更新されていて、後で役に立つかもしれないので、そのままにしてください。

![fields.png](https://qiita-image-store.s3.amazonaws.com/0/153003/89e70cc9-368d-f0e5-2ed8-ac630f65459c.png "fields.png")

テキストのフィールドは`最大長`のプロパティがあって、一応300にします。複数行テキストは限られいません。

全ての入力が完了したら、作成ボタンを押してください。これで、新しいエンティティが完成です。

## Flowでメールを読み込む

画面の左のメニューの`フロー`のリンクをクリックして、フロー画面の`一から作成`のボタンを押します。

![flow-screen.png](https://qiita-image-store.s3.amazonaws.com/0/153003/e0f12403-d81a-9825-01ef-861dcb4d3af1.png "flow-screen.png")

表示されている`PowerApps`のアクションを削除します。

![スクリーンショット 2016-12-22 16.07.51.png](https://qiita-image-store.s3.amazonaws.com/0/153003/4fad7b08-fb3c-cbac-f466-e8b5eea225ea.png "スクリーンショット 2016-12-22 16.07.51.png")

そのアクションの代わりに、「メール」を検索して、`Outlook.com - 新しい電子メールが届いたとき`を選択します。

![choose-mail.png](https://qiita-image-store.s3.amazonaws.com/0/153003/56c5fe3c-bca0-3153-ffe8-a4ccf6f349dd.png "choose-mail.png")

Outlookにサインインしてください。

![outlook-sign-in.png](https://qiita-image-store.s3.amazonaws.com/0/153003/287c028b-4f0e-2d97-afbc-86e5dda93d9a.png "outlook-sign-in.png")

`新しいステップ`のボタンを押して、`アクションの追加`を選択します。「Create a new record」を検索して`Common Data Services - Create a new record`を選択します。

`default`のデータベースを指定して、以前作成した`サポートメール`のエンティティを選択してください。

以下のように、Outlookのアクションのコンテンツをフィールドに与えます。

![new-record.png](https://qiita-image-store.s3.amazonaws.com/0/153003/2ecf30f8-c161-7329-5a58-594043b936b5.png "new-record.png")

これで、このFlowの完成です。Flowに名前を付けて、`フローの作成`のリンクをクリックします。最後に`完了`のリンクをクリックします。

## テストメールを送信

以前作ったFlowとエンティティの対応を確認するために、Flowで接続したOutlookのメールアドレスまでに、以下のような問い合わせメールを送ります。

![email.png](https://qiita-image-store.s3.amazonaws.com/0/153003/699d3b33-5426-ecc2-9cf3-f1090d9d56a4.png "email.png")

送信してから、Flowの完了には数分かかります。

Common Data Servicesのエンティティのページで以前作った`サポートメール`のエンティティを選択して、エンティティのメニューの`データ`のリンクをクリックすると、送信したメールの内容が表示されます。

![records.png](https://qiita-image-store.s3.amazonaws.com/0/153003/2f5fb493-26f9-354b-fa42-f18b31d47aec.png)

## まとめ

今回は、新しいPowerAppsの環境を作って、Common Data Servicesのエンティティを作成して、メールを読み込んでエンティティに挿入するFlowを作りました。

この記事の第2部で、以前作ったデータを使うサポートメールを管理するアプリを作成します。