たすくパパのブログ

Salesforce関連など・・気が向いた時に投稿します

Force.comで車のオイル交換日を予測しちゃおう!

以前、とあるガソリンスタンドのお客様にSalesforce CRMを導入した際、
Apexトリガーと数式を組み合わせて“オイル交換日の予測機能”を実装しました。

おそらく、Salesforceの導入案件をされている方ならば、
業種や詳細要件は異なれど、
『過去の履歴をもとに、特定のロジックを利用した次回予測値』
のような追加カスタマイズの実装を
されたことがあるのではないでしょうか。

ということで、
今回はそれをネタにお送りしたいと思います。

全体的な構成及び仕様は以下のとおりです。

※実際には『オイルマスタ』やそれを関連づける中間オブジェクト等も
 あるのですが、今回は省略・・

『オイル交換履歴』が登録・編集・削除されたら、
親の『車両』にぶら下がっている『オイル交換履歴』の最新2件を取得して、
親の『車両』に持っている項目をアップデートする・・というシンプルなものです。

Apexトリガーのイメージはこんな感じ

※細かいエラーチェック等は省略しまくりましたが、よしなにお願いします・・

で、数式はこんな感じ

ここで、なぜトリガ側で計算含め全部やらないの?
と思う方もいらっしゃるかもしれません。

計算ロジック部分に関しては、特に『5000km』という閾値が地域性や
車種等により考え方が異なることもあり、お客様による変更の可能性がゼロでない・・
そんな部分こそ、Force.comの標準機能(ここでは数式項目)で実装・実現させれば、
今後の業務の変化に対応でき、長く使ってもらえるイケてる!?CRM/SFAになるでしょう。

うん、そうに違いない・・ってことで、
このあたりは、特にお客様側でApexコードをメンテできるか否か?
管理者にあたる方のリテラシー等も考慮しながら、
どこまでをForce.comの標準機能で、どこからをApexコードによる追加開発で行うかの
『さじ加減』が、Force.com案件ならではの肝になるのかなあと思います。

※実はこの案件では、これをさらに複雑にし
 もはや簡単な在庫管理に近い『LPガス交換予測』なんてのも実装したのですが、
 こちらはリクエストがあれば、また別の機会にでも・・

Force.com Advent Calendar 2012
にエントリーしています!

Force.com Advent Calendar 2012 : ATND

他の皆様の記事もぜひともご覧ください。

次はちょっと視点をガラッと変えたネタで行こうと思います!