進行状況の追跡を始めよう
Trailhead のホーム
Trailhead のホーム

Spring '19 での Platform デベロッパー向けの新機能の学習

学習の目的

この単元を完了すると、次のことができるようになります。

  • 新しい Apex メソッド、例外、インターフェースについて学習する。
  • 未対応の Apex 例外の詳細が公開される新しい方法を理解する。
  • 新しい Sandbox のコピー機能を使用する。
  • カスタムメタデータ型を使用してデフォルト項目値を設定する。

Salesforce 認定資格の概要

Salesforce Platform デベロッパー資格を保有している場合、その認定資格を維持するためには期日までにこのモジュールを修了する必要があります。資格を維持するためにもう 1 つ重要なことは、必ず Trailhead アカウントと Webassessor アカウントをリンクしておくことです。

このモジュールの受講中に他の資格保持者と協力することに関心がありますか? Trailblazer コミュニティの「Certification Maintenance PDI」グループを参照してください。

認定を受けることに関心がある場合は、Salesforce Platform デベロッパーの資格を参照してください。

Salesforce では多数の機能を強化しています。今回のリリースの機能強化のうち、より重要なものを確認していきましょう。

メモ

メモ

だれもがこのバッジを取得できますが、このモジュールは 認定 Platform デベロッパーの資格を持つ開発者向けに設計されています。以降の指示は、このレベルの知識と経験があることが前提となっています。

Apex: 新規および変更されたクラスおよびインターフェース

次のような Apex の変更があります。

新しい Apex クラス

Auth 名前空間

VerificationResult クラス

System.UserManagement.verifySelfRegistration メソッドの結果を保存します。このメソッドは、独自の検証ページを作成したときに呼び出す検証の結果を返します。ユーザが正常に作成された場合、検証状況とセッション ID が含まれます。

System 名前空間

OrgLimit クラス

System.OrgLimit クラスには、インスタンスの名前、現在の値、および最大制限を返すメソッドが含まれます。

getName() - 制限の名前を返します。

getValue() - 使用制限値を返します。

getLimit() - 制限の最大値を返します。

OrgLimits クラス

System.OrgLimits クラスには、すべての組織制限のリスト、またはすべての組織制限の名前と値の対応付けが含まれます。

getAll() - OrgLimit インスタンスのリストを返します。

getMap() - すべての OrgLimit インスタンスと制限名の対応付けをキーとして返します。

関連情報:

メソッドが新規追加された既存の Apex クラス

AppLauncher.LoginFormController クラス

loginGetPageRefUrl(username, password, startUrl)

新しいメソッドは、特定のユーザ名とパスワードを使用してユーザをログインします。Lightning 環境でログインに成功した場合、ユーザは startUrl で指定されたページにリダイレクトされます。非 Lightning 環境では、メソッドによって返される startUrl を使用してリダイレクトをプログラムします。ログインに失敗すると、エラー文字列が返されます。

Auth.AuthConfiguration クラス

getCertificateLoginEnabled(domainUrl)

証明書ベースの認証が [私のドメイン] の URL で有効になっている場合、true を返します。

getCertificateLoginUrl(domainUrl, startUrl)

組織で証明書ベースの認証が有効になっている場合、[私のドメイン] の URL の証明書ベースの認証エンドポイントを返します。

Auth.SessionManagement クラス

finishLoginDiscovery(method, userId)

[私のドメイン] のログイン検出ログインプロセスを完了します。

System.SObject クラス

isSet(fieldName)

クエリ対象の sObject 項目に関する情報を返します。sObject 項目が直接割り当てか SOQL クエリへの追加によって入力されている場合、true を返します。sObject 項目が設定されていない場合、false を返します。無効な項目が指定されている場合、SObjectException が発生します。

isSet(field)

クエリ対象の sObject 項目に関する情報を返します。sObject 項目が直接割り当てか SOQL クエリへの追加によって入力されている場合、true を返します。sObject 項目が設定されていない場合、false を返します。無効な項目が指定されている場合、SObjectException が発生します。

System.UserManagement クラス

initSelfRegistration(method, user)

コミュニティセルフ登録用の独自の検証ページを作成するときに、このメソッドを使用して検証を呼び出します。

sendAsyncEmailConfirmation(userId, emailTemplateId, networkId, startUrl)

ユーザのメールアドレスに検証用のメールメッセージを送信します。このメッセージには、ユーザが後でメールアドレスを検証するためにクリックする検証リンク (URL) が含まれます。メール検証を一括で送信できます。

verifySelfRegistration(method, identifier, code, startUrl)

コミュニティセルフ登録用の独自の検証ページを作成するときに、このメソッドを使用して検証を完了します。登録を行っている人が検証コードを正常に入力すると、ユーザが作成されてログインされます。

メソッドが変更された既存の Apex クラス

System.Test クラス

stopTest()

レコード変更プロセスとイベントプロセス (プロセスビルダーで作成) のスケジュール済みアクションを実行し、時間ベースの再開イベントを待機しているフローを再開します。

System.String クラス

format(stringToFormat, formattingArguments)

