この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

UnlockResult クラス

System.Approval.unlock() メソッドによって返されるレコードロック解除の結果。

名前空間

Approval

使用方法

System.Approval.unlock() メソッドは Approval.UnlockResult オブジェクトを返します。UnlockResult 配列の各要素は、unlock メソッドへのパラメータとして渡された ID または sObject 配列の要素に対応します。UnlockResult 配列の最初の要素は ID または sObject 配列の最初の要素に対応し、2 つ目の要素は 2 つ目の要素、というように対応します。ID または sObject が 1 つのみ渡された場合、UnlockResult 配列には 1 つの要素が含まれます。

次の例は、返された Approval.UnlockResult オブジェクトを取得して反復処理する方法を示します。Approval.unlock の 2 番目のパラメータに false を指定して使用し、一部のクエリ済み取引先をロックして、失敗時にレコードの部分的な処理を行えるようにしています。次に、結果を反復処理して、レコードごとに操作が成功したかどうかを判別します。正常に処理された場合はそのレコードの ID、失敗した場合はそのレコードのエラーメッセージと失敗した項目をデバッグログに書き込みます。

1// Query the accounts to unlock
2Account[] accts = [SELECT Id from Account WHERE Name LIKE 'Acme%'];
3
4for(Account acct:accts) {
5   // Create an approval request for the account
6   Approval.ProcessSubmitRequest req1 =
7           new Approval.ProcessSubmitRequest();
8   req1.setComments('Submitting request for approval.');
9   req1.setObjectId(acct.id);
10
11   // Submit the record to specific process and skip the criteria evaluation
12   req1.setProcessDefinitionNameOrId('PTO_Request_Process');
13   req1.setSkipEntryCriteria(true);
14
15   // Submit the approval request for the account
16   Approval.ProcessResult result = Approval.process(req1);
17
18   // Verify the result
19   System.assert(result.isSuccess());
20}
21
22// Unlock the accounts
23Approval.UnlockResult[] urList = Approval.unlock(accts, false);
24
25// Iterate through each returned result
26for(Approval.UnlockResult ur : urList) {
27    if (ur.isSuccess()) {
28        // Operation was successful, so get the ID of the record that was processed
29        System.debug('Successfully unlocked account with ID: ' + ur.getId());
30    }
31    else {
32        // Operation failed, so get all errors                
33        for(Database.Error err : ur.getErrors()) {
34            System.debug('The following error has occurred.');                    
35            System.debug(err.getStatusCode() + ': ' + err.getMessage());
36            System.debug('Account fields that affected this error: ' + err.getFields());
37        }
38    }
39}

UnlockResult のメソッド

UnlockResult のメソッドは次のとおりです。

getErrors()

エラーが発生した場合に、エラーコードと説明を示す 1 つ以上のデータベースエラーオブジェクトからなる配列を返します。

署名

public List<Database.Error> getErrors()

戻り値

型: List<Database.Error>

getId()

ロック解除しようとしている sObject の ID を返します。

署名

public Id getId()

戻り値

型: Id

使用方法

項目に値が含まれている場合、オブジェクトはロック解除されています。項目が空白の場合、操作は失敗しています。

isSuccess()

このオブジェクトに対するロック解除操作が成功した場合は Boolean 値が true、それ以外の場合は false に設定されます。

署名

public Boolean isSuccess()

戻り値

型: Boolean