tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:apex:sldsとapplyBodyTagの関係

Spring'17で新しく利用できるようになったapex:sldsの話です。apex:sldsを利用するとVisualforceページにLightning Design SystemのCSSを適用できるようになります。※このタグを利用するにはAPIバージョンが39.0以上の必要があります。

f:id:tyoshikawa1106:20170129184606p:plain

f:id:tyoshikawa1106:20170129184708p:plain


apex:sldsのタグですがapplyBodyTag="true"の状態で利用する必要があります。"false"にするとSLDSのCSSが適用されなくなりました。
f:id:tyoshikawa1106:20170129184845p:plain

f:id:tyoshikawa1106:20170129185012p:plain


standardStylesheets="false"を宣言するときはapplyHtmlTagとapplyBodyTagも"false"で宣言することが多いと思いますので意識しておいた方がいいかもしれません。


今回試したのはPre-Release環境です。そのためもしかすると正式リリース時には変更されている仕様かもしれませんが、sldsタグを宣言してもCSSが適用されないというときはこの部分を確認してみると良さそうです。

関連記事

SFDC:apex:sldsとapplyBodyTagの関係

Spring'17で新しく利用できるようになったapex:sldsの話です。apex:sldsを利用するとVisualforceページにLightning Design SystemのCSSを適用できるようになります。※このタグを利用するにはAPIバージョンが39.0以上の必要があります。

f:id:tyoshikawa1106:20170129184606p:plain

f:id:tyoshikawa1106:20170129184708p:plain


apex:sldsのタグですがapplyBodyTag="true"の状態で利用する必要があります。"false"にするとSLDSのCSSが適用されなくなりました。
f:id:tyoshikawa1106:20170129184845p:plain

f:id:tyoshikawa1106:20170129185012p:plain


standardStylesheets="false"を宣言するときはapplyHtmlTagとapplyBodyTagも"false"で宣言することが多いと思いますので意識しておいた方がいいかもしれません。


今回試したのはPre-Release環境です。そのためもしかすると正式リリース時には変更されている仕様かもしれませんが、sldsタグを宣言してもCSSが適用されないというときはこの部分を確認してみると良さそうです。

関連記事

プロが教えるレスポンシブWebデザインの本を読んでみました

モバイルに対応するCSSのサンプルコードがほしかったのでKindleで発売されていた「プロが教えるレスポンシブWebデザイン 現場のメソッド レイアウト・UIのマルチデバイス対応手法」という本を読んでみました。
f:id:tyoshikawa1106:20170129155406p:plain

本の内容

■Chapter1 基本の確認
レスポンシブWebデザインの基本/アクセシビリティの確保/jQueryについて ほか
■Chapter2 レイアウト
1カラムレイアウト/2カラムレイアウト/CSS Flexible Box/タイルレイアウト
■Chapter3 ナビゲーション
アコーディオン/リスト/パンくずリスト/ドロワー/タブナビゲーション ほか
■Chapter4 ギミック
カルーセル/モーダルウィンドウ/スムーズスクロール
■Chapter5 フォーム
フォームのスタイリング/バリデーション/郵便番号検索
■Chapter6 細かなテクニック
要素の高さを揃える/画像のトリミング/画像の遅延読み込み
■Chapter7 API・外部サービスの活用
Googleマップ/Googleカレンダー/Microsoft翻訳/YouTube ほか


CSSをつかったモバイルにも対応するレイアウトの実装方法やjQueryをつかったアコーディオンメニュー、パンくずリスト、モーダルウィンドウの実装方法が紹介されています。また郵便番号検索や画像のトリミング、Google APIの使い方も紹介されていました。


個人的にはタイルレイアウトと郵便番号検索の実装方法が確認できたのがよかったです。他のサンプルも実践で利用できるコードばかりだと思います。

画面サイズに合わせてカラム数の変更

f:id:tyoshikawa1106:20170129155834p:plain

f:id:tyoshikawa1106:20170129155854p:plain:w200

タイルレイアウト

f:id:tyoshikawa1106:20170129160040p:plain

アコーディオンメニュー

f:id:tyoshikawa1106:20170129160118p:plain

パンくずリスト

f:id:tyoshikawa1106:20170129160212p:plain

ドロワーメニュー

f:id:tyoshikawa1106:20170129160355p:plain

