多様な働き方を支える出社管理アプリを Amazon Honeycode で作ってみた

2020-08-03
デベロッパーのためのクラウド活用方法

Author : 酒井 賢

はじめまして。ソリューションアーキテクトの酒井と申します。

皆様は日々の業務において、販売管理や勤怠管理など数多くのアプリケーションを利用されていると思います。しかし、それらではまかない切れない多くの業務に対して、スプレッドシートを活用されているのではないでしょうか ?

私自身もこれまでにプロジェクト管理、資産管理、メンバーの長期休暇管理など、管理表と名のつく多くのスプレッドシートを業務で利用してきました。 このスプレッドシートによる業務運用は手軽に始められる上に自由度が高い反面、関係者の増加とともに以下の問題に直面するケースがあります。

  • 複数の利用者が書き込みを行う際に順番待ちが生じ、タイムリーに利用できない。
  • バックアップや変更管理によって同様のファイルが量産され、最新版が行方不明になる。
  • 承認や確認依頼の際、メールや電話などスプレッドシート以外のツールが併用され、業務フローが曖昧になる。

カスタムアプリケーションの構築はこれら問題の解決策として有効ですが、コストやリードタイム、技術者の確保が課題となります。さらには働き方改革やテレワーク推進など、業務環境の変化に対する新たな施策実行と IT によるサポートが早急に求められている状況です。

そこで本日はプログラミングスキルがなくとも迅速にビジネスアプリケーションを構築できる、Amazon Honeycode をご紹介したいと思います。

以下でご紹介する内容は 2020 年 7 月 15 日時点の Amazon Honeycode Beta 版を元にしており、今後変更される可能性がある点にご注意ください。 


Amazon Honeycode とは

Amazon Honeycode はプログラムコードを記述せずに、モバイル対応の Web アプリケーションを構築する事ができるサービスです。構築したアプリケーションは Webブラウザー、iOS および Android 用のネイティブアプリから利用可能です。まずは Amazon Honeycode を理解する上で重要な 3 つの機能をご紹介します。

Table

スプレッドシートと同様に行と列を持つデータを格納します。データのフィルタリング、データの書式設定、他の Table のデータ参照などが可能です。 

img_honeycode-attendance-management-01

クリックすると拡大します

Builder

アプリケーションの外観やレイアウトのカスタマイズ、ボタンクリック時の処理や画面遷移などを定義します。 

img_honeycode-attendance-management-02

クリックすると拡大します

Automations

スケジュールされた日時やデータが追加・変更されたタイミングで、通知の送信やデータ操作を実行できます。 

img_honeycode-attendance-management-03

クリックすると拡大します

次は Amazon Honeycode を使ってアプリケーションを作っていきたいと思います。 


アプリを作ってみる

昨今テレワークによる業務が広がりを見せつつある一方で、必要に迫られて出社をされている方も多いかと思います。企業としても従業員の多様な働き方を実現しながらも動向を把握するため、出社をする際はマネージャーへの申請を行うケースがあるのではないでしょうか。このような状況の変化に対する迅速なアプリケーション構築は Amazon Honeycode が適している 1 つの例です。

そこで今回は従業員が出社や社外訪問をする際に、マネージャーへ申請を行うためのアプリケーションを作りたいと思います。開発の流れは以下の通りです。

  1. サンプルデータ(CSV ファイル)を準備する
  2. Amazon Honeycode へサンプルデータをインポートする
  3. サンプルデータを元にデータモデルを作る
  4. アプリケーションを作る (ウィザード編)
  5. アプリケーションを作る (Builder 編)
  6. 承認フローを定義する

では早速アプリケーションの作成を始めましょう !


サンプルデータ (CSV ファイル) を準備する

まずはサンプルデータを CSV 形式のファイルとして準備します。

今回は出社申請業務に必要な画像のようなデータを用意しました。データ件数は少量でも構いませんが、選択式で入力を行うマスタデータ項目を網羅しておくと、後のデータモデル作成が楽になります。

img_honeycode-attendance-management-04

クリックすると拡大します

列名 論理名
application date 申請日
appplicant 申請者
work day 出社日
destination 行き先
reason 理由
manager 承認者
result 承認結果

Amazon Honeycode へサンプルデータをインポートする

次は準備したサンプルデータを Amazon Honeycode にインポートし、データモデルの基礎を作ります。

こちらから Amazon Honeycode にログインし、画面右上の Create workbook ボタンをクリックして Import CSV file を選択します。

img_honeycode-attendance-management-05

クリックすると拡大します

