Category Archives: Apex

動的SOQLの作成方法

概要 任意のName項目のOpportunityをクエリする場合 ※String.escapeSingleQuotesにより変数を文字列に変換することで、SOQLインジェクションを防止する ヘルプ記事 https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_dynamic_soql.htm

Batch Apexとそのスケジュール方法

前書き:スケジュールフローについて Apexでバッチ処理をスケジュールしたい場合は、それ以前にまずスケジュールトリガフローによる実装を検討するようにしてください。 実装方針決定の目安は概ね以下の通りです。 フロー Apex 一処理当たりの最大処理件数… Read More »

数式項目について積み上げ集計を行う方法

概要 数式項目を直接「積み上げ集計」項目で利用することはできないので、事前に一度カスタム項目に値をコピーしてあげる必要があります。 方法 ①数式項目のデータ型と同一のカスタム項目を新規作成する ②データをコピーするプロセスビルダーを組む ■例… Read More »

ApexやAPI経由で作成されたリードへの「リード割り当てルール」適用

前書き 「リード割り当てルール」を有効化しても、ApexやAPI経由で作成されたリードについてはルールが適用されません。 当該問題を回避するためには、database.DMLOptionsオブジェクトのassignmentRuleHeaderメソッドを利用することで割り当てルールが適用されるようにしてあげる必要があります。 方法 After Triggerに全部書いてもよいですが、エンタープライズでよほどパフォーマンスを考慮しないといけない場合を除いて、プロセスビルダーから呼び出した方が汎用的なので、今回はその方針で実装していきます。… Read More »

一括レコードロックの方法

概要 承認プロセスでのレコードロックを実装→条件を満たしている昔のレコードにも一括でレコードロックをかけたい みたいなユースケースね。あるある。 方法 Setup>Process Automation… Read More »

リードをチームメンバに均等に割り当てる方法(ラウンドロビン式割り当て)

前書き 標準機能ではありませんが、設定をすれば実装可能です。ちなみに日本のSalesforce.com社もこのやり方でIS(インサイドセールス)にリード割り当ててます。 Salesforce.com社ではISの人数多いので「キュー」に均等に割り当てるかたちで実装されてますが、今回は普通に個々のユーザに割り当てる方法を紹介していきたいと思います。 大まかな流れ リードに作成順に値が入る自動採番項目を作成する リードに上記自動採番項目÷グループ人数の余りを求める数式項目を作成する… Read More »

「System.CalloutException: Read timed out」エラーについて

概要 Apexコールアウトがタイムアウトになった際に発生するエラーです。 デフィルトだと、コールアウトは10秒間レスポンスが帰ってこないとでタイムアウトする仕様となっています。 回避策 setTimeoutメソッドを用いてタイムアウトまでの時間を延長することが可能です。 メソッドの引数はミリ秒単位で、1(1ミリ秒)~60000(60秒)までの値を設定することができます。… Read More »