リードの取引の開始をApexで行う時の注意事項リードの取引の開始をまとめて行う場合に、Apex(もしくはAPIの)を使う場合があります。その際の注意事項を書いておこうと思います。ApexでDatabase.convertLead(APIでconvertLead、以下Apex前提で記載します)を行う場合次の2点の考慮が必要です。商談に関連付けを行うか1のリードの所有者がキューの場合、そのままDatabase.convertLeadを行うとエラーとなるので、Database.convertLeadを行う前に、所有者をユーザへ変更しておく必要があります。商談に関連付けする場合、LeadConvertクラスでsetAccountId(accountId)setContactId(contactId)setOpportunityId(opportunityId)を指定しますが、setAccountIdで指定した取引先と、setContactIdで指定する取引先責任者の取引先は同じである必要があります。同様に、setAccountIdで指定した取引先とsetOpportunityIdで指定する商談の取引先も同じである必要があります。関連付けを行う場合はあらかじめ取引先をそろえてからDatabase.convertLeadをするか、Database.convertLeadをする前に取引先が同じかの判定をいれておく必要があります。最後に取引の開始では項目の対応付けの設定を使います。項目の対応付けは、Winter'20まではメタデータでしかリリースできず、メタデータの「LeadConvertSettings」で取得し、別環境へデプロイをしていました。Spring'20で変更セットでリリースできるようになりました。ディスクストレージの考慮事項Salesforce1レコード2KBだとずっと認識していました。大枠は正しいのですが、細かな部分が違っていたのであらためてまとめておこうと思います。内容は以下のヘルプに記載の通りで、基本1レコード2KBですが、キャンペーンや記事などが例外となっています。エントリ、および納入商品は、ストレージ使用量には含まれません。エントリは商品情報を登録するものでそこまでストレージに影響はしませんが、納入商品は万能なオブジェクトなので使いやすくストレージへの貢献度を大きくあげることができます。参照関係項目が用意されていて納入商品の中で階層構造になるように親、および階層のルートへの参照関係項目があります。パレートの法則はストレージの容量にも当てはまり(例外もあると思いますが)、「使用ストレージの8割は利用オブジェクトの2割で占めている」となります。利用オブジェクトの2割の中の1オブジェクトを納入商品にすることで大きくストレージの消費を抑えることができます。1オブジェクトだけ突出して件数が多い場合、ストレージを考慮して納入商品を使うメリットは最大化されます。設定できないなど他オブジェクトとの違いはあるので使い方がはまるかは事前の検証は必要です。(逆に個人的にはこれ以外で他オブジェクトとの違いは把握していませんが・・)最後にストレージを消費しない標準オブジェクトでは、他に商談商品(商談の子オブジェクト)、品目名スケジュール(商談商品の子オブジェクト)、注文商品(注文の子オブジェクト)があり階層を持つオブジェクトでは子オブジェクトはストレージを消費しない傾向があります。見積の子オブジェクトの見積品目名はストレージを消費しますので都度調査は必要です。見積だけ特殊なのかもしれませんが。Salesforceまず、最初にブラウザのVivaldiはサポートされていないことはわかっています。Vivaldiを使ってちょっと便利になってSalesforce開発が楽しくなったので設定や使い方を書いておこうと思います。1.タブスタッキングが便利過ぎるタブをグループで管理できます。私はChromeなどで画面上部でタブが多くなってくるとすぐに探せなくなってしまうためこの機能があるととても助かります。動作検証用画面、ヘルプサイトやその他の情報検索の画面など数多くの画面をタブで開くので、用途に分けてタブをグループしています。Salesforceのデプロイを行う際は複数のSandboxを扱うことが多くなり、その際には環境毎でタブをグループ化しています。することで環境毎の設定の確認などやりやすくなりました。タブスタッキングに名前を付けるにはツール>設定>タブから「タブスタックの名前の変更を許可する」の設定が必要です。2.開いているウィンドウの一覧が便利この画像は1のタブグループのタブをウィンドウ表示しています。画面が小さい場合、常にウィンドウを表示させておくのは難しいかもしれませんが、ある程度余裕があれば常にウィンドウ表示をしておくことで自分の使いたいタブを探す時間が短縮できます。3.開発者コンソールが別ウィンドウにならなくて便利Chromeだと開発者コンソールが別ウィンドウになります。これはこれで便利だという人はいると思いますが、個人的に別ウィンドウは非常に煩わしいと感じていました。Vivaldeではツール>設定>外観から「タブでポップアップを開く」の設定をすることで別ウィンドウではなく同一ウィンドウでの表示となります。この設定をすると、例えばタブスタイルやClassicのルックアップ画面などのポップアップもタブでの表示となりますが特に気にはなりませんでした。最後に今まではChromeを使っていましたが、個人的にタブが多すぎた時の対処に困っていました。(拡張機能などで対処可能なのだと思いますが、色々試しても自分に合う拡張機能が見つけられませんでした)冒頭にも書いていますが、Vivaldiの動作はサポートはされていないので最終的な動作はChromeなどで実施することになりますが、開発中くらいは好きなブラウザを使って開発作業を楽しみたいと思います。アプリケーションメニューから、コミュニティを非表示にするSalesforce結論としては、アプリケーションに表示されているコミュニティは、プロファイルのアプリケーション設定ではなくアプリケーションメニューから非表示にできます。コミュニティのメンバーとなったプロファイルや権限セットを持つユーザではアプリケーションでそのコミュニティが表示されます。[コミュニティのメンバー][アプリケーションの表示]コミュニティ1、コミュニティ2、コミュニティ3がログインユーザがメンバーとなっているコミュニティアプリケーションが不要の場合には、設定>アプリケーションメニューで非表示にできます。するとアプリケーションからコミュニティを非表示にできます。範囲は組織全体となります。アプリケーションメニューの設定は、Spring'20時点ではメタデータとして設定が取得できないようです。Lightningデータ保存時にメッセージを表示するのに、showToastイベント(e.force:showToast)を使うことがあります。showToastイベントについて調べたことの備忘メモです。durationで指定した時間経過で消える。時間経過では消えない。×クリックできない(表示がない)。durationで指定した時間経過で消える。メッセージ連続してshowToastイベントを実行しても一度の画面表示は3つまでのようです。同時に3つ以上実行しても、表示されているメッセージが消えてから次のメッセージを表示するという動きをします。次のような改行区切りのメッセージをToastで表示しようとすると、うまく改行されません。メッセージ内容:表示メッセージ1表示メッセージ2表示メッセージ3画面表示:Toast内で改行する場合は、スタイルシートの指定が必要です。1.次のスタイルシートを静的リソースに登録します。リソースを読み込みます。/>※静的リソースには「MultiLineToast」として登録しました。上記1,2を実施後の画面表示は次の通りとなります。Componentのサンプルは次になります。Componentのクライアントサイドコントローラで業務ロジックを書く時に、サーバサイドコントローラのメソッドを順次呼び出したり、全部の処理が完了した後にメッセージ表示をしたりしたい時があります。次のようなhelperとcontrollerを用意したとします。"処理が完了しました。完了していなくても、"処理が完了しました。