まだアカウントを作られていない方は、この機会にログイン画面の Create one をクリックしてアカウントを作ってみてください。

img_honeycode-attendance-management-06

クリックすると拡大します

CSV ファイルのインポートが完了すると、Table が作成されます。Done ボタンをクリックして、データモデルを作って行きましょう !

img_honeycode-attendance-management-07

クリックすると拡大します


サンプルデータを元にデータモデルを作る

データモデル作成の手始めに Workbook と Table 名を決めましょう。今回は Workbook を attendance management、Table 名を attendance としました。いずれも画面上部のスリードットをクリックして変更します。 

img_honeycode-attendance-management-08

クリックすると拡大します

次は列の書式を定義します。書式の設定は列をポイントして画面上部の Formats をクリック、表示されたペインで COLUMN FORMAT を指定した上で Apply ボタンをクリックします。ここでは以下の列の書式を変更しました。 

列名 COLUMN FORMAT
application date Date
appplicant Contact
work day Date
manager Contact
img_honeycode-attendance-management-09

クリックすると拡大します


* 参考

Formats を Contact と指定した列において、インポートしたサンプルデータとユーザーアカウントの関連付けが現状では自動的に行われません。
データを削除せずアプリケーションで利用する場合は、各セルをクリックしてユーザーを再度選択してください。

img_honeycode-attendance-management-10

残った destination 列と result 列は選択式の入力とするため、マスターテーブルを作成します。

画面上部の Wizards をクリックし、表示されたペインで Create Picklists をクリックします。

img_honeycode-attendance-management-11

クリックすると拡大します

Create picklists for: で Table を選択、For unique values in: で列を選択し、Apply ボタンをクリックします。

img_honeycode-attendance-management-12

クリックすると拡大します

この操作を desitination 列と result 列に対して実施した上で、Go ボタンをクリックします。処理が完了すると、destination 列と result 列のデータを元にマスターテーブルが自動的に作成され、それぞれの列が選択式のデータ項目に変化します。

img_honeycode-attendance-management-13

クリックすると拡大します

サンプルデータでマスタデータが網羅されていない場合は、この段階でマスターテーブルに対してデータを追加します。データの追加はスプレッドシート左下の「+」をクリックします。

データモデルの作成は以上です。次はアプリケーションを作ります !

img_honeycode-attendance-management-14

クリックすると拡大します


アプリケーションを作る (ウィザード編)

アプリケーションの作成には前述の Builder を用います。
真っ白な画面にデータ項目やボタンを1つずつ配置しながら画面を構成できますが、本日はスピードを優先し、お手軽なウィザードを用いて基礎的なアプリケーションを作成し、それを改修する流れで構築をしたいと思います。  

アプリケーションを作成するウィザードを起動するため、画面上部の Build app アイコンをクリックし、Use app wizard を選択します。 

img_honeycode-attendance-management-15

クリックすると拡大します

ウィザードではアプリケーションを作成する Table の選択から始まります。

今回のアプリケーションでは申請データの操作を行うため、先ほど作成したデータモデルの中から申請データを格納する attendance を Source として選択します。

Table の選択に続いては一覧画面のデザインを行います。一覧画面には多くのデータ項目を表示したくなるのが人情ですが、今回はモバイル端末からの利用を想定し、画像に示す最低限のデータ項目のみを表示します。データ項目の削除はXボタンをクリック、データ項目の追加は + Add column をクリック、データ項目の順番を入れ替える場合はデータ項目左側のドットをドラッグします。

一覧画面に表示するデータ項目が決定したら画面右下の Next ボタンをクリックします。

img_honeycode-attendance-management-16

クリックすると拡大します

続いては単票画面のデザインです。

単票画面では一覧画面で表示されないデータ項目もすべて表示したいので、データ項目の削除は行いません。初期状態ではすべてのデータ項目が編集不可能になっていますが、マネージャーによる承認行為を行うため、result を変更可能にします。データ項目を変更可能にするためには鉛筆アイコンをクリックします。

画面のデザインが完了したら Next ボタンをクリックしてウィザードを先に進めます。

img_honeycode-attendance-management-17

クリックすると拡大します

最後はデータエントリーを行うフォーム画面のデザインです。

申請データを登録する際にはほとんどのデータ項目を入力する必要がありますが、承認結果データである result を申請者が入力する必要はありません。入力をさせないデータ項目の削除は X ボタンをクリックします(画面キャプチャは result を削除する前のものです)。

画面のデザインが完了したら Apply ボタンをクリックします。

img_honeycode-attendance-management-18

クリックすると拡大します

ここまでお付き合いいただきました皆様、お疲れさまです。これで基礎となるアプリケーションが作成できました。

