Мне нужно получить идентификатор дочернего объекта (B) от родительского объекта (A) и использовать эти идентификаторы для получения значений дочерних полей с помощью javascript.
Я знаю, как получить значение поля, когда у меня есть поле поиска (N: 1) на объекте, использующем xrmservicetoolkit, но не для отношения 1: N.
Кто-нибудь может мне помочь?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Я использовал CRM REST Builder для создания этого фрагмента кода. В основном я получаю Факс и имя всех Контакты, отфильтрованных AccountId, поскольку Account имеет отношение 1: N с Contact.
v1.5.0.0 поддерживает crm 2011.
XrmServiceToolkit.Rest.RetrieveMultiple("ContactSet", "?$select=Fax,FirstName&$expand=contact_customer_accounts&$filter=contact_customer_accounts/AccountId eq (guid'7DD7EE05-FC52-E811-A960-000D3A1A941E')", function(results) {
for (var i = 0; i < results.length; i++) {
var fax = results[i].Fax;
var firstName = results[i].FirstName;
}
}, function(error) {
Xrm.Utility.alertDialog(error.message);
}, function() {
//On Complete - Do Something
}, true);
Как я могу получить доступ к значениям, возвращаемым этой функцией? Я имею в виду, что хочу получить значения вне функции, чтобы использовать ее позже, но похоже, что это невозможно. Я определил массив вне функции, но всегда получал неопределенное значение. Что я делаю не так?
var pGRLF_AuditJudgement = новый массив (); XrmServiceToolkit.Rest.RetrieveMultiple ( "PGRLF_AuditSubjectJ udgementSet", «? $ = Выбрать PGRLF_AuditJudgement & $ = расширение pgrlf_pgrlf_pedmtkont roly_pgrlf_auditsubj ectjud & $ = фильтр pgrlf _pgrlf_pedmtkontroly _pgrlf_auditsubjectj уд / PGRLF_pedmtkontro lyId экв (guid'5D9BE418-7026-E711- BF9B-00155D016403 ') ", функция (результаты) {for (var i = 0; i <results.length; i ++) {pGRLF_AuditJudgement.push (results [i] .PGRLF_AuditJudgement.Va lue);}}, функция (ошибка ) {предупреждение (сообщение об ошибке);}, функция () {}, истина); предупреждение (pGRLF_AuditJudgement [0]);
@Juraj добавьте точку останова или переместите предупреждение внутрь цикла for. Это асинхронный вызов, поэтому вам нужно дождаться успешного выполнения обратного вызова, то есть функции (результатов)
Перемещаться внутрь цикла for не нужно. Я использую алерт только для тестирования. Мне нужно получить массив, заполненный функцией RetrieveMultiple, и сравнить его с другим массивом, заполненным другой функцией RetrieveMultiple. Поэтому мне нужно получить данные из функции для последующего использования ... Возможно ли это, или я могу управлять данными только внутри функции RetrieveMultiple?
Спасибо! Когда я знаю имя функции, я могу найти ее в Интернете. Для других: вот хорошее объяснение этой функции: alisharifiblog.wordpress.com/tag/…