tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Winter'19で新規および変更されたApex処理

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

Schema.DescribeFieldResult クラス

isAiPredictionField()

Einstein 予測データを表示するように項目が有効化されているかどうかを示す Boolean を返します。

Schema.DescribeFieldResult F = Opportunity.StageName.getDescribe();
System.debug(F.isAiPredictionField());

Schema.DescribeSObjectResult クラス

getRecordTypeInfosByDeveloperName()

関連付けられたレコードタイプに API 参照名を照合する対応付けを返します。

Schema.DescribeSObjectResult d = Account.sObjectType.getDescribe();
System.debug(d.getRecordTypeInfosByDeveloperName());

Schema.RecordTypeInfo クラス

getDeveloperName()

このレコードタイプの API 参照名を返します。

RecordType rt = [SELECT Id,Name FROM RecordType WHERE SobjectType='Account' LIMIT 1];
Schema.DescribeSObjectResult d = Schema.SObjectType.Account; 
Map<Id,Schema.RecordTypeInfo> rtMapById = d.getRecordTypeInfosById();

Schema.RecordTypeInfo rtById =  rtMapById.get(rt.id);
System.debug(rtById.getDeveloperName());

System.Crypto クラス

verify(String algorithmName, Blob data, Blob signature, Blob publicKey)

指定アルゴリズムと供給された公開鍵を使用して、暗号化されたデータのデジタル署名を確認する Boolean を返します。

verify(String algorithmName, Blob data, Blob signature, String certDevName)

指定アルゴリズムと certDevName に関連付けられた公開鍵を使用して、データのデジタル署名を確認する Boolean を返します。

verifyMac(String algorithmName, Blob input, Blob privateKey, Blob macToVerify)

指定アルゴリズム、入力データ、非公開鍵、MAC アドレスを使用して、データの HMAC 署名を確認する Boolean を返します。

System.Url クラス

getOrgDomainUrl()

組織の正規 URL を返します。

System.debug(System.Url.getOrgDomainUrl());

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

System.UserInfo クラス

getSessionId()

非同期 Apex (一括処理、future、Queueable、またはスケジュール済み Apex) で getSessionId() を使用できるようになりました。以前は、このメソッドは非同期実行時に null を返していました。

非同期 Apex では、このメソッドはコードが有効なユーザによって実行されている場合にのみセッション ID を返します。コードが内部ユーザ (自動化プロセスユーザやプロキシユーザなど) によって実行されている場合、このメソッドは null を返します。

変更された Apex Enum

Winter '19 リリースでは、次の列挙が更新されています。

Auth.Auth.VerificationMethodEnum Enum

ユーザがログイン時に自分自身を識別できるさまざまな方法が含まれます。モバイルで使いやすいパスワードなしのログインページの実装や、検証方法のセルフ登録 (および登録解除) のために使用できます。

この Enum に新しい値 Password が追加されました。パスワードで ID を確認できます。

Metadata.PlatformActionListContextEnum Enum

アクションリストの各種コンテキストを説明します。

この Enum に新しい値 ActionDefinition が追加されました。この値は、将来の使用のために予約されています。

新規 Apex 例外

Winter '19 リリースでは、次の例外が導入されています。

Auth 名前空間

LoginDiscoveryException

例外を発生させて、ログイン検出ハンドラを実行しているときにエラーが発生したことを示します。

DiscoveryCustomErrorException

ログイン、検証、およびセルフ登録ページに表示するエラーメッセージをカスタマイズするための例外を発生させます。

新規 Apex インターフェース

Winter '19 リリースでは、次の新規インターフェースが導入されています。

Auth.ConfigurableSelfRegHandler インターフェース

ユーザ名とパスワードの代わりにメールアドレスまたは電話番号でユーザを登録するには、Auth.ConfigurableSelfRegHandler を実装するクラスを作成します。設定可能なセルフ登録ページでコミュニティのセルフ登録を設定すると、Salesforce によってデフォルトの AutocreatedConfigSelfReg Apex クラスが生成されます。このクラスを修正して機能を拡張し、ユーザが作成される方法の変更などを行うことができます。

createUser(accountId, profileId, registrationAttributes, password)

コミュニティのセルフ登録ページで訪問者が提供した情報を使用して、コミュニティメンバーを作成します。

Auth.LoginDiscoveryHandler インターフェース

ユーザ名とパスワード以外の確認方法に基づいてユーザのログインを行うには、Auth.LoginDiscoveryHandler を実装するクラスを作成します。ユーザはメール、電話番号、または統合 ID やデバイス識別子などの他の識別子を使用して、自分自身を識別できます。ログイン検出ページでコミュニティのログインページを設定すると、Salesforce によってデフォルトの AutocreatedDiscLoginHandler が生成されます。このクラスを修正し、シングルサインオン (SSO) のサポートの追加などを行うことができます。

login(identifier, startUrl, requestAttributes)

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

System.Callable インターフェース

開発者が共通インターフェースを使用して、異なるパッケージ内のコードでも Apex クラスまたはトリガ間の疎結合インテグレーションを作成できます。共通インターフェースについて合意することで、異なる会社や異なる部署の開発者が相互のソリューションに基づいてソリューションを作成できます。コミュニティの規模を拡大し、当初の予定とは異なるソリューションが必要になる場合、このインターフェースを実装してコードの機能を拡張します。

call(action, args)

他のクラスまたはパッケージで利用したり作成時の基盤としたりできる機能を提供します。

変更された Apex の SOAP API コール

runTests() コールが変更されました。

RunTestsResult オブジェクトに次の 2 つの新規項目が追加されました。

flowCoverage

フローを実行したテスト実行の結果の配列。

flowCoverageWarnings

フローを実行したテスト実行によって生成された警告の配列。