Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Hiermee haalt u een verzameling tabelrecords op.
Syntaxis
Xrm.WebApi.retrieveMultipleRecords(entityLogicalName, options, maxPageSize).then(successCallback, errorCallback);
Parameterwaarden
| Naam | Typologie | Verplicht | Description |
|---|---|---|---|
entityLogicalName |
Snaar / Touwtje | Yes | De logische tabelnaam van de records die u wilt ophalen. Voorbeeld: account. |
options |
Snaar / Touwtje | Nee. | OData-systeemqueryopties of FetchXML-query om uw gegevens op te halen. Opties weergeven |
maxPageSize |
Number | Nee. | Geef een positief getal op dat het aantal tabelrecords aangeeft dat per pagina moet worden geretourneerd. Als u deze parameter niet opgeeft, is de standaardwaarde de maximumlimiet van 5000 records voor standaardtabellen en 500 voor elastische tabellen. Als het aantal records dat u ophaalt meer is dan de opgegeven maxPageSize waarde of de maximumlimiet voor het tabeltype, bevat de nextLink kolom in het geretourneerde promise-object een koppeling om records op te halen. |
successCallback |
Functie | Nee. | Een functie die moet worden aangeroepen wanneer tabelrecords worden opgehaald. Zie Retourwaarde |
errorCallback |
Functie | Nee. | Een functie om aan te roepen wanneer de bewerking mislukt. Er wordt een object met de volgende eigenschappen doorgegeven: - errorCode:Getal. De foutcode als een positief decimaal getal. De foutcode die wordt beschreven zoals 0x80040333 wordt geretourneerd als 2147746611.- message:Snaar. Een foutmelding die het probleem beschrijft. |
Options
De volgende opties voor systeemquery's worden ondersteund: , , , en $select$top. $filter$expand$orderby
Gebruik de $expand systeemqueryoptie om te bepalen welke gegevens uit gerelateerde tabellen worden geretourneerd. Als u alleen de naam van de navigatie-eigenschap opneemt, ontvangt u alle eigenschappen voor gerelateerde records. U kunt de eigenschappen die worden geretourneerd voor gerelateerde records beperken met behulp van de $select systeemqueryoptie tussen haakjes na de naam van de navigatie-eigenschap. Gebruik deze optie voor navigatie-eigenschappen met één waarde en verzamelingswaarde . Voor offline wordt alleen geneste $select optie binnen de $expand optie ondersteund.
Als u een FetchXML-query wilt opgeven, gebruikt u de fetchXml kolom om de query op te geven.
Opmerking
U moet altijd de $select systeemqueryoptie gebruiken om de eigenschappen te beperken die worden geretourneerd voor een tabelrecord door een door komma's gescheiden lijst met eigenschapsnamen op te nemen. Deze procedure is belangrijk voor prestaties. Als u geen eigenschappen opgeeft met behulp $selectvan, worden alle eigenschappen geretourneerd.
Geef de queryopties op die beginnen met ?. U kunt ook meerdere systeemqueryopties opgeven door & de queryopties te scheiden.
Wanneer u een OData-queryreeks voor de options parameter opgeeft, codeert u de query voor speciale tekens.
Wanneer u een FetchXML-query voor de options parameter opgeeft, moet u de query niet coderen .
Zie Voorbeelden voor meer informatie over het definiëren van de options parameter voor verschillende scenario's voor het ophalen van meerdere scenario's.
Retourwaarde
Retourneert bij succes een promise-object aan de successCallback hand van de volgende eigenschappen:
| Naam | Typologie | Description |
|---|---|---|
entities |
Matrix van JSON-objecten | Elk object vertegenwoordigt de opgehaalde tabelrecord met kolommen en de bijbehorende waarden als key: value paren. De id van de tabelrecord wordt standaard opgehaald. |
nextLink |
Snaar / Touwtje | (optioneel) Als het aantal records dat wordt opgehaald meer is dan de waarde die is opgegeven in de maxPageSize parameter in de aanvraag, retourneert dit de URL om de volgende pagina met records te retourneren. |
fetchXmlPagingCookie |
(optioneel) Voor een op fetchXml gebaseerde retrieveMultipleRecords bewerking met paginering waarbij het totale aantal records groter is dan de pagineringswaarde, retourneert dit kenmerk de pagineringscookor die kan worden gebruikt voor een volgende fetchXml-bewerking om de volgende pagina met records op te halen. |
Niet-ondersteunde kenmerktypen voor OData-queryopties in offline mobiel
De volgende kolomtypen worden niet ondersteund wanneer u Xrm.WebApi.retrieveMultipleRecords OData-queryreeksopties (zoals $select en $filter) gebruikt in de offlinemodus voor mobiele apparaten. Gebruik FetchXML als u moet werken met een kenmerktype in deze lijst met niet-ondersteunde kenmerktypen.
MultiSelectPicklistFileImageManagedPropertyCalendarRulesPartyListVirtual
Niet-ondersteunde functies in offline mobiel
De volgende functies worden niet ondersteund in offline mobiel:
- Groeperings- en aggregatiefuncties
Ondersteunde filterbewerkingen per kenmerktype offline in mobiel met FetchXML
De volgende bewerkingen worden ondersteund voor alle kenmerktypen wanneer u met FetchXML werkt:
- Is gelijk aan (
eq) - Niet gelijk aan (
neq) - Null (
null) - Niet Null (
not-null)
De volgende tabel bevat meer bewerkingen die worden ondersteund voor elk kenmerktype:
| Type kenmerk | Ondersteunde bewerkingen |
|---|---|
| BigInt, Decimaal, Dubbel, Geheel getal | Groter dan (gt)Groter dan of gelijk aan ( gte)Kleiner dan ( lt)Kleiner dan of gelijk aan ( lte) |
| Booleaanse waarde, klant | In (in)Niet in ( not-in) |
| EntityName, Picklist, State, Status | Vind ik leuk (like)Niet leuk ( not-like)Begint met ( begins-with)Niet beginnen met ( not-begin-with)Eindigt met ( ends-with)Niet eindigen met ( not-end-with)In ( in)Niet in ( not-in) |
| Guid, Opzoeken | In (in)Niet in ( not-in)Is gelijk aan gebruikers-id ( eq-userid)Is niet gelijk aan gebruikers-id ( ne-userid) |
| Geld | Groter dan (gt)Groter dan of gelijk aan ( gte)Kleiner dan ( lt)Kleiner dan of gelijk aan ( lte)In ( in)Niet in ( not-in) |
| Eigenaar | In (in)Niet in ( not-in)Is gelijk aan gebruikers-id ( eq-userid)Is niet gelijk aan gebruikers-id ( ne-userid)Is gelijk aan gebruiker of team ( eq-useroruserteams) |
| Snaar / Touwtje | Vind ik leuk (like)Niet leuk ( not-like)Begint met ( begins-with)Niet beginnen met ( not-begin-with)Eindigt met ( ends-with)Niet eindigen met ( not-end-with) |
| DateTime | Aan of na (on-or-after)Op ( on)Op of voor ( on-or-before)Vandaag ( today)Morgen ( tomorrow)Gisteren ( yesterday)Volgende zeven dagen ( next-seven-days)Afgelopen zeven dagen ( last-seven-days)Volgende week ( next-week)Vorige week ( last-week)Deze week ( this-week)Volgende maand ( next-month)Vorige maand ( last-month)Deze maand ( this-month)Volgend jaar ( next-year)Vorig jaar ( last-year)Dit jaar ( this-year)Afgelopen X dagen ( last-x-days)Volgende x dagen ( next-x-days)Afgelopen X weken ( last-x-weeks)Volgende x weken ( next-x-weeks)Afgelopen X maanden ( last-x-months)Volgende x maanden ( next-x-months)Afgelopen X jaar ( last-x-years)Volgende x jaar ( next-x-years)Groter dan ( gt)Groter dan of gelijk aan ( gte)Kleiner dan ( lt)Kleiner dan of gelijk aan ( lte) |
Voorbeelden
U kunt de methode retrieveMultipleRecords gebruiken om de meeste scenario's en voorbeelden uit querygegevens te bereiken met behulp van de web-API. Enkele voorbeelden worden weergegeven in de volgende sectie.
Eenvoudig ophalen van meerdere
In dit voorbeeld wordt een query uitgevoerd op de accountstabelset en worden de $select opties voor $top systeemquery's gebruikt om de naameigenschap voor de eerste drie accounts te retourneren:
Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name&$top=3").then(
function success(result) {
for (var i = 0; i < result.entities.length; i++) {
console.log(result.entities[i]);
}
// perform additional operations on retrieved records
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
Eenvoudig meerdere ophalen met FetchXML
In dit voorbeeld wordt een query uitgevoerd op de account entiteit met behulp van fetchXML.
var fetchXml = "?fetchXml=<fetch><entity name='account'><attribute name='accountid'/><attribute name='name'/></entity></fetch>";
Xrm.WebApi.retrieveMultipleRecords("account", fetchXml).then(
function success(result) {
for (var i = 0; i < result.entities.length; i++) {
console.log(result.entities[i]);
}
// perform additional operations on retrieved records
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
Ophalen of filteren op opzoekeigenschappen
Voor de meeste navigatie-eigenschappen met één waarde vindt u een berekende, alleen-lezen eigenschap die gebruikmaakt van de volgende naamconventie: _<name>_value waarbij de <name> naam van de navigatie-eigenschap met één waarde is. Voor filterdoeleinden kunt u ook de specifieke waarde van de navigatie-eigenschap met één waarde gebruiken. Deze syntaxisopties worden echter niet ondersteund voor mobiele clients in de offlinemodus. Gebruik de naam van de navigatie-eigenschap met één waarde voor zowel het ophalen als filteren. De offlinemodus biedt ook geen ondersteuning voor de vergelijking van navigatie-eigenschappen met null.
Meer informatie: Opzoekeigenschappen
Hier volgen codevoorbeelden voor beide scenario's:
Voor onlinescenario (verbonden met server)
In dit voorbeeld wordt een query uitgevoerd op de accountstabelset en worden de $select$filter opties voor systeemquery's gebruikt om de eigenschap name en primarycontactid te retourneren voor accounts met een bepaalde primaire contactpersoon:
Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name,_primarycontactid_value&$filter=primarycontactid/contactid eq a0dbf27c-8efb-e511-80d2-00155db07c77").then(
function success(result) {
for (var i = 0; i < result.entities.length; i++) {
console.log(result.entities[i]);
}
// perform additional operations on retrieved records
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
Voor mobiel offlinescenario
In dit voorbeeld wordt een query uitgevoerd op de accountstabelset en worden de opties voor $filter systeemquery's $select gebruikt om de eigenschap name en primarycontactid te retourneren voor accounts die een bepaalde primaire contactpersoon hebben bij het werken in de offlinemodus:
Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name,primarycontactid&$filter=primarycontactid eq a0dbf27c-8efb-e511-80d2-00155db07c77").then(
function success(result) {
for (var i = 0; i < result.entities.length; i++) {
console.log(result.entities[i]);
}
// perform additional operations on retrieved records
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
FetchXML gebruiken om opzoekeigenschappen op te halen of te filteren (online- en offlinescenario)
Gebruik de FetchXML parameter terwijl u online of offline bent om de name en primarycontactid eigenschap voor accountrecords op te halen die een primaire contactpersoon hebben die overeenkomt met een voorwaarde:
var fetchXml = `?fetchXml=
<fetch>
<entity name='account'>
<attribute name='name'/>
<attribute name='primarycontactid'/>
<link-entity name='contact' from='contactid' to='primarycontactid'>
<filter type='and'>
<condition attribute='lastname' operator='eq' value='Contoso'/>
</filter>
</link-entity>
</entity>
</fetch>`;
Xrm.WebApi.retrieveMultipleRecords("account", fetchXml).then(
function success(result) {
for (var i = 0; i < result.entities.length; i++) {
console.log(result.entities[i]);
}
// perform additional operations on retrieved records
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
Geef het aantal tabellen op dat moet worden geretourneerd op een pagina
In het volgende voorbeeld ziet u hoe u de maxPageSize parameter gebruikt om op te geven dat op elke pagina drie records worden weergegeven.
Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name", 3).then(
function success(result) {
for (var i = 0; i < result.entities.length; i++) {
console.log(result.entities[i]);
}
console.log("Next page link: " + result.nextLink);
// perform additional operations on retrieved records
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
In dit voorbeeld worden drie records en een koppeling naar de volgende pagina weergegeven. Hier volgt een voorbeeld van uitvoer van de Console in de ontwikkelhulpprogramma's van de browser:
{@odata.etag: "W/"1035541"", name: "A. Datum", accountid: "475b158c-541c-e511-80d3-3863bb347ba8"}
@odata.etag: "W/"1035541""accountid: "475b158c-541c-e511-80d3-3863bb347ba8"name: "A. Datum"__proto__: Object
VM5595:4
{@odata.etag: "W/"947306"", name: "Adventure Works", accountid: "a8a19cdd-88df-e311-b8e5-6c3be5a8b200"}
VM5595:4
{@odata.etag: "W/"1033754"", name: "Alpine Ski House", accountid: "aaa19cdd-88df-e311-b8e5-6c3be5a8b200"}
VM5595:6
Next page link: [Organization URI]/api/data/v9.0/accounts?$select=name&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257bAAA19CDD-88DF-E311-B8E5-6C3BE5A8B200%257d%2522%2520first%253d%2522%257b475B158C-541C-E511-80D3-3863BB347BA8%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E
Gebruik het queryonderdeel in de URL in de nextLink eigenschap als de waarde voor de parameter in de options volgende aanroep retrieveMultipleRecords om de volgende set records aan te vragen. Wijzig of voeg geen systeemqueryopties toe aan de waarde. Gebruik voor elke volgende aanvraag voor meer pagina's dezelfde maxPageSize waarde die u hebt gebruikt in de oorspronkelijke aanvraag om meerdere aanvragen op te halen. Sla ook de geretourneerde resultaten of de waarde van de nextLink eigenschap in de cache op, zodat uw app eerder opgehaalde pagina's kan retourneren.
Als u bijvoorbeeld de volgende pagina met records wilt ophalen, geeft u het querygedeelte van de nextLink URL door aan de options parameter:
Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name&$skiptoken=%3Ccookie%20pagenumber=%222%22%20pagingcookie=%22%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257bAAA19CDD-88DF-E311-B8E5-6C3BE5A8B200%257d%2522%2520first%253d%2522%257b475B158C-541C-E511-80D3-3863BB347BA8%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E", 3).then(
function success(result) {
for (var i = 0; i < result.entities.length; i++) {
console.log(result.entities[i]);
}
console.log("Next page link: " + result.nextLink);
// perform additional operations on retrieved records
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
Deze aanvraag retourneert de volgende pagina van de resultatenset.
{@odata.etag: "W/"1035542"", name: "Blue Yonder Airlines", accountid: "aca19cdd-88df-e311-b8e5-6c3be5a8b200"}
VM5597:4
{@odata.etag: "W/"1031348"", name: "City Power & Light", accountid: "aea19cdd-88df-e311-b8e5-6c3be5a8b200"}
VM5597:4
{@odata.etag: "W/"1035543"", name: "Coho Winery", accountid: "b0a19cdd-88df-e311-b8e5-6c3be5a8b200"}
VM5597:6
Next page link: [Organization URI]/api/data/v9.0/accounts?$select=name&$skiptoken=%3Ccookie%20pagenumber=%223%22%20pagingcookie=%22%253ccookie%2520page%253d%25222%2522%253e%253caccountid%2520last%253d%2522%257bB0A19CDD-88DF-E311-B8E5-6C3BE5A8B200%257d%2522%2520first%253d%2522%257bACA19CDD-88DF-E311-B8E5-6C3BE5A8B200%257d%2522%2520%252f%253e%253c%252fcookie%253e%22%20istracking=%22False%22%20/%3E
Belangrijk
De waarde van de nextLink eigenschap is URI-gecodeerd. Als u de waarde codeert voordat u deze verzendt, veroorzaakt de XML-cookie-informatie in de URL een fout.
FetchXML-voorbeeld (onlinescenario)
In het volgende voorbeeld ziet u hoe u de count parameter in FetchXML gebruikt om op te geven dat op elke pagina drie records worden weergegeven.
Opmerking
De cookie FetchXML-paginering wordt alleen geretourneerd voor onlinebewerkingen retrieveMultipleRecords . (Xrm.WebApi.online). Het wordt niet offline ondersteund.
var fetchXml = "?fetchXml=<fetch count='3'><entity name='account'><attribute name='accountid'/><attribute name='name'/></entity></fetch>";
Xrm.WebApi.online.retrieveMultipleRecords("account", fetchXml).then(
function success(result) {
for (var i = 0; i < result.entities.length; i++) {
console.log(result.entities[i]);
}
console.log("Paging cookie: " + result.fetchXmlPagingCookie);
// perform additional operations on retrieved records
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
In dit voorbeeld worden drie records weergegeven en wordt een fetchXML-pagineringscookor geretourneerd om de resultaten van de volgende pagina op te halen als er meer records in de resultatenset staan. Hier volgt een voorbeeld van uitvoer van de Console in de ontwikkelhulpprogramma's van de browser:
{
"entities": [
{
"@odata.etag": "W/\"1035542\"",
"accountid": "aca19cdd-88df-e311-b8e5-6c3be5a8b200",
"name": "Blue Yonder Airlines"
},
{
"@odata.etag": "W/\"1031348\"",
"accountid": "aea19cdd-88df-e311-b8e5-6c3be5a8b200",
"name": "City Power & Light"
},
{
"@odata.etag": "W/\"1035543\"",
"accountid": "b0a19cdd-88df-e311-b8e5-6c3be5a8b200",
"name": "Coho Winery"
}
],
"fetchXmlPagingCookie": "<cookie pagenumber=\"2\" pagingcookie=\"%253ccookie%2520page%253d%25221%2522%253e%253caccountid%2520last%253d%2522%257b0748C6EC-55A8-EB11-B1B5-000D3AFEF6FA%257d%2522%2520first%253d%2522%257bFC47C6EC-55A8-EB11-B1B5-000D3AFEF6FA%257d%2522%2520%252f%253e%253c%252fcookie%253e\" istracking=\"False\" />"
}
Als u grote resultatensets met paging wilt ophalen, gebruikt u de fetchXmlPagingCookie waarden die worden weergegeven in het volgende voorbeeld.
function CreateXml(fetchXml, pagingCookie, page, count) {
var domParser = new DOMParser();
var xmlSerializer = new XMLSerializer();
var fetchXmlDocument = domParser.parseFromString(fetchXml, "text/xml");
if (page) {
fetchXmlDocument
.getElementsByTagName("fetch")[0]
.setAttribute("page", page.toString());
}
if (count) {
fetchXmlDocument
.getElementsByTagName("fetch")[0]
.setAttribute("count", count.toString());
}
if (pagingCookie) {
var cookieDoc = domParser.parseFromString(pagingCookie, "text/xml");
var innerPagingCookie = domParser.parseFromString(
decodeURIComponent(
decodeURIComponent(
cookieDoc
.getElementsByTagName("cookie")[0]
.getAttribute("pagingcookie")
)
),
"text/xml"
);
fetchXmlDocument
.getElementsByTagName("fetch")[0]
.setAttribute(
"paging-cookie",
xmlSerializer.serializeToString(innerPagingCookie)
);
}
return xmlSerializer.serializeToString(fetchXmlDocument);
}
function retrieveAllRecords(entityName, fetchXml, page, count, pagingCookie) {
if (!page) {
page = 0;
}
return retrievePage(entityName, fetchXml, page + 1, count, pagingCookie).then(
function success(pageResults) {
if (pageResults.fetchXmlPagingCookie) {
return retrieveAllRecords(
entityName,
fetchXml,
page + 1,
count,
pageResults.fetchXmlPagingCookie
).then(
function success(results) {
if (results) {
return pageResults.entities.concat(results);
}
},
function error(e) {
throw e;
}
);
} else {
return pageResults.entities;
}
},
function error(e) {
throw e;
}
);
}
function retrievePage(entityName, fetchXml, pageNumber, count, pagingCookie) {
var fetchXml =
"?fetchXml=" + CreateXml(fetchXml, pagingCookie, pageNumber, count);
return Xrm.WebApi.online.retrieveMultipleRecords(entityName, fetchXml).then(
function success(result) {
return result;
},
function error(e) {
throw e;
}
);
}
var count = 3;
var fetchXml =
'<fetch><entity name="account"><attribute name="accountid"/><attribute name="name"/></entity></fetch>';
retrieveAllRecords("account", fetchXml, null, count, null).then(
function success(result) {
console.log(result);
// perform additional operations on retrieved records
},
function error(error) {
console.log(error.message);
// handle error conditions
}
);
Gerelateerde tabellen ophalen door navigatie-eigenschappen uit te vouwen
Gebruik de optie $expand systeemquery in de navigatie-eigenschappen om de gegevens te beheren die worden geretourneerd uit gerelateerde tabellen. In het volgende voorbeeld ziet u hoe u de contactpersoon voor alle accountrecords ophaalt. Voor de gerelateerde records voor contactpersonen haalt u alleen de contactid velden op fullname :
Xrm.WebApi.retrieveMultipleRecords("account", "?$select=name&$top=3&$expand=primarycontactid($select=contactid,fullname)", 3).then(
function success(result) {
for (var i = 0; i < result.entities.length; i++) {
console.log(result.entities[i]);
}
// perform additional operations on retrieved records
},
function (error) {
console.log(error.message);
// handle error conditions
}
);
De voorgaande code retourneert een resultaat met een schema zoals:
{
"entities": [
{
"@odata.etag": "W/\"1459919\"",
"name": "Test Account",
"accountid": "119edfac-19c6-ea11-a81a-000d3af5e732",
"primarycontactid": {
"contactid": "6c63a1b7-19c6-ea11-a81a-000d3af5e732",
"fullname": "Test Contact"
}
}
]
}
Opmerking
Net als bij het onlinescenario gebruikt u de optie $expand systeemquery om gegevens op te halen uit gerelateerde tabellen offline. Veel-op-veel-relaties worden echter niet ondersteund in offline.
Afgeschafte methode voor mobiel offlinescenario
Opmerking
De @odata.nextLink app is afgeschaft voor offlinescenario's voor mobiele apparaten. Hoewel het nog steeds wordt ondersteund voor bestaande aanpassingen, kunt u deze niet meer gebruiken.
Een offline -$expand-bewerking retourneert een @odata.nextLink aantekening met informatie over het ophalen van de gegevens van de gerelateerde record. Gebruik de idparameters entityTypeen options parameters van die aantekening om een of meer extra Xrm.WebApi.offline.retrieveRecord aanvragen te maken. De volgende code biedt een volledig voorbeeld van hoe u dit doet:
Xrm.WebApi.offline.retrieveMultipleRecords("account", "?$select=name&$top=3&$expand=primarycontactid($select=contactid,fullname)").then(function(resultSet) {
/**
* resultSet has a structure like:
* {
* "entities": [
* {
* "accountid": "119edfac-19c6-ea11-a81a-000d3af5e732",
* "name": "Test Account",
* "primarycontactid@odata.nextLink": {
* "API": "{Xrm.Mobile.offline}.{retrieveRecord}",
* "id": "119edfac-19c6-ea11-a81a-000d3af5e732",
* "entityType": "account",
* "options": "?$select=accountid&$expand=primarycontactid($select=contactid,fullname)&$getOnlyRelatedEntity=true"
* },
* "primarycontactid": {}
* }
* ]
* }
*
* Notice the empty `primarycontactid` property but an additional `primarycontactid@odata.nextLink`
* annotation that lets us know how to get to the linked data that we need.
**/
var promises = resultSet.entities.map(function(outerItem) {
// We do a retrieveRecord() for every item in the result set of retrieveMultipleRecords() and then
// combine the results into the retrieveMultipleRecords() result set itself.
return Xrm.WebApi.offline.retrieveRecord(
outerItem["primarycontactid@odata.nextLink"].entityType,
outerItem["primarycontactid@odata.nextLink"].id,
outerItem["primarycontactid@odata.nextLink"].options
).then(function(innerResult) {
if (innerResult.value.length === 0) {
return outerItem;
}
outerItem.primarycontactid = innerResult.value[0];
return outerItem;
});
});
return Promise.all(promises);
}).then(function(allResults) {
for (var i = 0; i < allResults.length; i++) {
console.log(allResults[i]);
}
// perform additional operations on retrieved records
}, function(error) {
console.error(error);
// handle error conditions
});
Zie Querygegevens met behulp van de web-API voor meer voorbeelden van het ophalen van meerdere records met behulp van de web-API.
Verwante artikelen
Query's uitvoeren op gegevens met behulp van de web-API
Xrm.WebApi.retrieveRecord
Xrm.WebApi