しかし、さらに使い勝手を向上させるため、Builder を使ってもう少しだけ手直しをします。まずは画面右上の X をクリックしてウィザードを終了させます。


アプリケーションを作る (Builder 編)

続いては Builder を使ってアプリケーションを改修します。

Builder の起動は画面左上の Builder アイコンをクリック、今回作成したアプリケーションである Attendance をクリックします。

img_honeycode-attendance-management-19

クリックすると拡大します


* 参考

Builder では Screen と呼ばれるアプリケーションの画面に対して、データを表示する部品や処理の起点となるボタンなど、各種 Object を配置してアプリケーションを組み立てます。 

img_honeycode-attendance-management-20

最初の手直しは単票画面に含まれる不要な機能を除去します。
ウィザードで作成したアプリケーションは、単票から異なるデータの単票へ表示を切り替える Jump to item 機能が含まれていますが、今回は利用しないため以下の手順に沿って画面上で非表示とします。

  1. 画面左側のペイン Screens で単票画面である attendance detail を選択する
  2. 画面中央のペインで Jump to item 機能を含む Block を選択する(*)
  3. 画面右側のペイン BLOCK PROPERTIES で DISPLAY タブを選択する(**)
  4. Set visibility に =FALSE と入力する

* Block には Segment や Content Boxなどの Object が入れ子になっています。クリックする箇所によっては Block 以外の Object が選択される場合がありますので、Block が選択されている状態を確認してください。

** 画面右側のペイン BLOCK PROPERTIES が表示されない場合、画面上部の Properties をクリックしてください。

img_honeycode-attendance-management-21

クリックすると拡大します

続いての手直しはデータエントリーを行うフォーム画面です。
利用者が申請を行う際の入力負荷が少しでも軽減されるよう、入力項目を変更します。1つ目は申請日を記録する application date の改善です。申請もれによる事後申請などのイレギュラーケースを除くと、申請日は操作の日時から判断できます。そのため、以下の手順に沿って申請日の初期値に操作日時を設定し、利用者に入力をさせない仕様とします。

  1. 画面左側のペイン Screens で単票画面である attendance form を選択する
  2. 画面中央のペインで application date のデータ値を入力する Data Cell を選択する
  3. 画面右側のペイン DATA CELL PROPERTIES で Editable チェックを Off にする
  4. 画面右側のペインで DATA タブ、Set type で Variable を選択する
  5. Set initial value に =NOW()+9/24 と入力する(***)

*** Amazon Honeycode では現在時刻を示す NOW() や今日を示す TODAY() などの関数と数式を利用可能です。NOW() 関数、TODAY() 関数のいずれも UTC を基準としているため、JST への変換を行っています。

img_honeycode-attendance-management-22

クリックすると拡大します

2 つ目の改善は申請者を記録する applicant です。
代理申請を除くと申請者は操作を行ったユーザーと判断できますので、以下の手順に沿って申請者の初期値にログインユーザーを設定するとともに、利用者に入力をさせない仕様とします。

  1. 画面中央のペインで applicant のデータ値を入力する Data Cell を選択する
  2. 画面右側のペイン DATA CELL PROPERTIES で Editable チェックを Off にする
  3. 画面右側のペインで DATA タブ、Set type で Variable を選択する
  4. Set initial value に =$[SYS_USER] と入力する
img_honeycode-attendance-management-23

クリックすると拡大します

手直しは以上で完了です。最後に承認フローを定義してアプリケーションを完成させましょう! 


承認フローを定義する

本アプリケーションの利用者は出社申請を行う方と承認を行うマネージャーです。その間をつなぐフローに必要な以下機能を作っていきます。

  • 申請者が出社申請を登録した際、マネージャーへ承認依頼メールを送信する
  • マネージャーが承認を行った際、申請者へ結果通知メールを送信する

まずはマネージャーへの承認依頼メール送信機能を作るべく、Automations を起動します。 Automations は画面左上の Automations アイコンをクリック、続いて + をクリックして起動します。 

img_honeycode-attendance-management-24

クリックすると拡大します

Automations の作成画面が表示されますので、まずは名前をつけたいと思います。

画面上部のスリードットをクリック、もしくは画面左側の Automations 一覧で右クリックをして Rename を選択します。ここでは approval request と命名しました。

img_honeycode-attendance-management-25

クリックすると拡大します

Automations の作成では、最初に処理が発生するタイミングを指定します。

申請者による出社申請を起点とするため、Row Added or Deleted を選択、In table で申請データを格納する attendance を選択、 Starts when で a row is added to を選択します。

