
お初にお目にかかります。ITS本部の望月です。
普段はサーバー運用のお仕事をさせてもらっている一兵卒です。
いろいろ悩んだ結果、サーバー運用チームが業務で使っているSalesforceを活用した簡易スクリプト作成について書くことにしました。
(本当はラブライブについて書きたかったんですがエンジニア要素が見当たりませんでした・・・orz)
1. Salesforceとは何ぞや?
さて読者の皆様、Salesforceってご存知ですか?
最近だと電車の車内広告を打ってたりもするので聞いたことくらいはある方もいますかね?
Salesforceとは、Salesforce.com社が提供する、顧客情報や案件情報をデータベース化して管理できる便利なサービスです。
また、クラウド環境で使用できるサービスで、導入時のサーバー構築や定期的なメンテナンスは不要、
インターネットさえあればいつでもどこでも使えます!
Salesforceは一般的なRDBと同じようにテーブル(任意で作成することも可能)をもっています。
私たちはその各テーブルに対して、管理対象情報のレコードを追加・更新・削除していくことで、
効率的な業務管理を実現しているのです。
2. 本題:Salesforceの機能を使って業務を効率化!
長い前置きでSalesforceのほんのさわりの部分をお話ししたところで・・・本題です!
Salesforceには「フロー」という機能があります。
テーブルのレコードを自動で操作するスクリプトをGUIから簡単に作れる、という機能です。
今回はそのSalesforceの「フロー」という機能を用いて業務効率化!
・・・する練習として1つ処理を作った話をしたいと思います。
2-1. アプリゲームへの課金額を[アプリ名/課金日]で集計する
どうせ 遊び 練習で作るんだから業務と関係ないものを作りたいと思い考えた結果、
アプリゲームへの課金歴をデータ化し、対象アプリごとに照合して集計してみようと思い立ちました。
なぜアプリか? なんとかしてラブライブを話に出そうと悪あがいた結果です。大目に見てください。
以下、今回作る処理の要件です。
- アプリへの課金1回につき、[対象アプリ名/課金額/課金日]情報を持つレコード(以降「課金レコード」)を1件作成
- 条件入力欄に[アプリ名/課金日(From)/課金日(To)]を入力
- テーブル内のレコードから、条件に合致する課金レコードを全件抽出し、「課金額」合計を集計
- 集計結果を出力
<用意するもの>

■課金情報を入力したレコード
■課金額を照合するフロー
2-2. 処理の流れを決める
今回の処理の流れは以下の通り。
- 照合条件を入力する
- テーブル内のレコードから照合条件に合致するレコードを抽出する
- 抽出したレコードが持つ「課金額」を集計する
- 集計結果を出力する
2-3. 必要な処理をつなげてフローを作成
流れができればあとは簡単。
Salesforceのフローには予め様々な処理が用意されており、処理を並べて線で結ぶだけ!
↓
↓
2-4. 各処理の中身
処理の中身もあらかじめ用意されたひな形に自分で変数を当てはめていくだけでできてしまいます。
今回はサーバー運用チームの業務改善の一例として、「運用だってスクリプトを作るんだぜ!」
ということをお伝えするのが目的なので、細かい説明は割愛していくつかかいつまんで紹介します。
2-4-1. 画面
ユーザーの入力画面や、ユーザーへ出力する画面を作れる!
今回私は、ドロップダウンで選べる入力欄を作りました。
そうすることでユーザーも何を入力するか迷うことなく、開発者もテストパターンが減らせますね。
実際の条件入力欄はこんな感じ・・・
2-4-2. 高速検索
テーブルから好きな条件でレコードを検索します。
検索条件に変数名を設定することで、他の処理で使った値を条件に使用することも可能です。
2-4-3. ループ
処理をループさせることができます!
2-4-4. 割り当て
あらかじめ設定した変数に加算や減算、置き換えなどの加工ができます!
てなわけで後半駆け抜けましたが、紆余曲折あって完成した処理はこんな感じです。
2-5. 実際の処理
それでは、実際にどんなものができたのかお見せします。
▼パターン1
<テストデータ>
<入力条件>
対象アプリ:スクフェス
課金日:2018/5/31~2018/6/15
▼パターン2
<テストデータ>
<入力条件>
対象アプリ:スクフェス
課金日:2018/6/10~2018/6/15
できました!課金データから確認したいアプリ名と期間に絞ってデータを照合し、合計課金額を教えてくれる!
しかも無課金の時はお褒めの言葉もいただける優れもの!
※1 結果はあくまでテストであり、実際の課金傾向からは程遠いものであることをご了承ください。
※2 実際すべてのパターンを網羅した長大なテスト仕様書をつくってテストしましたが、単調なので割愛します。
3. さいごに
さて、「本題:~業務を効率化!」とか言ってお前遊んでただけだろ、と思った方もいるでしょう。
反論の余地がありません。
今回のこのお遊びフロー開発を通して、「照合」や「集計」をする処理を作ってみて、
実際にどんな業務に役立てられるものか、と思案してみました。
-
社員名簿の中から各業務(案件)に適任な人材を照合する
→ テーブルにどんな項目を持たせるかという設計自体ではこんなことも余裕で実現可能ですね! -
一定期間における特定商材の売り上げ金額の合計を算出する
→ 前年度の同じ月と比較させたりとかもできますね、一連の処理で結果をグラフに起こしたりもできるんだろうか・・・?
考え出したらきりがないですが、「やりたいこと」を考えるために「できること」を把握する良い機会になりました!
運用は開発と比べるとクリエイティブなこともなく、日々似たような作業の繰り返しのように思われがちです。
が、そんなことはありません!
今回Salesforceを使って、業務改善用スクリプト(の練習スクリプト)を作ってみたことからもわかるように
運用だってよりよい運用のために開発します!(CLIの開発をすることもあります!)
このブログを通して、「クリエイティブな仕事がしたいから運用は・・・」なんて思ってる方に、
少しでも興味を持っていただけたら嬉しく思います!
今回Salesforceのフローを使って 遊んd 練習した成果はここまでです。
と、半ば無理やりではありますが、この辺で終わりにしようと思います。
稚拙な文章にお付き合いいただきありがとうございました!