f:id:tyoshikawa1106:20170129160407p:plain:w200

タブメニュー

f:id:tyoshikawa1106:20170129160447p:plain

ページング

f:id:tyoshikawa1106:20170129160528p:plain

f:id:tyoshikawa1106:20170129160548p:plain:w300

郵便番号

f:id:tyoshikawa1106:20170129160842p:plain

GoogleマップAPI

f:id:tyoshikawa1106:20170129161229p:plain

f:id:tyoshikawa1106:20170129161441p:plain

Font Awesome

f:id:tyoshikawa1106:20170129161523p:plain


ざっくり目を通しただけですがこれってどうやるんだろうと思っていた表現のサンプルコードが手に入ったので、すごくいい本だと思います。

SFDC:Tokyo Salesforce Developer Group 2017 新年会に参加しました

先日、1月25日に開催されたSalesforce DG Tokyo 2017新年会に参加しました。
f:id:tyoshikawa1106:20170128204737p:plain

2017 新年会 - Tokyo Salesforce Developer Group (東京都) | Meetup


場所はJPタワーにあるSalesforceさんのオフィスです。Salesforceのマスコットたちの写真が飾られていました。

f:id:tyoshikawa1106:20170125184726j:plain:w300

f:id:tyoshikawa1106:20170125184730j:plain:w300

f:id:tyoshikawa1106:20170125184654j:plain:w300



今回は個人取引先ネタでLTをやらせてもらいました。
f:id:tyoshikawa1106:20170128205351j:plain:w300


LTと今年の抱負の話をしてパーカーとアストロくんを貰おうというキャンペーンがあったので両方に参加して頂くことができました。Salesforceさんありがとうございます。
f:id:tyoshikawa1106:20170128212544j:plain:w300


またお寿司もごちそうになりました。おいしかったです。
f:id:tyoshikawa1106:20170128212640j:plain:w300


新年会ですが、開発者コミュニティの人たちやSaesforceの中の人たちとお話できて楽しかったです。今個人的にCommunity Cloudが気になっているのですが、その製品をつかっている人とお話をすることもできて勉強になりました。参加して良かったです。


次回、Tokyo Salesforce Developer Groupでは3月にMeetup#14が予定されています。

LTの補足

個人取引先ですが利用するにはSalesforceのサポートに連絡して有効化する必要があります。Developer環境では利用できないと思いますので、プロジェクトで必要にならないとあまりさわる機会がない機能です。今回は導入検討でSandbox環境で有効化してみたので、そのときのことをお話させてもらいました。


個人取引先を利用するにあたり次の2つの仕様が悩みどころだと思っています。

  • DE組織で検証できないのと情報があまり多くない。
  • ストレージ消費数が3レコード分 (取引先、取引先責任者、連結用レコード?)
  • 既存機能の影響は?


ストレージを多めに消費する仕組みを使わなくても取引先と取引先責任者で管理すればいいかなとも思っていましたが、やはり同じ情報を2箇所に登録する運用ルールは効率的ではなさそうです。


引っ越しによる住所や電話番号の変更、担当スタッフの変更による所有者の切り替えなど一度登録した後にも再度編集する必要が発生すると思います。その際にどうしてもデータの変更忘れが出てくると思います。


B2C顧客の場合、重要なのは取引先責任者の方で取引先側はあまり重要ではありませんが、正しい情報を登録してきちんと管理することで必要になったときに活用できるようになると思います。


個人取引先を有効化することでデータを一箇所で管理できるようになり、データ入力を行う人達の負担を減らすことができると思います。またレポートやダッシュボードで分析が必要になったときも整理された情報をつかって分析できるかなと思います。


ということでストレージを多めに消費するというデメリットを考慮しても導入するメリットはあると思います。もうひとつ既存機能の影響ですが、個人取引先は裏で取引先レコードと取引先責任者レコードが存在している状態となります。有効化しても主従/参照項目に影響はありませんでした。


個人取引先のレコードは通常取引先オブジェクトとして扱われます。ですが取引先責任者レコードIDも保持しているのでそのIDにアクセスしても個人取引先のレコードにアクセスできます。


SOQLクエリでレコードを取得することも可能です。姓と名項目はinputFieldで入力欄を表示できませんが、inputTextで十分代替できると思います。


