есть метод, который работает с разными кастомными объектами как с sObject-ами, так у них у всех одни и те же названия полей и операции.
вот так получаю записи:
List <sObject> listTickets = Database.query('SELECT ID, Duration__c, Owner.Name, Owner.Email FROM Ticket__c');
вот так добираюсь до кастомного поля:
rec.get('Duration__c');
а вот так уже не могу (а так хотелось):
rec.get('Owner.Name');
получаю
System.SObjectException: Invalid field Owner.Name for Ticket__c
вот так выцепить весь связанный объект тоже не получается:
rec.get('Owner');
есть идеи? как правильно получить связанный объект\его поля у sObject-а?
спасибо
PS: кажется нашел здесь:
http://salesforce.stackexchange.com/questions/24801/using-sobject-get-to-fetch-a-field-value-from-a-related-parent-object
сейчас буду пробовать
есть метод, который работает с разными кастомными объектами как с sObject-ами, так у них у всех одни и те же названия полей и операции. вот так получаю записи: [code] List <sObject> listTickets = Database.query('SELECT ID, Duration__c, Owner.Name, Owner.Email FROM Ticket__c'); [/code] вот так добираюсь до кастомного поля: [code] rec.get('Duration__c'); [/code] а вот так уже не могу (а так хотелось): [code] rec.get('Owner.Name'); [/code] получаю [i]System.SObjectException: Invalid field Owner.Name for Ticket__c[/i] вот так выцепить весь связанный объект тоже не получается: [code] rec.get('Owner'); [/code] есть идеи? как правильно получить связанный объект\его поля у sObject-а? спасибо PS: кажется нашел здесь: http://salesforce.stackexchange.com/questions/24801/using-sobject-get-to-fetch-a-field-value-from-a-related-parent-object сейчас буду пробовать
getSobject должен работать
getSobject должен работать
да, работает
да, работает
А если тебе надо достать child записи, которые кверишь inner soql
то используй getSobjects (s наконце).
А если тебе надо достать child записи, которые кверишь inner soql то используй getSobjects (s наконце). :D
Кстати, вопрос на засыпку - чем отличается обращение вида accountRecord.Contacts от accountRecord.getSObjects('Contacts')?
Кстати, вопрос на засыпку - чем отличается обращение вида [i]accountRecord.Contacts[/i] от [i]accountRecord.getSObjects('Contacts')[/i]?
[/quote]
у меня есть только самый очевидный ответ: если объявили объект как account, то используем accountRecord.Contacts, а если как sObject - то accountRecord.getSObjects('Contacts')...
[/quote][quote="ilya leshchuk"]Кстати, вопрос на засыпку - чем отличается обращение вида [i]accountRecord.Contacts[/i] от [i]accountRecord.getSObjects('Contacts')[/i]?[/quote] у меня есть только самый очевидный ответ: если объявили объект как account, то используем [i]accountRecord.Contacts[/i], а если как sObject - то [i]accountRecord.getSObjects('Contacts')[/i]...
Даже не побоюсь написать что не знаю
Жду ответ
[quote="ilya leshchuk"]Кстати, вопрос на засыпку - чем отличается обращение вида [i]accountRecord.Contacts[/i] от [i]accountRecord.getSObjects('Contacts')[/i]?[/quote] Даже не побоюсь написать что не знаю :) Жду ответ :D
Обращение вида accountRecord.Contacts всегда вернёт list, даже если соответствующий related list пустой, а вот accountRecord.getSObjects('Contacts') в таком случае вернёт null.
Обращение вида [i]accountRecord.Contacts[/i] всегда вернёт list, даже если соответствующий related list пустой, а вот [i]accountRecord.getSObjects('Contacts')[/i] в таком случае вернёт null.
О, слушай! Как совпало! Буквально недавно фиксил один баг в проложении которое построенно чисто не динамических запросах. И было такое место где результат getSObjects() передавался в for. B валился естестенно на null. Я не придал тогда этому значения, чисто поставил проверку на null перед for. А вот оно что оказывается :D. Спасибо, теперь запомню
О, слушай! Как совпало! Буквально недавно фиксил один баг в проложении которое построенно чисто не динамических запросах. И было такое место где результат getSObjects() передавался в for. B валился естестенно на null. Я не придал тогда этому значения, чисто поставил проверку на null перед for. А вот оно что оказывается :D. Спасибо, теперь запомню :D