formattingArguments パラメータ種別は、パラメータとして非文字列オブジェクトを許可するために List<String> の代わりに List<Object> を使用するようになりました。第 1 引数をパターンとして扱い、第 2 引数を置換および形式設定に使用して文字列を返します。この置換および形式設定は、apex:outputText および Java MessageFormat クラスと同じ方法です。第 2 引数の List の非文字列型は、その型に存在する toString() メソッド上書きを適用して暗黙的に文字列に変換されます。

新しい Apex 列挙、例外、インターフェース

Auth.LoginDiscoveryMethod 列挙

ユーザの ID の検証に使用するメソッドが含まれます。

Auth.DiscoveryCustomErrorException 例外

この例外を発生させて、MyDomainLoginDiscoveryHandlerLoginDiscoveryHandler、および ConfigurableSelfRegHandler に表示するエラーメッセージをカスタマイズします。

Auth.MyDomainLoginDiscoveryHandler インターフェース

インタビューベース (2 ステップ) のログインプロセスである、[私のドメイン] のログイン検出ページを実装するために使用するハンドラ。まず、メールアドレスや電話番号などの一意の識別子をユーザに要求します。次に、このハンドラがユーザの認証方法を決定 (検出) します。ユーザはパスワードを入力するか、ID プロバイダのログインページにリダイレクトされます。

MyDomainLoginDiscoveryHandler のメソッドは次のようになります。

login(identifier, startUrl, requestAttributes)

メールや電話番号などの一意の識別子が指定された Salesforcec ユーザのログインを行います。成功した場合、開始 URL で指定されたページにユーザをリダイレクトします。

関連情報:

予期しない例外に関する情報の取得

予期しない Apex 例外イベント種別

EventLogFile オブジェクトの新しい Apex の予期しない例外イベント種別は、Apex コード実行での予期しない例外に関する情報を取得します。このイベント種別は、API バージョン 45.0 以降の EventLogFile オブジェクトで使用できます。

例外情報を取得する標準の方法は、生成されたメールからの取得です。ただし、スタック追跡を含む、EventLogFile オブジェクトの Apex 例外情報の分析も選択できるようになりました。

イベントモニタリングのお客様の場合、未対応の例外が原因で Apex 操作が終了した場合、例外データを受信します。

イベントモニタリングの詳細については、次を参照してください。

Sandbox のコピーによる時間の節約

Sandbox のコピーにより、アプリケーションライフサイクルでの複数の同時作業ストリームの管理が簡素化されます。開発、テスト、ステージングなどの作業種別ごとに既存の Sandbox をコピーします。1 つの開発フェーズから次のフェーズに移行する場合、本番組織を作成元として使用するのではなく、既存の Sandbox をコピーします。このパターンによって個々の Sandbox のカスタマイズが簡素化されます。同僚は個々の Sandbox を簡単にコピーできるため、1 つの Sandbox を共有する必要がなく、お互いの作業を妨げずに済みます。

Sandbox のコピー

[設定] から、[クイック検索] ボックスに「Sandbox」と入力し、[Sandbox] を選択します。既存の Sandbox の名前の横にある [コピー] をクリックします。または、[新規 Sandbox] を選択し、[作成元] ドロップダウンメニューで、コピーする Sandbox を選択します。

新しい Sandbox の準備ができたら、他の Sandbox のように本番組織から管理できます。コピーした各 Sandbox 内で、アプリケーションライフサイクルのフェーズ (テスト、ステージングなど) に対応するようにデータとメタデータをカスタマイズします。

Tooling API を使用して Sandbox をコピーするには、新しい SandboxInfo オブジェクトの SourceId 項目で ID を指定します。

メモ

メモ

この変更は、Professional Edition、Enterprise Edition、Performance Edition、Unlimited Edition の Lightning Experience および Salesforce Classic に適用されます。

Tooling API の詳細については、次を参照してください。

カスタムメタデータ: カスタムメタデータ型を使用したデフォルト項目値の設定

デフォルト値でカスタムメタデータ型レコードを参照し、項目の更新を簡略化します。デフォルト項目値が変更された場合、複数の項目参照を更新する代わりに、カスタムメタデータ型で更新できます。

例: あなたの組織は異なる割引率を商談に適用しているとします。

  1. カスタムメタデータ型を作成します。この例では、DiscountPercent という名前を付けます。
  2. 使用する型のカスタム項目を作成し、「discount」(割引) という名前を付けます。
  3. レコードを作成し、「IT」(情報技術) という名前を付けます。
  4. 商談オブジェクトにカスタム項目を作成し、「Discount Rate」(割引率) という名前を付けます。
メモ

メモ

数式エディタには、カスタムメタデータ項目のデータ型は含まれません。カスタムメタデータ項目値を手動で参照します。選択リストの TEXT() 関数はサポートされていません。

完了したら、デフォルト値としてカスタムメタデータ項目値を参照し、[Discount Rate (割引率)] 項目を入力できます。構文は次のとおりです。

$CustomMetadata.CustomMetadataTypeAPIName.RecordAPIName.FieldAPIName

正しいサフィックスを使用してください。カスタムメタデータ型には、__mdt を使用します。項目には、__c を使用します。レコードにはサフィックスは必要ありません。この例は次のようになります。

$CustomMetadata.DiscountPercent__mdt.IT.discount__c

最大割引金額が変更されたら、1 か所で更新できます。

リソース