#Lightningどうなのよ?
そう聞かれた時には「Builder使わないならVFでいいんでない」とお答えしている最近ですが、皆さんいかがお過ごしでしょうか。
そもそも「Lightning」という定義が広がり過ぎて「それってComponentなの?それともExperience(LEX)なの?」と、質問に対して質問で返すのが面倒ということもあり、とりあえず先ほどのような回答をして食い違うようであればすり合わせています。
そんなLightningのComponentですが、Classicで使えないこともないですが、やはりLEXでAppBuilderだったり標準UIをオーバーライドしたり、そんなところで輝く子だと思うんですよ。
ただ、ClassicからLEXへの移行の手間が馬鹿にならないということもあり、既存ユーザーの移行はあまり進んでいないようです。(自分調べ)
LEXが先か、Componentの充実が先か、鶏卵のような話なのかどうかは分かりませんが、やはりLEX市場が広がっていかないことには開発者としてもモチベーションおよびリソースの投入ということにはならないのでしょうか。
そんなわけでLEX市場を広げるべく、LEXでしか使えない「カレンダーでカスタムオブジェクトを表示する」というのが本日のメニューでございます。
ようやく本題。
#やりたいこと
Salesforceに詳しい皆様であればご存知でしょうが、Salesforceのカレンダーというのは行動オブジェクトしか表示することができません。
ただしユーザーからの要望として、カスタムオブジェクトも表示したい、セミナーオブジェクトみたいなものを使っているから、イベントカレンダーを表示したい、なんて話しもよく聞きます。
Classic UIであれば行動しか標準カレンダーに出せないので、「あー、それはパッケージ入れるか別途開発ですねー(そろばんパチパチ)」という状況なわけですが、出来る子LEXはなんと行動オブジェクト以外もカレンダーに表示することができます。
そんなわけで実際に作っていきたいと思います。
#LEXのカレンダーにカスタムオブジェクトを表示
シナリオとしてヨガのセミナーをカスタムオブジェクトで管理している組織があるとして、そのセミナーの予定をカレンダーに表示しましょう。
まずは何はなくともUIをLEXに切り替えましょう。え、遅いからヤダ?大丈夫、前よりは早くなったので試してみてください。
え、内部サーバーエラーが出る?サポートに問い合わせましょう。
続いてタブからカレンダーを選択します。え、タブ群が水平になっている?あなた、だいぶLEX使っていませんね。
カレンダーから右下にある「私のカレンダー」から新規にヨガセミナー用のカレンダーを作ります。
ヨガオブジェクトを選択します。
カスタムオブジェクトのみならず、もちろん行動以外の標準オブジェクトも使えます。
カレンダーに表示する開始日、終了日はオブジェクト内の日付型、または日付時間型の項目を選びます。
「条件の適用」はオブジェクトに作っていあるビューを指定することで、一定条件に該当するレコードのみ表示することもできます。例えばホットヨガコースのみ表示するカレンダーとか。
「表示する項目名」はカレンダーに表示する名前です。今回はコース名の項目を選びました。
これで完成です。
こんな感じでカスタムオブジェクトのカレンダーができました。
色を変更したり、表示するカレンダー表示のON/OFFも右下から選ぶことが出来ます。
例えば自分の行動とヨガセミナーを合わせて表示するとか。
#まとめ
どうですか、LEXに移行したくなってきたでしょう。
LEXに移行する際はTrailheadにある「Lightning Experience への移行」へ登山するといいでしょう。頂上まで7時間20分だそうです。富士山くらいでしょうか。
LEXではComponentを組み合わせてアプリケーションを構築するAppBuilderはもちろん、カンバンやビューでのグラフ表示などClassicにはない機能が揃っています。
Classicでがっつり作り込んでいる組織はLEXにすることに抵抗があるかもしれませんが、LEXならではのメリットというのもあります。
ぜひLEXを検討してみてはいかがでしょうか。
ところで今回の記事はSalesforce App Cloud Advent Calendar 2016の3日目のエントリーとなっています。
私の駄文エントリーとは比べ物にならない、役立つ記事が投稿されると思いますので、ぜひ他の記事もみてみてください。