GASを用いた業務改善

当記事をご覧いただきありがとうございます。 エンジニアの長山です。
 
夏頃にスプレッドシートのデータを扱うため、GASで開発を行う機会がありました。今回の記事ではGASを使って自分がどのような開発を行ったかについてお伝えできればと考えています。
GASに関して解説はしていないので、興味のある方は以下のGASに関する記事をご覧いただければと思います。
 

開発の背景

弊社ではSalesforceでデータを管理しており、そのため外部とSalesforceとの連携をするためSalsesforceコネクタ(詳しくは下部のSalesforceの公式サイト参照)を使っているという現状がありました。このSalesforceコネクタにはいくつかの制約がありました。まず、更新が6時間に一回しか行われないということです。また、データを移した際に行が変わってしまうという問題もありました。そしてデータ自体も重く扱いづらいという状況でもありました。
 
このような状況下で、ビジネスサイド側としてはリアルタイム性のあるデータが欲しいという要望が出ていました。弊社に限らず、ステータスなどの一日に複数回変更されるデータの項目を頻繁に確認したいということは度々あるかと思います。また、そもそもデータが重かったり行が変わってしまって見づらいなどの業務が非効率になっている問題も解決した方が良いという話になっていました。
そのため、Salsesforceコネクタを使うのではなく、スプレッドシートでデータを扱うようにするためにGASでの開発を行うという流れになりました。これにより、業務の改善や効率化の達成がなされるはずです。
 

開発したこと

開発した内容としては以下のとおりです。今までSalesforceコネクタで取得していたデータは更新される度にアプリ側に移します。その後そのデータをスプレッドシートに同期させ、30分に一度GASの処理を走らせてデータを更新するという一連の処理を開発しました。この処理を終えたスプレッドシートを業務用のスプレッドシートに同期させ、ビジネスサイドでデータの確認などの作業を行います。
Salesforceからスプレッドシートまでのデータの流れを図示化すると下図のようになっています。開発用のスプレッドシートでは蓄積する用のシートと、処理を行うシートの2つに分かれており、アプリ側から処理を行うシートにデータが同期されます。GASでは処理を行うシートのデータと蓄積用のデータを照らし合わせて蓄積する側のシートで更新作業を行っています。
<Salesforceからのデータの流れ>
 
この開発によって以下のような効果が生まれました。
  1. リアルタイム性の担保ができた。
  1. 動作が重くなることの軽減や行が変わってしまうことの改善
1に関しては背景部分でも触れましたが、Salesforceコネクタでは6時間に一度しか更新ができていませんでした。今回の開発によって30分ごとに更新されるようになったためリアルタイム性の担保ができました。ビジネスサイド側としても十分な頻度の更新となり、リアルタイムに近い形でデータの確認ができるようになりました。業務側の要望に沿う実装ができたと言えます。
また2に関しては、データ量が膨大であるため完全にクリアできたわけではありませんが、動作の軽減や行が変わってしまい修正が必要である不具合の解消に繋がりました。
 

まとめ

今回はGASを用いた開発を通じて、日々の業務で困っていたり効率化したりしたいビジネスサイドの要望に応えたという記事を書かせていただきました。こういった開発を通じてビジネスサイド側の課題を解決することはビジネスサイド側の方からも感謝されますし、自社開発ならではの面白さがあるということを実感しました。また、ユーティルの開発部は特定部署のお伺い聞きといった役割ではなく、会社全体のハブとしての役割を担っていることも実感できました。
ユーティルでは事業成長を助けるエンジニア仲間を探しています。この記事を見て面白そうだな、やってみたいなと感じた方は弊社にピッタリだと思います!
もしご興味をお持ちいただけましたらぜひ、開発部一同お待ちしております。