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());