Apex
こんなことやりたい Apex で SOQL を実行してレコードを取得するとき、実行ユーザが編集権限のあるレコードだけ返したい。 このとき、レコードに対し参照権限だけあると SOQL では取得できてしまうため適宜フィルターする必要がある。 先にまとめ UserRecord…
これの続きです。 前回までは Visualforce ページの(より正確には、PageReference クラスの)getContent() で pdf を取得しようとしてましたがだめそうなので Visualforce テンプレートを使う方法を試してみた。 TL;DR メールテンプレートのうち、Visualfor…
以前の記事で、Visualforce ページを pdf ファイルとして添付してメール送信する方法について書いた。 この時、問題点として PageReference クラスの getContent() メソッドは スケジュール済み Apex(Apex スケジューラ?)やトリガなどの非同期処理内では…
ちょいメモ。 Saleforce の添付ファイルを取ってくる方法と、Visualforce ページを pdf 化して送る方法。
エラー名でググってもちゃんとした情報が出てこなかったのでメモ。 Apex で複数件の行動を削除(delete)しようとした時、以下のようなエラーが出ることがある。 System.DmlException: Delete failed. First exception on row 0 with id 00U1000000k5j6vEAA;…
この記事を参考に。 SFDCで大容量CSVアップロード作ってみました。 - SHANON Engineer's Blog ほぼほぼこの通りでいいのですが、 parser でやろうとしている処理が parser という名前と一致しない " (ダブルクォート)で囲った値があった時に対応できない …
テストをしていてハマったので、メモ。 CreatedDate がアテにならないというか、SOQL で ORDER BY に CreatedDate を使うとき は注意した方がいいです。
Apex 無しで実現できるか?と思って調べてみたらできた。 やり方 入力規則にこんな感じで入力する。 # 例) 名前にリードを指定した時にエラーにしたい場合 LEFT(WhoId, 3) = '00Q'
ずいぶん前に調べて解決したんだけど、まとめてなかったのでメモ。 削除したレコードを、開発者コンソールのクエリエディタ(Query Editor)でさっと確認したかった。のですが。。。
今日は Salesforce World Tour Tokyo ということで 久しぶりの Salesforce ネタです。 (内容はイベントとか最近の技術と全く関係ないです) 今回はメール送信について。 Apex では Messaging.sendEmail() メソッドでメールを送信できますが、 存在しないメー…
自分で作成したVisualforceページについては、コントローラ側でDmlExceptionを明示的にcatchしてあげないとシステムエラー画面が表示されてしまい、 開発組織にメールがとんでしまったりして何かと面倒なことになります。 で、そのための書き方。
はじめに Apexから外部Webサービスを利用するためのHttpコールアウトを実装したクラスがある時、 そのテストにはHttpCalloutMockインターフェースを実装したクラス(いわゆるモックオブジェクト)が必要です。 ところが、このHttpコールアウトがバッチクラス…
変更する方法あるのかなと思って調べてみたら、ありました。 「組織のメールアドレス」という設定を使った方法です。 はじめに SalesforceのEmailクラス(Messaging.SingleEmailMessageやMassEmailMessageの親クラス)には、メールの送信者の名前に任意の文字…
ややこしかったのでメモ。 はじめに メール通知を行うクラスのメソッドをテストしたい時、 「送信したメールのアサーションとして何を比較するか」というのにちょっと悩みました。 メールの内容をテストする方法がないので。
前に書いた記事のように、リードが取引開始になった時のトリガなどを実装した場合 このトリガのテストメソッドってどうやって書くんだろう?と思って調べてみました。 Database.LeadConvertクラスのオブジェクトを使って Database.convertLead(Database.Lead…
すぐ忘れるのでメモ。 Salesforceのメールに関連する制限です。 (2014/07/09追記) こんなの見つけた。 https://na7.salesforce.com/help/pdfs/en/salesforce_app_limits_cheatsheet.pdf これのEmail Limitsという項はガバナ制限のリファレンスのところに書…
ちょいメモ。 ある日付から、その曜日を取得する方法。 Datetime dt = Datetime.now(); // 'EEE'を使うと略称(例:Fri) // 'EEEE'を使うと略さない曜日(例:Friday) String weekdayStr = dt.format('EEE'); これで曜日が文字列(ただし英語)として取得…
非常に基本的な話ですが、認証方式についてちょいメモ。 また、ApexでどうやってBase64エンコードやMD5ハッシュ化を行うかについては おまけ程度に。
ちょいメモ。 VisualforceでMapオブジェクトの値を表示したい時は {!Mapオブジェクト名[キー名]} で取得可能。 以下はサンプル。 Apex側 public class MapValueSampleController { public Map<String,String> sampleMap { get { return new Map<String, String> { 'foo' => 'bar', 'hoge' =></string,></string,string>…
第1回、第2回に引き続いて、第3弾。 javascriptだけで実装する Apex + Visualforce で実装する Apex Web Serviceを使って実装する のうちの、「3. Apex Web Serviceを使って実装する」です。 今回でラスト。
前回の記事に引き続いて、第2弾。 javascriptだけで実装する Apex + Visualforce で実装する Apex Web Serviceを使って実装する のうちの、今回は「2. Apex + Visualforce で実装する」です。
やりたいことはこんな感じ。 とあるオブジェクトの詳細レコードから、参照関係にあるオブジェクトのレコードを関連リストとして表示する。 リストの各レコード左側にチェックボックスが表示されて、チェックを入れたレコードについて一括処理をする。 今調べ…
メモ。 標準オブジェクトの場合と、カスタムオブジェクトの場合について整理。 こちらの公式ドキュメントが参考になる。 Salesforce Developers
Apexから外部サービスを利用するための方法としてApexコールアウトというのがあります。 今回はこれを使って、GitHubと連携するサンプルを作ってみたという話。 Salesforceでケースが新規作成された時に、指定したGitHubのリポジトリにIssueも登録されるとい…
リード(Lead)オブジェクトの「取引の開始」を実行すると リードの色々な項目の情報を引き継いで新たに取引先(Account)、取引先責任者(Contact)、商談(Opportunity)が作成される。 このとき、 特定のカスタム項目の値を作成されたオブジェクトのどこかに引き…
メモ。 ここに書いてた。 http://nanostuffs.com/Blog/?p=1602 ApexでMessaging.SingleEmailMessageを使ってリードや取引先責任者にメールを送信する場合も setSaveAsActivity(true)を使うと活動履歴に残すことができる。 ただし、こちらにあるように 宛先の…
タイトル通り、Salesforceの翻訳機能を使って、ユーザの言語設定によって表示される内容が変わるようにしてみる。 Salesforceにはタブやオブジェクトなど様々な項目があり、それぞれについて多言語化の方法も異なるので、何回かに分けて紹介していけたら。 …
ドンピシャの記事がこちらにあったので、メモ。 参考になります。 たいていのことは、「気合い」と「根性」で乗り越えられるものだ!!:【salesforce】Apexcodeで選択リスト型の値を取るゼイ。 コードはこちら。 (元の記事から、変数名などを若干変更してお…
商談に限らず取引先、ケース、契約などの項目にある 「取引先責任者の役割」や「パートナー」ですが、 これをApexでコピーする方法。 特に、「パートナー」をコピーするあたりで色々ハマったのでメモ。 それぞれどんなもの?というのはこのあたりを参考にし…
これの話です。 Salesforce Developers基本的な使い方はわかっていて、 ある変数に対するgetter/setter(アクセサメソッドと呼べばいいのかな)を定義すると 呼び出し側からは // TestClassというクラスにmyPropertyというプロパティを定義した場合 TestClas…