System.runAs()を使う時の注意点

みなさんはApexテストコードを書く際にSystem.runAs()を使っていますか?System.runAs()を使うと、指定したユーザの権限でテストを実行でき、ユーザ権限別のテストを行うことができます。Developerforce Wikiの"Apexコードテストメソッドの概要" ページにも "runAs メソッドを使用して複数のユーザコンテキストでアプリケーションをテストする" とあり、System.runAs()を使って各種ユーザの権限をテストすることが推奨されています。 User u = new User(); u.Email = ...; u.FirstName = ...; u.LastName = ...; u.alias = ...; u.username = ...; u.profileid = ...; u.emailencodingkey = ...; u.lang ... 続きを読む

Salesforceと他のシステムを接続する際のパターン & ベストプラクティス

Salesforceに限らず、企業システムを構築する際に多く発生する課題として、他のシステムとの連携をどのようにして実現するかが挙げられます。 SalesforceはSOAPやREST、Webサービスコールアウト、Batch Apex、スケジューリング等のデータを連携し処理するための様々な仕組みを持っていますが、これらをどのように利用して多システムとの連携を図っていけば良いでしょうか? 本日インテグレーションをいくつかのパターン化し、パターン毎のベストプラクティスをまとめた文書「インテグレーションのパターンと実践」を公開致しました。 本書ではインテグレーション設計を以下のパターンにまとめ、その概念から検討事項、必要なテクノロジ、エラー処理や注意点に至るまで詳細に解説しています。 リモートコールアウト - 同期リクエスト リモートコールアウト - 非同期リクエスト ETLプロセスを伴うデータ ... 続きを読む