ipex

Salesforceの情報や趣味(ゲーム等)についてフリーに

履歴トレンド #2

履歴トレンド #1 の続きです。
ipex.hatenablog.jp


#1の動画で紹介されていた中で、構築時、特に注意しておきたい制限は下記。

・標準オブジェクトは、商談・ケース・売上予測のみ可能(動画では商談のみとなっていますが、現在は左記の3つ)
・カスタムオブジェクトは3つまで登録可能
・履歴を取れる項目は8個
(※ただし、商談はデフォルトで5個(フェーズ、売上予測分類、完了予定日、金額、確度)設定されているので、カスタム項目は3個だけ)
・履歴を取れる項目は、数値・通貨・日付・選択リスト型の項目
・今月+過去3ヶ月のデータのみ履歴が残る

あわせて、参考にしておきたいHelpは下記。

履歴トレンドレポートに関する制限
https://help.salesforce.com/HTViewHelpDoc?id=reports_historical_limits.htm

数量的な制限が多いので、要件によってはギリギリ使えない…等のケースもままありそうです。

履歴トレンド #1

履歴トレンド機能について確認する機会があったので、何本かの記事でまとめます。

履歴トレンド機能とは?
分析スナップショット同様、データのある時点のデータ状況を自動的に(分析スナップショットのような詳細設定不要)格納しておく機能です。
また、履歴トレンドレポートでは、過去の値と異なる(=変化のあった)データのみを抽出する条件指定も可能です。
www.youtube.com


YouTubeに親切な動画が上がっていたので、まずはそれの視聴。
(前半は分析スナップショットについてです。履歴トレンドについては後半から。)

類似機能の分析スナップショットと同じでいくつか制限はあるものの、結構便利そうです。

Google Analytics with Force.com Site #1

Force.com サイトでGoogle Analyticsを利用する場合。
下記のヘルプが参考になりました。

Google Analytics を使用した Force.com Site の追跡
https://help.salesforce.com/apex/HTViewHelpDoc?id=sites_analytics_tracking_code.htm


基本的には書いてある通りにやれば、Google Analytics でトラッキングが確認できました。
Salesforce側で必要なことは、サイトに分析追跡コードを設定すること、Visualforceに、

<site:googleAnalyticsTracking/>

のタグを埋め込むだけ。


Salesforce側の設定については、下記の技術ブログも分かりやすいです。

deferloader.blog.uhuru.co.jp

Spring'16 ReleaseNote #2 - プロセスビルダー:ドラッグ&ドロップでプロセスの並べ替え

Easily Reorder Criteria in Your Process with Drag and Drop
http://docs.releasenotes.salesforce.com/en-us/spring16/release-notes/rn_forcecom_process_reorder_criteria.htm


プロセスビルダーで、ワークフローを作成している時に、
処理の順番の並べ替えがドラッグアンドドロップでできるようになるようです。

順番を変えたい時には、すべて作りなおす必要があったのでこれは便利ですね。

個人的にはワークフロールール&項目自動更新等より、
プロセスビルダーの方が好きなのでもっと流行れ!

f:id:ipex:20160123173455p:plain

Map<Id,List<sObject__c>>型に簡潔に格納する!

SOQLの検索結果をもとに、
valueがList型のMapを作成する場合にいつも使っている奴の紹介。

シンプルで綺麗な形にまとまるので、相当使い倒しています。

if (sampleMap.containskey(sampleKey)) {
    sampleMap.get(sampleKey).add(sampleRecord);
} else {
    sampleMap.put(sampleKey, new List<SamplesObject__c>());
    sampleMap.get(sampleKey).add(sampleRecord);
}


Mapにkeyが含まれている場合は、valueのListにaddして、
含まれていない場合は、新しいListにaddしていくような感じですね。

含まれていない場合の書き方は、あんまり好きじゃないけど宣言時にsampleRecordを入れる方法もアリ。

APIから重複レコードを更新する際の考慮事項

データローダで数千件のレコードに対してupdateを行ったら、
何件かが下記のエラーになってしまいました。

Maximum Number Of Duplicate Updates In One Batch ( XXX Allowed). Attempt To Update Id More Than Once In This Api Call:


エラーメッセージで検索したらヘルプページが出てきて、ひと安心。

API から重複レコードを更新する際の考慮事項について
https://help.salesforce.com/apex/HTViewSolution?id=000199611&language=ja

お客さんから貰ったcsvをそのまま突っ込んだので、SalesforceIdの重複があったみたい。

ヘルプ読んだ感じだと、11件の重複レコードならエラー無くインポートされる…?

そもそも、重複があった時点で弾いて欲しいなあ。

Spring'16 ReleaseNote #1 - カスタムメタデータ型で選択リスト項目がサポート開始(Beta)

カスタムメタデータ型で選択リスト項目がサポート開始(Beta)

http://docs.releasenotes.salesforce.com/en-us/spring16/release-notes/rn_forcecom_development_custom_metadata_picklists.htm


カスタムメタデータ型、未だに使う機会が無いですが、
多少は候補に挙がるようになるのかな?

カスタムメタデータ型の詳細については以下が非常に参考になります。

www.terrasky.co.jp


凄く便利ですが、イマイチ使われない理由としては、
今の機能で比較的足りている(カスタムオブジェクト、カスタム設定、カスタム表示ラベル)のが大きいでしょうね。