SObjectクラス
SObject クラス
sObject データ型のメソッドが含まれます。
get(fieldName)
AccountNumber など、fieldName で指定された項目の値を返します。
Account acc = new account(Name = 'Acme', Description = 'Acme Account');
String description = (String)acc.get('Description');
System.assertEquals('Acme Account', description);
Account acc = new account(Name = 'Acme', Description = 'Acme Account');
String description = (String)acc.get(Schema.Account.Description);
System.assertEquals('Acme Account', description);
getSObject(fieldName)
指定された項目の値を返します。このメソッドは主に、外部 ID の値にアクセスするために動的 DML と共に使用します。
Account acc = new account(Name = 'Acme', Description = 'Acme Account');
insert acc;
Contact con = new Contact(Lastname = 'AcmeCon', AccountId = acc.id);
insert con;
SObject contactDB =
[SELECT Id, AccountId, Account.Name FROM Contact WHERE id = :con.id LIMIT 1];
Account a = (Account)contactDB.getSObject('Account');
System.assertEquals('Acme', a.name);
Account acc = new account(name = 'Acme', description = 'Acme Account');
insert acc;
Contact con = new contact(lastname = 'AcmeCon', accountid = acc.id);
insert con;
Schema.DescribeFieldResult fieldResult = Contact.AccountId.getDescribe();
Schema.SObjectField field = fieldResult.getSObjectField();
SObject contactDB =
[SELECT Id, AccountId, Account.Name FROM Contact WHERE id = :con.id LIMIT 1];
Account a = (Account)contactDB.getSObject(field);
System.assertEquals('Acme', a.name);
getSObjects(fieldName)
指定された項目の値を返します。このメソッドは主に、子リレーションなど、関連オブジェクトの値にアクセスするために動的 DML と共に使用します。
Account acc = new account(name = 'Acme', description = 'Acme Account');
insert acc;
Contact con = new contact(lastname = 'AcmeCon', accountid = acc.id);
insert con;
SObject[] a = [SELECT id, (SELECT Name FROM Contacts LIMIT 1) FROM Account WHERE id = :acc.id];
SObject[] contactsDB = a.get(0).getSObjects('Contacts');
String fieldValue = (String)contactsDB.get(0).get('Name');
System.assertEquals('AcmeCon', fieldValue)
getQuickActionName()
trigger accTrig2 on Contact (before insert) {
for (Contact c : Trigger.new) {
if (c.getQuickActionName() == QuickAction.CreateContact) {
c.WhereFrom__c = 'GlobaActionl';
} else if (c.getQuickActionName() == Schema.Account.QuickAction.CreateContact) {
c.WhereFrom__c = 'AccountAction';
} else if (c.getQuickActionName() == null) {
c.WhereFrom__c = 'NoAction';
} else {
System.assert(false);
}
}
}
put(fieldName, value)
指定された項目の値を設定し、項目の以前の値を返します。
Account acc = new Account(name = 'test', description = 'old desc');
String oldDesc = (String)acc.put('description', 'new desc');
System.assertEquals('old desc', oldDesc);
System.assertEquals('new desc', acc.description);
getSObjectType()
この SObject のトークンを返します。このメソッドは Describe Information で使用されます。
Account acc = new Account(name = 'Acme', description = 'Acme Account'); Schema.SObjectType expected = Schema.Account.getSObjectType(); System.assertEquals(expected, acc.getSObjectType());
浙公网安备 33010602011771号