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

Newer Version Available

This content describes an older version of this product. View Latest

Id クラス

ID プリミティブデータ型のメソッドが含まれます。

名前空間

System

例: ID からの sObject トークンの取得

このサンプルでは、getSObjectType メソッドを使用して ID から sObject トークンを取得する方法を示します。このサンプルの updateOwner メソッドは、sObject の ID のリストを受け取って ownerId 項目を更新します。このリストには、同じデータ型の sObject の ID が含まれます。2 番目のパラメータは、新しい所有者 ID です。これは future メソッドであるため、sObject のデータ型をパラメータとして受け取れません。そのため sObject の ID を受け取ります。このメソッドは、リストの 1 番目の ID から sObject トークンを取得し、オブジェクト名を取得する describe を実行して動的にクエリを構築します。次に、すべての sObject をクエリし、所有者 ID 項目を新しい所有者 ID に更新します。

1swfobject.registerObject("clippy.getSObjectTypeFromIDEx", "9");
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17public class MyDynamicSolution {
18    @future
19    public static void updateOwner(List<ID> objIds, ID newOwnerId) {
20        // Validate input
21        System.assert(objIds != null);
22        System.assert(objIds.size() > 0);
23        System.assert(newOwnerId != null);
24        
25        // Get the sObject token from the first ID
26        // (the List contains IDs of sObjects of the same type).
27        Schema.SObjectType token = objIds[0].getSObjectType();
28        
29        // Using the token, do a describe 
30        // and construct a query dynamically. 
31        Schema.DescribeSObjectResult dr = token.getDescribe();
32        String queryString = 'SELECT ownerId FROM ' + dr.getName() + 
33            ' WHERE ';
34        for(ID objId : objIds) {
35            queryString += 'Id=\'' + objId + '\' OR ';
36        }    
37        // Remove the last ' OR'
38        queryString = queryString.subString(0, queryString.length() - 4);
39
40        sObject[] objDBList = Database.query(queryString);
41        System.assert(objDBList.size() > 0);
42        
43        // Update the owner ID on the sObjects
44        for(Integer i=0;i<objDBList.size();i++) {
45            objDBList[i].put('ownerId', newOwnerId);
46        }        
47        Database.SaveResult[] srList = Database.update(objDBList, false);
48        for(Database.SaveResult sr : srList) {
49            if (sr.isSuccess()) {
50                System.debug('Updated owner ID successfully for ' + 
51                    dr.getName() + ' ID ' + sr.getId());
52            }
53            else {
54                System.debug('Updating ' + dr.getName() + ' returned the following errors.');
55                for(Database.Error e : sr.getErrors()) {
56                    System.debug(e.getMessage());
57                }
58            }
59        }
60    }
61}

Id メソッド

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

addError(errorMsg)

カスタムエラーメッセージでレコードをマークし、DML 操作が行われないようにします。

署名

public Void addError(String errorMsg)

パラメータ

errorMsg
型: String

レコードにマークを付けるエラーメッセージです。

戻り値

型: Void

使用方法

このメソッドは、addError(errorMsg) sObject メソッドと類似しています。

このメソッドは、指定されたエラーメッセージ内のすべての HTML マークアップをエスケープします。エスケープ文字は、\n<>&"\\u2028\u2029\u00a9 です。この結果は HTML マークアップで表示されません。代わりに、Salesforce ユーザインターフェースにテキストとして表示されます。

メモ

1Trigger.new[0].Id.addError('bad');

addError(errorMsg, escape)

カスタムエラーメッセージを使用してレコードにマークを付け、エラーメッセージをエスケープする必要があるかどうかを指定して、DML 操作が行われないようにします。

署名

public Void addError(String errorMsg, Boolean escape)

パラメータ

errorMsg
型: String

レコードにマークを付けるエラーメッセージです。

escape
型: Boolean

カスタムエラーメッセージ内の HTML マークアップがエスケープされるか (true)、否か (false) を示します。

戻り値

型: Void

使用方法

エスケープ文字は、\n<>&"\\u2028\u2029\u00a9 です。この結果は HTML マークアップで表示されません。代わりに、Salesforce ユーザインターフェースにテキストとして表示されます。

escape 引数に false を指定するときは、慎重に行ってください。Salesforce ユーザインターフェースに表示されるエスケープ解除された文字列が、システムの脆弱性を示す場合があります。それらの文字列に有害なコードが含まれている可能性があるためです。エラーメッセージに HTML マークアップを含める場合は、falseescape 引数を使用してこのメソッドをコールし、入力項目値などのすべての動的コンテンツをエスケープします。それ以外の場合は、escape 引数に true を指定するか、addError(String errorMsg) をコールします。

警告

1Trigger.new[0].Id.addError('Fix & resubmit', false);

addError(exceptionError)

カスタムエラーメッセージでレコードをマークし、DML 操作が行われないようにします。

署名

public Void addError(Exception exceptionError)

パラメータ

exceptionError
型: System.Exception

レコードにマークを付けるエラーメッセージを含む例外オブジェクトまたはカスタム例外オブジェクトです。

戻り値

型: Void

使用方法

このメソッドは、addError(exceptionError) sObject メソッドと類似しています。

このメソッドは、指定されたエラーメッセージ内のすべての HTML マークアップをエスケープします。エスケープ文字は、\n<>&"\\u2028\u2029\u00a9 です。この結果は HTML マークアップで表示されません。代わりに、Salesforce ユーザインターフェースにテキストとして表示されます。

メモ

1public class MyException extends Exception{}
2
3Trigger.new[0].Id.addError(new myException('Invalid Id'));

addError(exceptionError, escape)

カスタムエラーメッセージでレコードをマークし、DML 操作が行われないようにします。

署名

public Void addError(Exception exceptionError, Boolean escape)

パラメータ

exceptionError
型: System.Exception

レコードにマークを付けるエラーメッセージを含む例外オブジェクトまたはカスタム例外オブジェクトです。

escape
型: Boolean

カスタムエラーメッセージ内の HTML マークアップがエスケープされるか (true)、否か (false) を示します。

戻り値

型: Void

使用方法

エスケープ文字は、\n<>&"\\u2028\u2029\u00a9 です。この結果は HTML マークアップで表示されません。代わりに、Salesforce ユーザインターフェースにテキストとして表示されます。

escape 引数に false を指定するときは、慎重に行ってください。Salesforce ユーザインターフェースに表示されるエスケープ解除された文字列が、システムの脆弱性を示す場合があります。それらの文字列に有害なコードが含まれている可能性があるためです。エラーメッセージに HTML マークアップを含める場合は、falseescape 引数を使用してこのメソッドをコールし、入力項目値などのすべての動的コンテンツをエスケープします。それ以外の場合は、escape 引数に true を指定するか、addError(Exception e) をコールします。

警告

1public class MyException extends Exception{}
2
3account a = new account();
4a.addError(new MyException('Invalid Id & other issues'), false);

getSObjectType()

この ID に対応する sObject のトークンを返します。このメソッドは Describe Information で使用されます。

署名

public Schema.SObjectType getSObjectType()

戻り値

型: Schema.SObjectType

使用方法

Describe についての詳細は、Apex Describe Information についてを参照してください。

1account a = new account(name = 'account');
2insert a;
3Id myId = a.id;
4system.assertEquals(Schema.Account.SObjectType, myId.getSobjectType());

valueOf(toID)

指定した string を ID に変換してその ID を返します。

署名

public static ID valueOf(String toID)

パラメータ

toID
型: String

戻り値

型: ID

1Id myId = Id.valueOf('001xa000003DIlo');