img_honeycode-attendance-management-26

クリックすると拡大します

処理の発生タイミングを定義したあとは処理内容を定義します。

Add actions をクリックし、Notify を選択します。 

img_honeycode-attendance-management-27

クリックすると拡大します

ここでは送信先、件名、メッセージを入力しますが、=manager との形式でデータ項目名を指定可能です。データ項目名を指定した箇所は処理対象のデータ値に置換された上でメールが送信されますので、宛先や文面を動的に構成できます。 

img_honeycode-attendance-management-28

クリックすると拡大します

承認依頼メールをこのように定義をしました。

下線が引かれている箇所は =manager との形式でデータ項目名を指定しています。自動的にデータ値へ置き換えてくれるあたりに優しさを感じますね。表記のデータ値はあくまで一例であり、送信されるメールの文面は Automations で処理されるデータの値を用いて構成されますので、ご安心ください。

img_honeycode-attendance-management-29

クリックすると拡大します

以上で承認依頼メール送信機能の定義が完了しました。

しかしここで重要なポイントがあります。Automations で定義を行ったあとに機能を利用するためには、画面右上の Publish ボタンをクリックする必要があります。Publish されていない、つまりは変更が加えられている状態では画面右上に Draft と表示されますので、注目していただけるとハマりポイントを回避できます。

img_honeycode-attendance-management-30

クリックすると拡大します


* 参考

Notify Action で画面の警告が表示される場合があります。この状態は To に入力したデータ項目の値が Table で入力されておらず、データ値への置き換えができない状態を示しています。データエントリーの際は入力した manager 宛に通知が送信されますので、警告を気にせず進めていただいて構いません。 

img_honeycode-attendance-management-31

続いては申請者への結果通知メール送信機能を作ります。
画面左側の + をクリックして画面を起動し、名前をつけます。 

img_honeycode-attendance-management-32

クリックすると拡大します

処理が発生するタイミングは承認者による承認結果登録を起点とするため、Column Changes を選択、In table で申請データを格納する attendance を選択、 Starts when this column changes で承認結果データである =[result] を選択、Run automation if this formula is TRUE では承認結果の入力を示す式 =[result]<>"" を入力します。 

img_honeycode-attendance-management-33

クリックすると拡大します

処理の発生タイミングを定義したあとは、処理内容を定義するため Add actions をクリックし、Notify を選択します。 

img_honeycode-attendance-management-34

クリックすると拡大します

結果通知メールは画像の通り定義をしました。
ここでも忘れずに、画面右上の Publish をクリックします。 

img_honeycode-attendance-management-35

クリックすると拡大します

これにてアプリケーションの作成は完了です。
アプリケーションの利用を開始するため、関係者に公開をしましょう! 


アプリケーションを公開する

作成したアプリケーションの公開は関係者に Share をします。

Share を行うためには、画面左上の Amazon Honeycode アイコンをクリックし、Workbook とアプリケーションの一覧を表示します。公開したいアプリケーション右端のスリードットの左側をカーソルでポイントすると、Share ボタンが表示されますのでクリックします。

img_honeycode-attendance-management-36

クリックすると拡大します

公開先のユーザーアカウントを選択する画面が表示されますので、ユーザー名やメールアドレスで検索し、リストに追加した上で Update ボタンをクリックします。 

img_honeycode-attendance-management-37

クリックすると拡大します

リストに追加されたユーザーのメールアドレスにこのようなメールが届きます。

ブラウザやスマートフォンのアプリから公開されたアプリケーションを利用してください。

img_honeycode-attendance-management-38

クリックすると拡大します


* 参考

関係者のユーザーアカウントを Amazon Honeycode で利用するためには、Team member として招待をします。

招待の手順は画面左下の Teams アイコンをクリック、チーム名をクリックし、画面右上の Add team member をクリックします。

img_honeycode-attendance-management-39

クリックすると拡大します

表示された画面でメンバーのメールアドレスを入力、役割を Admin と Member のいずれかから選択し、Invite ボタンをクリックします。役割の違いについては以下のとおりです。複数のユーザーに対して Admin の役割を付与できます。

  • Admin : Workbook、アプリケーション、Automations の作成。Plan とチームメンバーの管理
  • Member : Workbook、アプリケーション、Automations の作成
img_honeycode-attendance-management-40

クリックすると拡大します

招待を受けたユーザーにはこのようなメールが送信されます。Go to Honeycode ボタンをクリックして Amazon Honeycode へログインします。 

img_honeycode-attendance-management-41

クリックすると拡大します