大きな問題点として個人取引先レコードをApexから登録する際には取引先名(Name)ではなく姓と名項目の方に値をセットする必要があります。このあたりは既存のデータ登録機能に影響を与える部分だと思います。


今回は確認していなかったのですが既存のレポートやダッシュボードに影響がないかも注意しておいたほうが良さそうです。(レポートタイプが変更されるかも..)


既存部分に多少の影響は与えてしまいますが、標準機能とApex側のどちらでも個人取引先導入対応に問題はなさそうでした。


ですが一箇所だけ大きな注意点があります。「コミュニティユーザとして有効化済みの取引先責任者は個人取引先に変換できない」という点です。


Sandbox環境で検証を進めてみてこれなら本番環境に導入できそうと考えていたところで、最後のこの仕様があることが判明して導入を諦めることになりました。既存データはそのままで新しいデータだけ個人取引先で運用する方法もなくは無いですが、管理方法が途中から変わるのは利用者の混乱を招くことにつながると思います。


基本的に個人取引先はシステム構築の一番最初に導入を検討する必要がありそうでした。SWTT2016に参加したときに知ったのですが個人取引先はFinancial Service Cloudに組み込まれていたりもしていたので今後特定のSalesforce製品を導入するときに必要になるかもしれません。補足ですが個人取引先導入を断念した後はApexトリガをつかって取引先責任者の情報と取引先の情報が同期される仕組みを用意して対応しておきました。

個人取引先とApexのサンプルコード

SFDC:商談とケースの関連リスト

商談にはケース関連リストを表示する仕組みが用意されています。ですがケースには商談参照項目は存在しません。そのため商談のケース関連リストには新規作成ボタンが用意されていません。

f:id:tyoshikawa1106:20170122154213p:plain


商談のケース関連リストですが商談に紐付く取引先と取引先責任者のケースが自動で表示される仕組みとなっています。ケースには質問やお問い合わせの情報を登録していくので基本的にはどの商談に対してのお問い合わせかというよりは、どの顧客のお問い合わせかを管理することを目的としているのだと思います。


ちなみにケースに商談参照項目をカスタム項目で用意する案もありますが、試してみたところ標準のケース関連リストとは別の関連リストになってしまいイマイチなのと、この方法で用意した関連リストでも新規作成ボタンを表示することができませんでした。

f:id:tyoshikawa1106:20170122155640p:plain


商談のケース関連リストは標準でできる範囲で利用するのが良さそうです。

SFDC:Chatterフィード追跡とメール通知について

Chatterフィード追跡の機能を利用すればレコード更新時にレコードフィードに更新内容が自動投稿されます。
f:id:tyoshikawa1106:20170122123118p:plain


この投稿はメール通知されませんが、メンション付きのコメントなど条件を満たせばメール通知が行われます。
f:id:tyoshikawa1106:20170122123737p:plain


細かい条件は私の設定で管理されます。
f:id:tyoshikawa1106:20170122123842p:plain


この機能のポイントですがアクセス権限のないユーザにはもちろん送信されません。もしうっかりメンションしようとしても次のようにメッセージが表示されます。
f:id:tyoshikawa1106:20170122124012p:plain:w300


Chatterフィード追跡とメール通知についての仕組みはこんな感じとなっています。

SFDC:Spring'17 リリースノートが公開されました

Salesforceの次期バージョン『Spring'17』のリリースノートが公開されました。本番環境への適用は2017年2月12日を予定しているとのことです。

f:id:tyoshikawa1106:20170115183708p:plain

Salesforce Spring ’17 Release Notes


リリースノートの日本語化はまだですが、Success Communityで要点をまとめたスライドが公開されています。
f:id:tyoshikawa1106:20170115184107p:plain

Success Community リンク


英語ですがSpring'17新機能ページも用意されています。
f:id:tyoshikawa1106:20170115184423p:plain

Release Resources: Release Notes & New Features - Salesforce.com


開発者向けに機能紹介LIVEもあったみたいです。(ページの読み込みに少し時間がかかるかも)
f:id:tyoshikawa1106:20170115185815p:plain


1月18日にはSpring'17 新機能速報ウェブセミナーも予定されていました。
f:id:tyoshikawa1106:20170115185257p:plain


あとはYoutubeにも動画が公開されたりもしています。


新機能についての情報がいろいろなところで確認できるようになっていました。