dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

Salesforce

[Salesforce] 見積または商談の「商品の追加」時のレイアウトを変更する

この画面。 この画面のレイアウトは変更できないものだとずっと思っていたけど、できた。 参考: Help And Training Community

[Salesforce][Apex] CreatedDate はアテにならないという話

テストをしていてハマったので、メモ。 CreatedDate がアテにならないというか、SOQL で ORDER BY に CreatedDate を使うとき は注意した方がいいです。

[Salesforce] 入力規則で「行動」の名前/関連先に特定のSObjectしかひもづけられないようにする

Apex 無しで実現できるか?と思って調べてみたらできた。 やり方 入力規則にこんな感じで入力する。 # 例) 名前にリードを指定した時にエラーにしたい場合 LEFT(WhoId, 3) = '00Q'

[Salesforce] Force.com Migration Toolでファイルを削除

ちょいメモ。 方法 以下のような構成で build.properties と 3 つの XML ファイルを用意する。 ├── build.properties ├── build.xml └── [任意のディレクトリ名] ├── destructiveChanges.xml └── package.xml package.xml API のバージョンだけ書く。 <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <version>32.0</version></package>

[Salesforce] 重複管理(Duplicate Management)機能を試してみた

はじめに Winter'15 ではベータ版だった「重複管理(Duplicate Management)」機能ですが、Spring'15 で正式リリースとなるようですね。 以前興味本位でケース申請したら断られた思い出が。 参考: Spring'15 リリースノート で、今回もプレリリース組織で正式…

[Salesforce]削除済みのレコードをSOQLで取得する

ずいぶん前に調べて解決したんだけど、まとめてなかったのでメモ。 削除したレコードを、開発者コンソールのクエリエディタ(Query Editor)でさっと確認したかった。のですが。。。

[Salesforce]メール送信のエラー検知あれこれ (不達管理など)

今日は Salesforce World Tour Tokyo ということで 久しぶりの Salesforce ネタです。 (内容はイベントとか最近の技術と全く関係ないです) 今回はメール送信について。 Apex では Messaging.sendEmail() メソッドでメールを送信できますが、 存在しないメー…

自作したVisualforceページに入力規則エラーを表示する

自分で作成したVisualforceページについては、コントローラ側でDmlExceptionを明示的にcatchしてあげないとシステムエラー画面が表示されてしまい、 開発組織にメールがとんでしまったりして何かと面倒なことになります。 で、そのための書き方。

[Salesforce]Httpコールアウトを行うバッチのテスト

はじめに Apexから外部Webサービスを利用するためのHttpコールアウトを実装したクラスがある時、 そのテストにはHttpCalloutMockインターフェースを実装したクラス(いわゆるモックオブジェクト)が必要です。 ところが、このHttpコールアウトがバッチクラス…

[salesforce]Apexでのメール送信時に送信元(From)を変更する

変更する方法あるのかなと思って調べてみたら、ありました。 「組織のメールアドレス」という設定を使った方法です。 はじめに SalesforceのEmailクラス(Messaging.SingleEmailMessageやMassEmailMessageの親クラス)には、メールの送信者の名前に任意の文字…

[Salesforce]活動履歴(ActivityHistory)がテストで取得できない?

ややこしかったのでメモ。 はじめに メール通知を行うクラスのメソッドをテストしたい時、 「送信したメールのアサーションとして何を比較するか」というのにちょっと悩みました。 メールの内容をテストする方法がないので。

[Salesforce]Apexでリードの「取引の開始」を実行

