Forguncyを使って経費精算アプリを開発してみた

はじめに

この記事の筆者の私は、2017年よりベトナムから日本へ来て、2018年ハイペリオンに入社しました。
テスターとしてのキャリアを開始し、単体テスト、結合テスト、総合テストを一通り経験。
品質保証計画プロジェクトへメンバーとして参加するなど、品質管理のエキスパートとして経験を重ねてきました。
そして、今回社内の技術検証でGoogle Appsheetというノーコードツールを試しました。

開発の目的

経費精算業務をExcelフォーム入力からWebアプリ化

課題

  • 既存の経費精算業務において、各社員により個別のExcelファイルで申請しているので、情報が分散している。
  • 旅費交通費を手入力していることで、業務外の作業工数がかかっている。

Forguncy選定のポイント

  • ForguncyはMicrosoft Excelによく似たユーザーインタフェースと操作性を持った業務アプリ構築ツールなので、既存の経費精算入力と同じように作業ができ、ユーザー教育コストを削減できる。
  • Forguncyはノーコードツールなので、プログラミングの専門知識が不要、且つプログラミング言語やITスキルのないユーザーでも開発でき、開発コストの削減・運用負担軽減ができる。
  • 多機能なプラットフォームのため、業務内容や要望に応じて柔軟にカスタマイズが可能。

Forguncy導入の成果

  • システム化を行うことで情報の統一化ができ、作業効率の改善ができた。
  • 交通系ICカードの履歴情報をWebアプリに取り込んだことで、作業負荷の軽減に繋がった。

開発機能のご紹介

画面遷移図

経費精算システムのメニュー

出金伝票一覧、出金伝票明細入力、旅費交通費インポート画面への遷移を行う。

出金伝票一覧

登録した出金伝票を検索し一覧表示する画面。
また、選択した出金伝票の詳細情報を表示するための出金伝票明細一覧画面への遷移も行う。

出金伝票明細一覧

対象年月の経費精算を行うために入力した出金伝票明細を、一覧で確認できる画面。
また、出金伝票明細を登録・更新する画面、旅費交通費ファイルをインポートする画面への遷移も行う。

キーポイント

  • 「合計」が表示されているレコードの「金額」から自動で計算される
  • 「金額(経理処理用)」と「合計(経理処理用)」が自動で各数字に分けられる

出金伝票登録

出金伝票&出金伝票明細の情報を登録・更新するための画面。

キーポイント

  • 処理モードにより、表示の仕方が調整あり
  • 選択された「部門」により、該当する「氏名」が取得される
  • 「伝票ID」と「明細No」が自動で連番が設定される
  • 「曜日」が記入された「年」と「月」と「日」により、自動で計算される
  • 「伝票合計」が記入された「金額」により、自動で計算される

旅費交通費インポート

CSVファイルから旅費交通費情報を取得し、出金伝票明細に登録するための画面。

キーポイント

  • 処理モードにより、表示の仕方が調整あり
  • 選択された「部門」により、該当する「氏名」が取得される
  • 「伝票ID」が自動で連番を設定される
  • 「伝票合計」が取込された金額により、自動で計算される

開発時の課題

やった!この処理ができた!

Forguncyで開発をする際に、問題点を見つけた。それは、複数レコードを同時に登録するとき時に、登録対象レコードと相応の連番IDを正確に決めることだ。
このことから、登録対象は以下の条件を満たすレコードのみとなる。

  • 「年月日」が「開始日」と「終了日」の間
  • 「対象」列に「対象」と表示

結果はバラバラに。

まずは、一覧で連番IDを計算するための列を追加し、対象のレコードなら相応の連番IDを数えるためのIFとCOUNTA結合の数式を使用し、追加した列に直接設定してみた。
Forguncyの一覧リスト部分では各行が個別に処理が行われ、複数の行を同時に処理する数式が理解できなかったので失敗した。

次は、中間変数を追加しループを使用する方法を考えた。
通常は、CやJavaなど他のプログラミング言語/プラットフォームで「forループ」を使い、処理しているIDの取得メソッドを結合すれば、この問題を簡単に解決できる。
しかし、Forguncyでは「forループ」のような処理コマンドはまだサポートされていないので、自動採番ロジックに挑戦した。


つまり、数えるための中間変数にODATA取得方法で既存最大連番IDを指定、ループの中で対象レコードなら連番IDの変数が「中間変数+1」を採番、レコードを登録し、中間変数に連番IDを再設定することになる。

将来の改善ポイント

短い期間で開発したので、今回作成した経費精算アプリは改善する余地が多々ある。
改善ポイントは以下となる。

  • 出金伝票一覧画面で、検索対象期間をFROM~TOに変更する
  • ログインとユーザー権限の設定
  • 共有メニュー(メインメニュー画面を戻るボタンと、ログインしているユーザー情報などを表示するため。)
  • 同時操作の仕組み(最新連番IDを決める方法や、操作しているテーブルがロックなど。) 

etc…

まとめ

Forguncyの開発は、他のノーコード開発ツールより開発ロジックとExcel数式の知識が必要だけど、カスタマイズ性が高く調整しやすいよ。
私は、経費精算アプリは初めてForguncyで開発する経験だったけど、開発期間を通してたくさん問題に出会ったが勉強できたコトも多いので、Forguncyでアプリ開発をお勧めしたい。
開発経験があまりなくても、便利なアプリを開発できるので面白いかな、有意義かな、皆さんもForguncyで開発を体験しようー。
だけど、もしも開発が難しかったら、ハイペリオンにご相談くださいね。

補足

難しかったこと

  • レコードを登録した後、他のページへ移動せず本ページ登録された状態でリロードする方法
  • 複雑なExcel数式(Forguncyとは関係ないが、難易度の高い数式の利用があったため。)

勉強になったこと

  • Forguncyの仕組みを利用したレコードのID採番方法