System クラス
名前空間
System のメソッド
System のメソッドは次のとおりです。すべてのメソッドが静的です。
abortJob(jobId)
署名
public static Void abortJob(String jobId)
パラメータ
- jobId
- 型: String
- jobId は、AsyncApexJob または CronTrigger のいずれかに関連付けられた ID です。
戻り値
型: Void
使用方法
次のメソッドは、abortJob に渡すことができるジョブ ID を返します。
- System.schedule メソッド — スケジュール済みのジョブに関連付けられている CronTrigger オブジェクト ID を文字列として返します。
- SchedulableContext.getTriggerId メソッド — スケジュール済みのジョブに関連付けられている CronTrigger オブジェクト ID を文字列として返します。
- getJobId メソッド — 一括処理ジョブに関連付けられている AsyncApexJob オブジェクト ID を文字列として返します。
- Apex の一括処理の使用Database.executeBatch メソッド — 一括処理ジョブに関連付けられている AsyncApexJob オブジェクト ID を文字列として返します。
assert(condition, msg)
署名
public static Void assert(Boolean condition, Object msg)
パラメータ
- condition
- 型: Boolean
- msg
- 型: Object
- (省略可能) エラーメッセージの一部として返されるカスタムメッセージ。
戻り値
型: Void
assertEquals(expected, actual, msg)
署名
public static Void assertEquals(Object expected, Object actual, Object msg)
パラメータ
- expected
- 型: Object
- 期待値を指定します。
- actual
- 型: Object
- 実際の値を指定します。
- msg
- 型: Object
- (省略可能) エラーメッセージの一部として返されるカスタムメッセージ。
戻り値
型: Void
使用方法
アサーションの失敗は、例外としてログに記録されていても、try/catch ブロックを使用して捕捉することはできません。
assertNotEquals(expected, actual, msg)
署名
public static Void assertNotEquals(Object expected, Object actual, Object msg)
パラメータ
- expected
- 型: Object
- 期待値を指定します。
- actual
- 型: Object
- 実際の値を指定します。
- msg
- 型: Object
- (省略可能) エラーメッセージの一部として返されるカスタムメッセージ。
戻り値
型: Void
使用方法
アサーションの失敗は、例外としてログに記録されていても、try/catch ブロックを使用して捕捉することはできません。
currentPageReference()
署名
public static System.PageReference currentPageReference()
戻り値
使用方法
詳細は、「PageReference クラス」を参照してください。
currentTimeMillis()
署名
public static Long currentTimeMillis()
戻り値
型: Long
debug(msg)
署名
public static Void debug(Object msg)
パラメータ
- msg
- 型: Object
戻り値
型: Void
使用方法
msg 引数が string でない場合、debug メソッドは String.valueOf をコールして引数を string に変換します。String.valueOf メソッドは、その引数に対する toString メソッド (利用可能な場合)、または引数がユーザ定義型の場合は上書きされた toString をコールします。それ以外の、toString メソッドが利用できない場合は引数の文字列表現を返します。
Apex コードのログレベルが DEBUG 以上に設定されていると、この debug ステートメントのメッセージはデバッグログに書き込まれます。
ログレベルについての詳細は、Salesforce オンラインヘルプの「デバッグログレベル」を参照してください。
debug(logLevel, msg)
署名
public static Void debug(LoggingLevel logLevel, Object msg)
パラメータ
- logLevel
- 型: LoggingLevel 列挙
- このメソッドに設定するログレベルです。
- msg
- 型: Object
- 実行デバッグログに string 形式で書き込むメッセージまたはオブジェクトです。
戻り値
型: Void
使用方法
msg 引数が string でない場合、debug メソッドは String.valueOf をコールして引数を string に変換します。String.valueOf メソッドは、その引数に対する toString メソッド (利用可能な場合)、または引数がユーザ定義型の場合は上書きされた toString をコールします。それ以外の、toString メソッドが利用できない場合は引数の文字列表現を返します。
ログレベルについての詳細は、Salesforce オンラインヘルプ��「デバッグログレベル」を参照してください。
enqueueJob(queueableObj)
署名
public static ID enqueueJob(Object queueableObj)
パラメータ
- queueableObj
- 型: Object
- Queueable インターフェースを実装するクラスのインスタンス。
使用方法
非同期実行のジョブを追加するには、次のように、実行に使用する Queueable インターフェースのクラス実装のインスタンスを渡して、System.enqueueJob をコールします。
1ID jobID = System.enqueueJob(new MyQueueableClass());制限に関する情報など、Queueable Apex についての詳細は、「キュー可能 Apex」を参照してください。
equals(obj1, obj2)
署名
public static Boolean equals(Object obj1, Object obj2)
パラメータ
- obj1
- 型: Object
- 比較されるオブジェクト。
- obj2
- 型: Object
- 最初の引数と比較するオブジェクト。
戻り値
型: Boolean
使用方法
obj1 と obj2 は任意の種別にすることができます。これらのパラメータには、値やオブジェクト参照 (sObject、ユーザ定義型など) を指定できます。
System.equals の比較ルールは、== 演算子の比較ルールと同じです。たとえば、文字列の比較���は大文字と小文字を区別しません。比較ルールについての詳細は、「== 演算子」を参照してください。
getApplicationReadWriteMode()
署名
public static System.ApplicationReadWriteMode getApplicationReadWriteMode()
System.ApplicationReadWriteMode 列挙の使用
Salesforce のアップグレードおよびダウンタイム中にアプリケーションが参照のみモードであるかどうかをプログラムで判断するには、getApplicationReadWriteMode によって返される System.ApplicationReadWriteMode enum を使用します。
- DEFAULT
- READ_ONLY
1public class myClass {
2 public static void execute() {
3 ApplicationReadWriteMode mode = System.getApplicationReadWriteMode();
4
5 if (mode == ApplicationReadWriteMode.READ_ONLY) {
6 // Do nothing. If DML operaton is attempted in readonly mode,
7 // InvalidReadOnlyUserDmlException will be thrown.
8 } else if (mode == ApplicationReadWriteMode.DEFAULT) {
9 Account account = new Account(name = 'my account');
10 insert account;
11 }
12 }
13}getQuiddityShortCode(QuiddityValue)
署名
public String getQuiddityShortCode(System.Quiddity QuiddityValue)
パラメータ
- QuiddityValue
- 型: System.Quiddity
- 関連付けられたショートコードがある Quiddity 列挙値。このショートコードはイベント監視ログで使用されます。詳細は、「Apex 実行イベント種別」を参照してください。
戻り値
型: String
hashCode(obj)
署名
public static Integer hashCode(Object obj)
パラメータ
- obj
- 型: Object
- ハッシュコードを取得するオブジェクト。このパラメータは、値やオブジェクト参照 (sObject、ユーザ定義型) など任意の型にすることができます。
戻り値
型: Integer
バージョン管理動作の変更
API バージョン 51.0 以降、hashCode() メソッドは、同じ ID 値では同じ hashCode を返します。API バージョン 50.0 以前では、同じ ID 値でも、異なる hashCode 値が生成されることがありました。
isBatch()
署名
public static Boolean isBatch()
戻り値
型: Boolean
isFuture()
署名
public static Boolean isFuture()
戻り値
型: Boolean
isQueueable()
署名
public static Boolean isQueueable()
戻り値
型: Boolean
使用方法
1public class SimpleQueueable implements Queueable {
2
3 String name;
4
5 public SimpleQueueable(String name) {
6 this.name = name;
7 System.assert(!System.isQueueable()); //Should return false
8 }
9
10 public void execute(QueueableContext ctx) {
11 Account testAccount = new Account();
12 testAccount.name = 'testAcc';
13 insert(testAccount);
14 System.assert(System.isQueueable()); //Should return true
15 }
16}1global class ComplexBatch implements Database.Batchable<SObject> {
2
3 global Database.QueryLocator start(Database.BatchableContext info) {
4 System.assert(!System.isQueueable()); //Should return false
5 return Database.getQueryLocator([SELECT Id, Name FROM Account LIMIT 1]);
6 }
7
8 global void execute(Database.BatchableContext info, SObject[] scope) {
9 System.assert(!System.isQueueable()); //Should return false
10 System.enqueueJob(new SimpleQueueable('CallingFromComplexBatch'));
11 System.assert(!System.isQueueable()); //Should return false
12 }
13
14 global void finish(Database.BatchableContext info) {
15 System.assert(!System.isQueueable()); //Should return false
16 }
17}isScheduled()
署名
public static Boolean isScheduled()
戻り値
型: Boolean
movePassword(targetUserId,sourceUserId)
署名
public static Void movePassword(ID targetUserId, ID sourceUserId)
戻り値
型: Void
使用方法
外部ユーザをアクセス権の制限が緩いユーザに変換する場合などにパスワードを移動すると、ユーザを別の種別のユーザに簡単に変換できます。movePassword メソッドにアクセスする必要がある場合は、Salesforce にお問い合わせください。
- targetUserId、sourceUserId、移動操作を実行するユーザはすべて、同じ Salesforce 組織に属している必要があります。
- targetUserId および sourceUserId を、移動操作を実行するユーザと同じにすることはできません。
- パスワードのないユーザを sourceUserId に指定することはできません。たとえば、パスワードがすでに移動されている移動元ユーザは、パスワードがないままです。このユーザを再び移動元ユーザにすることはできません。
- 移動先ユーザがパスワードを使用してログインできます。
- 移動元ユーザにはパスワードがなくなります。このユーザのログインを有効にするには、パスワードのリセットが必要です。
purgeOldAsyncJobs(dt)
署名
public static Integer purgeOldAsyncJobs(Date dt)
パラメータ
- dt
- 型: Date
- どの日付以前の古いレコードを削除するのか、日付を指定します。日付の比較は、AsyncApexJob の CompletedDate 項目 (GMT タイムゾーン) に基づいて比較されます。
戻り値
型: Integer
使用方法
Apex 非同期ジョブレコードは、AsyncApexJob のレコードです。
システムは、実行を終了した、8 日以上前のジョブについて非同期ジョブレコードをクリーンアップします。このメソッドを使用し、より多くのレコードをクリーンアップすることで、AsyncApexJob のサイズをさらに小さくすることができます。
resetPassword(userId, sendUserEmail)
署名
public static System.ResetPasswordResult resetPassword(ID userId, Boolean sendUserEmail)
戻り値
型: System.ResetPasswordResult
使用方法
ユーザが新しいパスワードでログインすると、新しいパスワードを入力してセキュリティに関する質問および回答を選択するように求められます。sendUserEmail に true を指定すると、パスワードがリセットされたことをユーザに通知するメールが送信されます。このメールには、新しいパスワードを使用して Salesforce にサインオンするためのリンクが含まれます。ユーザのログイン時に新しいパスワードの入力を求めない場合は、setPassword(userId, password) を使用します。
resetPasswordWithEmailTemplate(userId, sendUserEmail, emailTemplateName)
署名
public static System.ResetPasswordResult resetPasswordWithEmailTemplate(Id userId, Boolean sendUserEmail, String emailTemplateName)
パラメータ
戻り値
使用方法
sendUserEmail に true を指定する場合、パスワードがリセットされたことをユーザに通知するメールテンプレートを指定します。メール内の新しいパスワードでユーザがログインすると、新しいパスワードを入力するように求められます。このメールには、新しいパスワードを使用して Salesforce にサインオンするためのリンクが含まれます。ユーザのログイン時に新しいパスワードの入力を求めない場合は、setPassword(userId, password) を使用します。
runAs(version)
署名
public static Void runAs(System.Version version)
パラメータ
- version
- 型: System.Version
戻り値
型: Void
使用方法
パッケージ開発者は、コードをアップグレードしながら、以前のパッケージバージョンのクラスおよびトリガの既存の動作を引き続きサポートするために、Version メソッドを使用できます。Apex クラスおよびトリガは、クラスまたはトリガが参照するインストール済みの各管理パッケージのバージョン設定で保存されます。
このメソッドを使用して、AppExchange にアップロードする異なるパッケージバージョンのコンポーネントの動作をテストします。このメソッドは、異なるパッケージバージョンの動作をテストできるように、テストメソッドのメジャーバージョン番号とマイナーバージョン番号の 2 つで構成されるバージョン番号を効率的に設定します。
テストメソッドでは runAs のみ使用できます。トランザクションで、このメソッドに対するコール数の制限はありません。このメソッドの使用例は、「パッケージバージョンの動作のテスト」を参照してください。
runAs(userSObject)
署名
public static Void runAs(User userSObject)
パラメータ
- userSObject
- 型: User
戻り値
型: Void
使用方法
指定されたユーザのレコード共有のすべてが、runAs の実行時に強制されます。テストメソッドでは runAs のみ使用できます。詳細は、「runAs() メソッドの使用」を参照してください。
runAs メソッドは、パラメータとして渡されたユーザがインスタンス化済みでまだ挿入されていない場合は、暗黙的に挿入します。
DML 操作を runAs ブロックで囲むことで、runAs を使用して混合 DML 操作をテストで実行することもできます。この方法では、設定オブジェクトを他の sObject と一緒に挿入または更新しようとすると返される混合 DML エラーを回避できます。「DML 操作で同時に使用できない sObject」を参照してください。
schedule(jobName, cronExpression, schedulableClass)
署名
public static String schedule(String jobName, String cronExpression, Object schedulableClass)
使用方法
クラスをトリガからスケジュールする場合は、細心の注意を払ってください。制限を超えるスケジュールクラスをトリガで追加しないようにする必要があります。特に、API の一括更新、インポートウィザード、ユーザインターフェースを使用したレコードの一括変更、および複数のレコードを一度に更新するすべての処理については十分に考慮してください。abortJob メソッドを使用して、スケジュールされた後にジョブを停止します。
System.Schedule メソッドの使用
1Seconds Minutes Hours Day_of_month Month Day_of_week Optional_year式の値は次のとおりです。
| 名前 | 値 | 特殊文字 |
|---|---|---|
| Seconds | 0 ~ 59 | なし |
| Minutes | 0 ~ 59 | なし |
| Hours | 0 ~ 23 | , - * / |
| Day_of_month | 1 ~ 31 | , - * ? / L W |
| Month | 1 ~ 12、または次のとおりです。
|
, - * / |
| Day_of_week | 1 ~ 7、または次のとおりです。
|
, - * ? / L # |
| optional_year | Null または 1970 ~ 2099 | , - * / |
| 特殊文字 | 説明 |
|---|---|
| , | 値を区切ります。たとえば、複数の月を指定する場合は JAN, MAR, APR を使用します。 |
| - | 範囲を指定します。たとえば、複数の月を指定する場合は JAN-MAR を使用します。 |
| * | すべての値を指定します。たとえば、Month を * と指定すると、ジョブは毎月にスケジュールされます。 |
| ? | 特定の値を指定しません。Day_of_month と Day_of_week のみで使用でき、通常は、特定の値以外を指定しない場合に使用します。 |
| / | 増分を指定します。スラッシュの前の数値は期間の開始を指定し、スラッシュの後の数値は期間の長さを指定します。たとえば、Day_of_month に 1/5 と指定した場合、Apex クラスは月の 1 日から始まり、5 日おきに実行されます。 |
| L | 範囲の終了を指定します。Day_of_month と Day_of_week でのみ使用できます。日で使用すると、1 月の場合は 1 月 31 日、うるう年の 2 月の場合は 2 月 29 日など、L は常に月末日を意味します。Day_of_week のみで使用すると、7 または SAT を意味します。Day_of_week の値と一緒に使用すると、その月で指定した曜日の最後を意味します。たとえば、2L と指定すると、月の最終月曜日が指定されます。L と一緒に値の範囲は使用しないでください。予期しない結果が生じる場合があります。 |
| W | 特定の日に最も近い平日 (月曜日~金曜日) を指定します。Day_of_month でのみ使用できます。たとえば、20W と指定し、20 日が土曜日の場合、クラスは 19 日に実行されます。1W と指定すると、1 日が土曜日の場合、クラスはその前の月ではなく、次の月曜日である 3 日に実行されます。 |
| # | weekday#day_of_month という形式で、月の第 nth 日目を指定します。Day_of_week でのみ使用できます。# の前の数値は、平日 (SUN-SAT) を指定します。# の後の数値は、月の日付を指定します。たとえば、2#1 と指定すると、クラスは毎月第 1 月曜日に実行されます。 |
| 式 | 説明 |
|---|---|
| 0 0 13 * * ? | クラスは毎日午後 1 時に実行されます。 |
| 0 0 22 ? * 6L | クラスは毎月最終金曜日の午後 10 時に実行されます。 |
| 0 0 10 ? * MON-FRI | クラスは月曜日から金曜日の午前 10 時に実行されます。 |
| 0 0 20 * * ? 2010 | クラスは 2010 年の毎日午後 8 時に実行されます。 |
次の例では、クラス proschedule によって Schedulable インターフェースが実装されます。このクラスは、2 月 13 日の午前 8 時に実行するようにスケジュールされています。
1proschedule p = new proschedule();
2 String sch = '0 0 8 13 2 ?';
3 system.schedule('One Time Pro', sch, p);scheduleBatch(batchable, jobName, minutesFromNow)
署名
public static String scheduleBatch(Database.Batchable batchable, String jobName, Integer minutesFromNow)
パラメータ
- batchable
- 型: Database.Batchable
- Database.Batchable インターフェースを実装するクラスのインスタンス。
- jobName
- 型: String
- このメソッドが開始するジョブの名前。
- minutesFromNow
- 型: Integer
- ジョブを実行開始するまでの分単位の期間。この引数は 0 よりも大きい値にする必要があります。
使用方法
「Apex の一括処理の使用」の例を参照してください。
scheduleBatch(batchable, jobName, minutesFromNow, scopeSize)
署名
public static String scheduleBatch(Database.Batchable batchable, String jobName, Integer minutesFromNow, Integer scopeSize)
パラメータ
- batchable
- 型: Database.Batchable
- Database.Batchable インターフェースを実装する一括処理クラス。
- jobName
- 型: String
- このメソッドが開始するジョブの名前。
- minutesFromNow
- 型: Integer
- ジョブを実行開始するまでの分単位の期間。
- scopeSize
- 型: Integer
- 一括処理 execute メソッドに渡すレコードの数です。
戻り値
型: String
使用方法
「System.scheduleBatch メソッドの使用」の例を参照してください。
setPassword(userId, password)
署名
public static Void setPassword(ID userId, String password)
戻り値
型: Void
使用方法
- セキュリティの質問がまだ設定されていない場合、setPassword() を使用して設定された新しいパスワードでログインするユーザは [パスワードを変更する] ページにリダイレクトされます。
- ユーザがリセットプロセスを行い、独自のパスワードを作成するようにする場合は、resetPassword(userId, sendUserEmail) を使用します。
submit(workItemIds, comments, nextApprover)
署名
public static List<ID> submit(List<ID> workItemIds, String comments, String nextApprover)
使用方法
申請および評価の拡張機能についての詳細は、「ProcessSubmitRequest クラス」クラスを参照してください。