Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Táblarekordok gyűjteményét kéri le.
Szemantika
Xrm.WebApi.retrieveMultipleRecords(entityLogicalName, options, maxPageSize).then(successCallback, errorCallback);
Paraméterek
| Név | Típus | Kötelező | Description |
|---|---|---|---|
entityLogicalName |
Lánc | Igen | A lekérni kívánt rekordok tábla logikai neve. Például: account. |
options |
Lánc | Nem | OData rendszerlekérdezési beállítások vagy FetchXML-lekérdezés az adatok lekéréséhez. Lásd: Beállítások |
maxPageSize |
Szám | Nem | Adjon meg egy pozitív számot, amely az oldalanként visszaadandó táblarekordok számát jelzi. Ha nem adja meg ezt a paramétert, az érték alapértelmezés szerint a standard táblák esetében legfeljebb 5000 rekordot, rugalmas táblák esetében pedig 500 rekordot jelent. Ha a lekért rekordok száma meghaladja a megadott maxPageSize értéket vagy a táblatípus maximális korlátját, a nextLink visszaadott ígéret objektum oszlopa tartalmaz egy hivatkozást a rekordok lekéréséhez. |
successCallback |
Funkció | Nem | A táblarekordok lekérésekor meghívandó függvény. Lásd : Visszatérési érték |
errorCallback |
Funkció | Nem | A művelet sikertelensége esetén meghívandó függvény. A következő tulajdonságokkal rendelkező objektumok átadása történik: - errorCode:Szám. A hibakód pozitív decimális számként. Például a dokumentált 0x80040333 hibakód a következőként 2147746611lesz visszaadva: .- message:Húr. A problémát leíró hibaüzenet. |
Beállítások
A rendszer a következő lekérdezési lehetőségeket támogatja: $select, $top, $filter, $expandés $orderby.
A rendszer lekérdezési beállításával $expand szabályozhatja, hogy a rendszer milyen adatokat ad vissza a kapcsolódó táblákból. Ha csak a navigációs tulajdonság nevét adja meg, a kapcsolódó rekordok összes tulajdonságát megkapja. A kapcsolódó rekordokhoz visszaadott tulajdonságokat a $select navigációs tulajdonság neve után zárójelben lévő rendszer lekérdezési beállítással korlátozhatja. Ezt az egyértékű és a gyűjteményértékű navigációs tulajdonságokhoz is használhatja. Vegye figyelembe, hogy offline esetén csak a beágyazott $select beállítást támogatjuk a $expand.
FetchXML-lekérdezés megadásához használja az fetchXml oszlopot a lekérdezés megadásához.
Megjegyzés:
A táblarekordhoz visszaadott tulajdonságok korlátozásához mindig a $selectrendszer lekérdezési beállításával kell korlátoznia a tulajdonságnevek vesszővel tagolt listáját. Ez egy fontos teljesítménybeli bevált gyakorlat. Ha a tulajdonságok nincsenek megadva a használatával $select, a rendszer az összes tulajdonságot visszaadja.
A lekérdezési beállításokat a következővel ?kezdheti meg: . A lekérdezési beállítások elválasztásával & több rendszer-lekérdezési beállítást is megadhat.
Amikor oData lekérdezési sztringet ad meg a options paraméterhez, a lekérdezést speciális karakterekhez kell kódolni .
Amikor fetchXML-lekérdezést ad meg a options paraméterhez, a lekérdezés nem kódolható.
Példák a különböző lekéréses forgatókönyvek paraméterének options meghatározására.
Visszaadott érték
Siker esetén egy ígéretobjektumot ad vissza a successCallback következő tulajdonságokkal:
| Név | Típus | Description |
|---|---|---|
entities |
JSON-objektumok tömbje | Minden objektum az oszlopokat és azok értékeit párként key: value tartalmazó beolvasott táblarekordot jelöli. A rendszer alapértelmezés szerint lekéri a táblarekord azonosítóját |
nextLink |
Lánc | (nem kötelező) Ha a lekért rekordok száma meghaladja a kérelem paraméterében maxPageSize megadott értéket, akkor a következő rekordoldal visszaadásához az URL-címet adja vissza. |
fetchXmlPagingCookie |
(nem kötelező) Olyan fetchXml-alapú retrieveMultipleRecords művelet esetén, amelyben a teljes rekordszám nagyobb, mint a lapozási érték, ez az attribútum visszaadja a lapozási cookie-t, amely egy későbbi fetchXml-művelethez használható a rekordok következő oldalának lekéréséhez. |
Az OData-lekérdezési beállítások nem támogatott attribútumtípusai offline mobileszközökben
Az alábbi oszloptípusok nem támogatottak oData lekérdezési sztringbeállításokkal Xrm.WebApi.retrieveMultipleRecords (például $select$filtermobil offline módban) végzett műveletek esetén. A FetchXML-t akkor érdemes használni, ha a használni kívánt attribútumtípus szerepel a nem támogatott attribútumtípusok listájában.
MultiSelectPicklistFileImageManagedPropertyCalendarRulesPartyListVirtual
Nem támogatott funkciók a Mobile Offline szolgáltatásban
A Mobile Offline nem támogatja a következő funkciókat:
- Csoportosítási és összesítési funkciók
Támogatott szűrőműveletek attribútumtípusonként a Mobile Offline szolgáltatásban a FetchXML használatával
A FetchXML használatakor az alábbi műveletek minden attribútumtípus esetében támogatottak:
- Egyenlő (
eq) - Nem egyenlő (
neq) - Null (
null) - Nem null (
not-null)
Az alábbi táblázat az egyes attribútumtípusokhoz támogatott további műveleteket sorolja fel:
| Attribútum típusa | Támogatott műveletek |
|---|---|
| BigInt, Decimális, Dupla, Egész szám | Nagyobb, mint (gt)Nagyobb vagy egyenlő ( gte)Kisebb, mint ( lt)Kisebb vagy egyenlő ( lte) |
| Logikai, ügyfél | In (in)Nincs be ( not-in) |
| EntityName, Picklist, State, Status | Like (like)Nem tetszik ( not-like)Kezdődik ( begins-with)Nem kezdődik ( not-begin-with)Végződés: ( ends-with)Nincs vége ( not-end-with)In ( in)Nincs be ( not-in) |
| Guid, Lookup | In (in)Nincs be ( not-in)Egyenlő felhasználói azonosító ( eq-userid)Nem egyenlő felhasználói azonosító ( ne-userid) |
| Pénz | Nagyobb, mint (gt)Nagyobb vagy egyenlő ( gte)Kisebb, mint ( lt)Kisebb vagy egyenlő ( lte)In ( in)Nincs be ( not-in) |
| Tulajdonos | In (in)Nincs be ( not-in)Egyenlő felhasználói azonosító ( eq-userid)Nem egyenlő felhasználói azonosító ( ne-userid)Egyenlő felhasználó vagy csapat ( eq-useroruserteams) |
| Lánc | Like (like)Nem tetszik ( not-like)Kezdődik ( begins-with)Nem kezdődik ( not-begin-with)Végződés: ( ends-with)Nincs vége ( not-end-with) |
| DateTime | Be- vagy után (on-or-after)Bekapcsolva ( on)Be- vagy előző ( on-or-before)Ma ( today)Holnap ( tomorrow)Tegnap ( yesterday)Következő hét nap ( next-seven-days)Elmúlt hét nap ( last-seven-days)Jövő hét ( next-week)Múlt hét ( last-week)Ezen a héten ( this-week)Következő hónap ( next-month)Múlt hónap ( last-month)Ebben a hónapban ( this-month)Következő év ( next-year)Tavaly ( last-year)Ebben az évben ( this-year)Utolsó X nap ( last-x-days)Következő X nap ( next-x-days)Elmúlt X hét ( last-x-weeks)Következő X hét ( next-x-weeks)Elmúlt X hónap ( last-x-months)Következő X hónap ( next-x-months)Elmúlt X év ( last-x-years)Következő X év ( next-x-years)Nagyobb, mint ( gt)Nagyobb vagy egyenlő ( gte)Kisebb, mint ( lt)Kisebb vagy egyenlő ( lte) |
Példák
A lekérdezési adatok webes API-val történő lekérdezési adataiban említett legtöbb forgatókönyv/példa a retrieveMultipleRecords metódussal érhető el. Néhány példa alább látható.
Több egyszerű lekérése
Ez a példa lekérdezi a fióktáblakészletet, és a rendszer és $top a $select rendszer lekérdezési beállításaival adja vissza az első három fiók névtulajdonságát:
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
}
);
Több egyszerű lekérése a FetchXML használatával
Ez a példa lekérdezi az entitást a account fetchXML használatával.
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
}
);
Keresési tulajdonságok lekérése vagy szűrése
A legtöbb egyértékű navigációs tulajdonsághoz egy számított, írásvédett tulajdonságot talál, amely a következő elnevezési konvencióval rendelkezik: _<name>_value ahol az <name> egyértékű navigációs tulajdonság neve. Szűrési célokra az egyértékű navigációs tulajdonság adott értéke is használható. Az offline módban lévő mobilalkalmazások esetében azonban ezek a szintaxisbeállítások nem támogatottak, és az egyértékű navigációs tulajdonság nevét kell használni a beolvasáshoz és a szűréshez is. Offline módban a navigációs tulajdonságok null értékre történő összehasonlítása sem támogatott.
További információ: Keresési tulajdonságok
Az alábbi példakódok mindkét forgatókönyvre használhatók:
Online forgatókönyv esetén (kiszolgálóhoz csatlakoztatva)
Ez a példa lekérdezi a fióktáblakészletet, és a rendszer és $filter a $select rendszer lekérdezési beállításaival adja vissza az adott elsődleges kapcsolattartóval rendelkező fiókok nevét és primarycontactid tulajdonságát:
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
}
);
Mobil offline forgatókönyv esetén
Ez a példa lekérdezi a fióktáblakészletet, és a rendszer és $filter a $select rendszer lekérdezési beállításaival adja vissza az adott elsődleges kapcsolattartóval rendelkező fiókok nevét és elsődlegescontactid tulajdonságát offline módban:
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
}
);
A FetchXML használata keresési tulajdonságok alapján történő lekéréshez vagy szűréshez (online és offline forgatókönyv)
A paramétert FetchXML online vagy offline állapotban is használhatja a name feltételnek megfelelő elsődleges kapcsolattartóval rendelkező fiókrekordok és primarycontactid -rekordok tulajdonságának lekéréséhez:
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
}
);
A lapon visszaadandó táblák számának megadása
Az alábbi példa bemutatja, hogy a maxPageSize paraméter a lapon megjelenítendő rekordok számát (3) határozza meg.
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
}
);
Ez a példa három rekordot és egy hivatkozást jelenít meg a következő oldalra. Íme egy példa a konzol kimenetére a böngésző fejlesztői eszközeiben:
{@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
Használja a tulajdonság URL-címében lévő nextLink lekérdezési részt a options következő retrieveMultipleRecords hívás paraméterének értékeként a következő rekordkészlet lekéréséhez. Ne módosítsa vagy fűzze hozzá a rendszer lekérdezési beállításait az értékhez. Minden további lapra vonatkozó kérésnél ugyanazt maxPageSize az értéket kell használnia, amelyet az eredeti több kérelem lekérésekor használt. Emellett gyorsítótárazza a visszaadott eredményeket vagy a nextLink tulajdonság értékét, hogy a korábban lekért lapok visszaadhatók legyenek.
A rekordok következő oldalának lekéréséhez például az URL lekérdezési részét nextLink továbbítja a options paraméternek:
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
}
);
Ez az eredményhalmaz következő oldalát adja vissza:
{@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
Fontos
A tulajdonság értéke nextLink kódolt URI. Ha az URI a küldés előtt kódolja az értéket, az URL-ben található XML-cookie-információk hibát fognak okozni.
FetchXML-példa (online forgatókönyv)
Az alábbi példa a FetchXML paraméterének count használatát mutatja be az oldalon megjelenítendő rekordok számának (3) megadásához.
Megjegyzés:
A FetchXML lapozó cookie csak online retrieveMultipleRecords műveletekhez lesz visszaadva. (Xrm.WebApi.online). Offline nem támogatott.
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
}
);
Ez a példa három rekordot jelenít meg, és egy FetchXML lapozó cookie-t ad vissza a következő oldal eredményeinek lekéréséhez, ha az eredményhalmazhoz több rekord tartozik. Íme egy példa a konzol kimenetére a böngésző fejlesztői eszközeiben:
{
"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\" />"
}
Az alábbi példában látható módon nagy eredményhalmazokat hívhatunk fetchXmlPagingCookie le lapozással.
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
}
);
Kapcsolódó táblák lekérése a navigációs tulajdonságok kibontásával
A navigációs tulajdonságok $expand rendszer lekérdezési beállításával szabályozhatja a kapcsolódó táblákból visszaadott adatokat. Az alábbi példa bemutatja, hogyan kérhető le a partner az összes fiókrekordhoz. A kapcsolódó kapcsolattartási rekordok esetében csak a contactid következőt fullnamekérjük le:
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
}
);
A fenti kódrészlet egy olyan sémával rendelkező eredményt ad vissza, mint a következő:
{
"entities": [
{
"@odata.etag": "W/\"1459919\"",
"name": "Test Account",
"accountid": "119edfac-19c6-ea11-a81a-000d3af5e732",
"primarycontactid": {
"contactid": "6c63a1b7-19c6-ea11-a81a-000d3af5e732",
"fullname": "Test Contact"
}
}
]
}
Megjegyzés:
Az online forgatókönyvhöz hasonlóan a $expand rendszer lekérdezési lehetőségével offline állapotban is lekérheti az adatokat a kapcsolódó táblákból. A több-a-többhöz kapcsolatok azonban offline állapotban nem támogatottak.
Elavult módszer mobil offline forgatókönyv esetén
Megjegyzés:
A @odata.nextLink mobil offline forgatókönyvek elavultak. Bár a meglévő testreszabások esetében továbbra is támogatott, többé nem ajánlott használni.
Az offline $expand művelet egy @odata.nextLink jegyzetet ad vissza, amely információkat tartalmaz a kapcsolódó rekord adatainak eléréséhez.
idA széljegyzet , entityTypeés options paraméter használatával létrehozunk egy vagy több további Xrm.WebApi.offline.retrieveRecord kérést. A következő kódrészlet teljes példával szolgál erre:
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
});
Több rekord webes API-val történő lekérésére további példákat a Webes API-val végzett adatlekérdezés című témakörben talál.
Kapcsolódó cikkek
Adatok lekérdezése a webes API használatával
Xrm.WebApi.retrieveRecord
Xrm.WebApi