チームへの参加意思を確認するメッセージが表示されますので、Join ボタンをクリックします。 

img_honeycode-attendance-management-42

クリックすると拡大します


スマートフォンで出社申請を行う

さてここからは、ユースケースに沿ってアプリケーションを利用して動作確認を行います。まずはアプリケーションの公開通知を受け取ったユーザーがスマートフォンから出社申請をします。

iOS の方はこちらから、Android の方はこちらから Amazon Honeycode アプリをインストールしてください。  

Amazon Honeycode アプリを起動して最初の操作はログインです。
アカウントをお持ちでない方はこの際に是非お作りください。

アカウント作成時に入力したメールアドレスとパスワードでログインをすると、自分に公開されているアプリケーションの一覧が表示されます。今回作成したアプリケーションの Attendance をタップして起動します。

img_honeycode-attendance-management-43

クリックすると拡大します

アプリケーションが起動すると、ホーム画面の申請一覧が表示されます。データモデルを作成する際にインポートしたサンプルデータを削除していない場合はリストに表示されます。

画面右上の + Add をタップして出社申請を行います。

img_honeycode-attendance-management-44

クリックすると拡大します

出社申請のエントリー画面が表示されましたので、入力可能な項目を埋めていきます。 

img_honeycode-attendance-management-45

クリックすると拡大します

データモデルの作成をする際に各データ項目の formats を定めました。アプリケーションでもその結果が踏襲され、データに合わせた入力が可能です。 

work day

Date

img_honeycode-attendance-management-46

destination

Picklist

img_honeycode-attendance-management-47

manager

Contact

img_honeycode-attendance-management-48

データ入力が完了したら Done ボタンをクリックし、入力を確定させます。 

img_honeycode-attendance-management-49

クリックすると拡大します

申請一覧画面に遷移し、直前の操作で作成した申請が一覧に表示されます。 

img_honeycode-attendance-management-50

クリックすると拡大します

申請データの登録に合わせて Automations が実行され、マネージャーにはこのようなメールが送信されました。 

img_honeycode-attendance-management-51

クリックすると拡大します


Web ブラウザで申請を承認する

続いては承認依頼通知を受け取ったマネージャーが出社申請を承認します。Amazon Honeycode は Webブラウザからも利用可能なため、マネージャーはブラウザから承認を行ってみたいと思います。

Chrome、Edge、Firefox、Safari などの Web ブラウザで Amazon Honeycode にアクセスし、今回作成したアプリケーションの Attendance をクリックして起動します。

img_honeycode-attendance-management-52

クリックすると拡大します

アプリケーションが起動すると、ホーム画面の申請一覧が表示されます。承認結果が空白のデータをクリックし、出社申請の承認を行います。 

img_honeycode-attendance-management-53

クリックすると拡大します

出社申請の詳細画面が表示されましたので、内容を確認して承認結果を選択します。 

img_honeycode-attendance-management-54

クリックすると拡大します

選択すると自動的にデータが保存され、申請者にはこのようなメールが送信されました。 

img_honeycode-attendance-management-55

クリックすると拡大します

無事に出社申請業務を実施できました。これで動作確認は完了です ! 


まとめ

いかがでしたしょうか。
Amazon Honeycode を使ってプログラミングをせずにビジネスアプリケーションを作成できました。Automations を用いた通知とモバイルアプリの組み合わせで、時間や場所の制約にとわられないスピーディーな業務の進行が可能です。

iOS や Android のアプリストアから Amazon Honeycode アプリをダウンロードしてログインするだけで、利用者に必要なアプリケーションが表示され、配布の手間がありません。

無料でご利用可能なプランがございますので、是非こちらからアカウントを作成し、皆様の業務を円滑に進めるためのアプリケーションを作成してください !

筆者プロフィール

photo_sakai_ken

酒井 賢 (Sakai Ken)
アマゾン ウェブ サービス ジャパン株式会社
ソリューションアーキテクト

SIer でエンタープライズ企業に対するシステム構築を経験し、ビジネス現場でのクラウド利用を加速するべく現職に。
オートバイとキャンプが趣味。テントを積んだバイクで日本全国のキャンプ場を駆け回っている。

AWS のベストプラクティスを毎月無料でお試しいただけます

さらに最新記事・デベロッパー向けイベントを検索

下記の項目で絞り込む
絞り込みを解除 ≫
フィルタ
フィルタ
1

AWS を無料でお試しいただけます

AWS 無料利用枠の詳細はこちら ≫
5 ステップでアカウント作成できます
無料サインアップ ≫
ご不明な点がおありですか?
日本担当チームへ相談する