前に書いた記事のように、リードが取引開始になった時のトリガなどを実装した場合 このトリガのテストメソッドってどうやって書くんだろう?と思って調べてみました。 Database.LeadConvertクラスのオブジェクトを使って Database.convertLead(Database.Lead…

[Salesforce]メールのガバナ制限まとめ

すぐ忘れるのでメモ。 Salesforceのメールに関連する制限です。 (2014/07/09追記) こんなの見つけた。 https://na7.salesforce.com/help/pdfs/en/salesforce_app_limits_cheatsheet.pdf これのEmail Limitsという項はガバナ制限のリファレンスのところに書…

[Salesforce]Apexで日付から曜日を取得する

ちょいメモ。 ある日付から、その曜日を取得する方法。 Datetime dt = Datetime.now(); // 'EEE'を使うと略称(例:Fri) // 'EEEE'を使うと略さない曜日(例:Friday) String weekdayStr = dt.format('EEE'); これで曜日が文字列(ただし英語)として取得…

[Salesforce]VisualforceのvalueにMapを使う

ちょいメモ。 VisualforceでMapオブジェクトの値を表示したい時は {!Mapオブジェクト名[キー名]} で取得可能。 以下はサンプル。 Apex側 public class MapValueSampleController { public Map<String,String> sampleMap { get { return new Map<String, String> { 'foo' => 'bar', 'hoge' =></string,></string,string>…

[Salesforce]関連リストのレコードを一括更新する方法〜その3〜

第1回、第2回に引き続いて、第3弾。 javascriptだけで実装する Apex + Visualforce で実装する Apex Web Serviceを使って実装する のうちの、「3. Apex Web Serviceを使って実装する」です。 今回でラスト。

Summer'14 リリースノートの個人的に気になった機能メモ

タイトルの通り、本当に自分が気になった項目だけ。 リリースノートはこちら

[Salesforce]ルックアップ画面で、取引先責任者のメールアドレスで検索する

たとえば、活動履歴 > メールの送信で宛先を検索している時に メールアドレスでも検索できるようにしたいよねという話。 この画面ですね。

[Salesforce]関連リストのレコードを一括更新する方法〜その2〜

前回の記事に引き続いて、第2弾。 javascriptだけで実装する Apex + Visualforce で実装する Apex Web Serviceを使って実装する のうちの、今回は「2. Apex + Visualforce で実装する」です。

[Salesforce]関連リストのレコードを一括更新する方法〜その1〜

やりたいことはこんな感じ。 とあるオブジェクトの詳細レコードから、参照関係にあるオブジェクトのレコードを関連リストとして表示する。 リストの各レコード左側にチェックボックスが表示されて、チェックを入れたレコードについて一括処理をする。 今調べ…

[Salesforce]参照関係にあるオブジェクトをSOQLで取得する

メモ。 標準オブジェクトの場合と、カスタムオブジェクトの場合について整理。 こちらの公式ドキュメントが参考になる。 Salesforce Developers

[Salesforce]Apexコールアウトを利用して、ケース登録時にGitHubのIssueにも登録する

Apexから外部サービスを利用するための方法としてApexコールアウトというのがあります。 今回はこれを使って、GitHubと連携するサンプルを作ってみたという話。 Salesforceでケースが新規作成された時に、指定したGitHubのリポジトリにIssueも登録されるとい…

Salesforce1の新規行動作成画面をカスタマイズ

1ヶ月ぐらい前の記事にSalesforce1で新規行動を作成する方法を書いたけど、 その時わからなかった「行動作成画面のカスタマイズ」方法がわかったのでメモ。 結論から言うと、 Salesforce1の新規行動作成画面のレイアウトも編集可能 レイアウトの編集によって…

[Salesforce]リードの「取引の開始」時にトリガを実行する方法

リード(Lead)オブジェクトの「取引の開始」を実行すると リードの色々な項目の情報を引き継いで新たに取引先(Account)、取引先責任者(Contact)、商談(Opportunity)が作成される。 このとき、 特定のカスタム項目の値を作成されたオブジェクトのどこかに引き…

[Salesforce]Apexでメールを送信した時に「活動履歴」に残す方法

メモ。 ここに書いてた。 http://nanostuffs.com/Blog/?p=1602 ApexでMessaging.SingleEmailMessageを使ってリードや取引先責任者にメールを送信する場合も setSaveAsActivity(true)を使うと活動履歴に残すことができる。 ただし、こちらにあるように 宛先の…

[Salesforce]見積(Quote)をコピーする方法

Salesforceのほとんどの標準オブジェクトには、 レコードの詳細画面を開いた時に「コピー」ボタンがついてる。 ところが、なぜか「見積り(Quote)」オブジェクトにはそれがない。 というわけで、その機能を実現するまでのメモ。 条件として、「見積商品も一緒…

[Salesforce]翻訳機能を使って多言語化する〜カスタムラベル編〜

タイトル通り、Salesforceの翻訳機能を使って、ユーザの言語設定によって表示される内容が変わるようにしてみる。 Salesforceにはタブやオブジェクトなど様々な項目があり、それぞれについて多言語化の方法も異なるので、何回かに分けて紹介していけたら。 …

[Salesforce]選択リストの全ての値をApexで取得する

ドンピシャの記事がこちらにあったので、メモ。 参考になります。 たいていのことは、「気合い」と「根性」で乗り越えられるものだ!!:【salesforce】Apexcodeで選択リスト型の値を取るゼイ。 コードはこちら。 (元の記事から、変数名などを若干変更してお…

[salesforce]商談の「取引先責任者の役割」や「パートナー」をコピーする

商談に限らず取引先、ケース、契約などの項目にある 「取引先責任者の役割」や「パートナー」ですが、 これをApexでコピーする方法。 特に、「パートナー」をコピーするあたりで色々ハマったのでメモ。 それぞれどんなもの?というのはこのあたりを参考にし…

Salesforce1で新規行動を作成する方法

Salesforce1がリリースされて半年ほど経ちますが よくわかってなかったのでメモ。このへんの話です。 Help And Training Communityきっかけは、Salesforce1を起動した時に右下に表示される+アイコンをタップしても こんな感じでToDoしか表示されないなーと…