ipex

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

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


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

Salesforce Spring'16 Release Note #0

Salesforce Spring'16 Release Note
http://docs.releasenotes.salesforce.com/en-us/spring16/release-notes/salesforce_release_notes.htm

Spring'16のリリースノート公開されました。

何と言っても特筆すべきは…
この青色の蝶ですよね。

f:id:ipex:20160116143645p:plain:w200

調べてみたら、どうやら「アサギマダラ」という蝶っぽい。

アサギマダラ - Wikipedia

f:id:ipex:20160116145551j:plain:w200

<script>と<apex:includeScript>

<script src="https://..." />
<apex:includeScript value="{!URLFOR($Resource.XXX)}" />

両者の違いについて。

併用するとエラーになることが多く、
何となくで回避してきたけど、下記にまとめてあって理解した。

http://www30304u.sakura.ne.jp/blog/?p=1800

HTML生成時に「apex:includeScript」タグを使ったプラグインの方はhead配下で読み込まれるが、
素のscriptタグを使ったjQuery本体はもっと下のbody近くで読み込まれるようになり、読み込み順が逆転してエラー

ということらしい。

エラーということだけど、
この読み込みタイミングの違いを使って、抜け道的な実装ができそう。