Piezīmes
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt pierakstīties vai mainīt direktorijus.
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt mainīt direktorijus.
Izgūst tabulas ierakstu kolekciju.
Sintakse
Xrm.WebApi.retrieveMultipleRecords(entityLogicalName, options, maxPageSize).then(successCallback, errorCallback);
Parameters
| Vārds | Tips | Obligāti | Apraksts |
|---|---|---|---|
entityLogicalName |
String | Jā | Izgūstamo ierakstu tabulas loģiskais nosaukums. Piemēram, account. |
options |
String | Nē | OData sistēmas vaicājuma opcijas vai FetchXML vaicājums, lai izgūtu datus. Skatīt opcijas |
maxPageSize |
Numurs | Nē | Norādiet pozitīvu skaitli, kas norāda tabulas ierakstu skaitu, kas jāatgriež vienā lappusē. Ja nenorādāt šo parametru, vērtība tiek noklusēta līdz maksimālajam ierobežojumam 5 000 ierakstu standarta tabulām un 500 elastīgām tabulām. Ja izgūstamo ierakstu skaits pārsniedz norādīto maxPageSize vērtību vai tabulas tipa maksimālo ierobežojumu, nextLink atgrieztā solījuma objekta kolonnā būs saite uz ierakstu izgūšanu. |
successCallback |
Function | Nē | Funkcija, kas jāizsauc, kad tiek izgūti tabulas ieraksti. Skatīt atgriezto vērtību |
errorCallback |
Function | Nē | Funkcija, kas jāizsauc, ja operācija neizdodas. Tiek nodots objekts ar šādām īpašībām: - errorCode:Skaitlis. Kļūdas kods kā pozitīvs decimālskaitlis. Piemēram, kļūdas kods, kas dokumentēts kā 0x80040333 , tiks atgriezts kā 2147746611.- message:Virkne. Kļūdas ziņojums, kurā aprakstīta problēma. |
Opcijas
Tiek atbalstītas šādas sistēmas vaicājumu opcijas: $select, , , $filter$expand, un $orderby$top.
Izmantojiet sistēmas vaicājuma $expand opciju, lai kontrolētu, kādi dati no saistītajām tabulām tiek atgriezti. Ja iekļaujat tikai navigācijas rekvizīta nosaukumu, jūs saņemsiet visus saistīto ierakstu rekvizītus. Saistītiem ierakstiem atgrieztos rekvizītus var ierobežot, izmantojot sistēmas vaicājuma $select opciju iekavās aiz navigācijas rekvizīta nosaukuma. Izmantojiet to gan vienvērtības , gan kolekcijas vērtību navigācijas rekvizītiem. Ņemiet vērā, ka bezsaistē mēs atbalstām tikai ligzdoto $select opciju .$expand
Lai norādītu FetchXML vaicājumu, izmantojiet fetchXml kolonnu, lai norādītu vaicājumu.
Piezīmes
Vienmēr jāizmanto sistēmas vaicājuma $selectopcija, lai ierobežotu tabulas ierakstam atgrieztos rekvizītus, iekļaujot ar komatiem atdalītu rekvizītu nosaukumu sarakstu. Šī ir svarīga veiktspējas labākā prakse. Ja rekvizīti nav norādīti, izmantojot $select, tiks atgriezti visi rekvizīti.
Vaicājuma opcijas jānorāda ar ?. Varat arī norādīt vairākas sistēmas vaicājuma opcijas, izmantojot & vaicājuma opciju atdalīšanu.
Norādot parametram OData vaicājuma virkni options , vaicājumam jābūt kodētam speciālajām rakstzīmēm.
Norādot parametram FetchXML vaicājumu options , vaicājumu nedrīkst kodēt.
Skatiet sadaļu Piemēri , lai uzzinātu, kā var definēt parametru options dažādiem izgūšanas vairākiem scenārijiem.
Atgrieztā vērtība
Ja tas ir veiksmīgs, atgriež solījuma objektu successCallback ar šādiem rekvizītiem:
| Vārds | Tips | Apraksts |
|---|---|---|
entities |
JSON objektu masīvs | Katrs objekts attēlo izgūto tabulas ierakstu, kas satur kolonnas un to vērtības kā key: value pārus. Tabulas ieraksta ID tiek izgūts pēc noklusējuma |
nextLink |
String | (pēc izvēles) Ja izgūstamo ierakstu skaits ir lielāks par pieprasījuma parametrā maxPageSize norādīto vērtību, tiek atgriezts URL, lai atgrieztu nākamo ierakstu lapu. |
fetchXmlPagingCookie |
(pēc izvēles) Operācijai, kuras retrieveMultipleRecords pamatā ir fetchXml ar peidžeru, kur kopējais ierakstu skaits ir lielāks par peidžeru vērtību, šis atribūts atgriež peidžeru sīkfailu, ko var izmantot nākamajai fetchXml operācijai, lai izgūtu nākamo ierakstu lapu. |
Neatbalstīti atribūtu tipi OData vaicājumu opcijām programmā Mobile Offline
Tālāk norādītie kolonnu tipi netiek atbalstīti Xrm.WebApi.retrieveMultipleRecords , veicot operāciju ar OData vaicājuma virknes opcijām (piemēram, $select un $filter) Mobile Offline režīmā. Izmantojiet FetchXML, ja atribūta tips, ar kuru jāstrādā, ir šajā neatbalstīto atribūtu tipu sarakstā.
MultiSelectPicklistFileImageManagedPropertyCalendarRulesPartyListVirtual
Neatbalstīti līdzekļi programmā Mobile Offline
Tālāk norādītie līdzekļi netiek atbalstīti programmā Mobile Offline.
- Grupēšanas un apkopošanas līdzekļi
Atbalstītās filtrēšanas operācijas katram atribūta tipam programmā Mobile Offline, izmantojot FetchXML
Strādājot ar FetchXML, visiem atribūtu tipiem tiek atbalstītas šādas darbības:
- Vienāds (
eq) - Nav vienāds (
neq) - Null (
null) - Nav nulle (
not-null)
Šajā tabulā ir uzskaitītas citas darbības, kas tiek atbalstītas katram atribūta tipam:
| Atribūta tips | Atbalstītās darbības |
|---|---|
| BigInt, decimāldaļa, dubultā, vesels skaitlis | Lielāks par (gt)Lielāks par vai vienāds ( gte)Mazāk nekā ( lt)Mazāks par vai vienāds ar ( lte) |
| Būls, klients | Sadaļā (in)Nav ( not-in) |
| Entītijas nosaukums, atlases saraksts, valsts, statuss | Patīk (like)Nav patīk ( not-like)Sākas ar ( begins-with)Nesākt ar ( not-begin-with)Beidzas ar ( ends-with)Nebeidzas ar ( not-end-with)Sadaļā ( in)Nav ( not-in) |
| Guid, uzmeklēšana | Sadaļā (in)Nav ( not-in)Vienāds ar lietotāja ID ( eq-userid)Nav vienāds ar lietotāja ID ( ne-userid) |
| Nauda | Lielāks par (gt)Lielāks par vai vienāds ( gte)Mazāk nekā ( lt)Mazāks par vai vienāds ar ( lte)Sadaļā ( in)Nav ( not-in) |
| Īpašnieks | Sadaļā (in)Nav ( not-in)Vienāds ar lietotāja ID ( eq-userid)Nav vienāds ar lietotāja ID ( ne-userid)Vienāds ar lietotāju vai darba grupu ( eq-useroruserteams) |
| String | Patīk (like)Nav patīk ( not-like)Sākas ar ( begins-with)Nesākt ar ( not-begin-with)Beidzas ar ( ends-with)Nebeidzas ar ( not-end-with) |
| Datums un laiks | Uz vai pēc (on-or-after)Ieslēgts ( on)Uz vai pirms ( on-or-before)Šodien ( today)Rīt ( tomorrow)Vakar ( yesterday)Nākamās septiņas dienas ( next-seven-days)Pēdējās septiņas dienas ( last-seven-days)Nākamnedēļ ( next-week)Pagājušajā nedēļā ( last-week)Šonedēļ ( this-week)Nākamais mēnesis ( next-month)Pagājušajā mēnesī ( last-month)Šajā mēnesī ( this-month)Nākamais gads ( next-year)Pagājušajā gadā ( last-year)Šogad ( this-year)Pēdējās X dienas ( last-x-days)Nākamās X dienas ( next-x-days)Pēdējās X nedēļas ( last-x-weeks)Nākamās X nedēļas ( next-x-weeks)Pēdējie X mēneši ( last-x-months)Nākamie X mēneši ( next-x-months)Pēdējie X gadi ( last-x-years)Nākamie X gadi ( next-x-years)Lielāks par ( gt)Lielāks par vai vienāds ( gte)Mazāk nekā ( lt)Mazāks par vai vienāds ( lte) |
Piemēri
Lielāko daļu scenāriju/piemēru, kas minēti vaicājuma datos, izmantojot tīmekļa API, var sasniegt, izmantojot metodi retrieveMultipleRecords . Daži no piemēriem ir uzskaitīti zemāk.
Pamata izgūšana vairākos
Šajā piemērā tiek vaicāts kontu tabulas kopai un tiek izmantotas opcijas un $top sistēmas vaicājums$select, lai atgrieztu rekvizītu nosaukums pirmajiem trim kontiem:
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
}
);
Pamata izgūšana ar FetchXML
Šajā piemērā tiek vaicāts entītijai, account izmantojot 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
}
);
Izgūt vai filtrēt pēc uzmeklēšanas rekvizītiem
Lielākajai daļai vienas vērtības navigācijas rekvizītu atradīsiet aprēķinātu, tikai lasāmu rekvizītu, kas izmanto šādu nosaukumu piešķiršanas konvenciju: _<name>_value kur <name> ir vienas vērtības navigācijas rekvizīta nosaukums. Filtrēšanas nolūkos var izmantot arī vienas vērtības navigācijas rekvizīta konkrēto vērtību. Tomēr mobilajiem klientiem bezsaistes režīmā šīs sintakses opcijas netiek atbalstītas, un vienas vērtības navigācijas rekvizīta nosaukums ir jāizmanto gan izgūšanai, gan filtrēšanai. Arī navigācijas rekvizītu salīdzināšana ar nulli netiek atbalstīta bezsaistes režīmā.
Papildinformācija: Uzmeklēšanas rekvizīti
Šeit ir koda piemēri abiem scenārijiem:
Tiešsaistes scenārijam (izveidots savienojums ar serveri)
Šajā piemērā tiek vaicāts kontu tabulas kopai un tiek izmantotas sistēmas $filter vaicājuma opcijas, $select lai atgrieztu nosaukumu un primāro rekvizītu ContactID kontiem, kuriem ir noteikta primārā kontaktpersona:
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
}
);
Mobile Offline scenārijam
Šajā piemērā tiek vaicāts kontu tabulas kopai un tiek izmantotas un $filter sistēmas vaicājuma opcijas, $select lai atgrieztu nosaukumu un primāro rekvizītu ContactId kontiem, kuriem ir noteikta primārā kontaktpersona, strādājot bezsaistes režīmā:
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 izmantošana, lai izgūtu vai filtrētu pēc uzmeklēšanas rekvizītiem (tiešsaistes un bezsaistes scenārijs)
Šo parametru FetchXML var izmantot tiešsaistē vai bezsaistē, lai izgūtu rekvizītu name un primarycontactid konta ierakstiem, kuriem ir primārā kontaktpersona, kas atbilst nosacījumam:
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
}
);
Lappusē atgriezamo tabulu skaita norādīšana
Tālāk sniegtajā piemērā parādīts, kā parametrs tiek izmantots maxPageSize , lai norādītu lapā parādāmo ierakstu skaitu (3).
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
}
);
Šajā piemērā tiks parādīti trīs ieraksti un saite uz nākamo lapu. Šeit ir piemērs izvades no konsoles pārlūkprogrammas izstrādātāju rīkos:
{@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
Izmantojiet vaicājuma daļu rekvizīta URL nextLink kā parametra options vērtību nākamajā izgūšanas izsaukumāMultipleRecords , lai pieprasītu nākamo ierakstu kopu. Nemainiet un nepievienojiet vērtībai nekādas sistēmas vaicājuma opcijas. Katram nākamajam pieprasījumam par vairākām lappusēm jāizmanto tā pati maxPageSize vērtība, kas tika izmantota sākotnējā izgūšanas vairākkārtējā pieprasījumā. Kešatmiņā saglabājiet arī atgrieztos rezultātus vai rekvizīta nextLink vērtību, lai varētu atgriezt iepriekš izgūtās lapas.
Piemēram, lai iegūtu nākamo ierakstu lapu, mēs nodosim URL vaicājuma nextLink daļu parametram options :
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
}
);
Tiks atgriezta nākamā rezultātu kopas lapa:
{@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
Svarīgi
Īpašuma vērtība nextLink ir kodēta URI. Ja URI kodējat vērtību pirms tās nosūtīšanas, XML sīkfaila informācija URL radīs kļūdu.
FetchXML piemērs (tiešsaistes scenārijs)
Šajā piemērā parādīts, kā tiek izmantots count FetchXML parametrs, lai norādītu lapā parādāmo ierakstu skaitu (3).
Piezīmes
FetchXML peidžeru sīkfails tiek atgriezts tikai tiešsaistes retrieveMultipleRecords operācijām. (Xrm.WebApi.online). Tas netiek atbalstīts bezsaistē.
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
}
);
Šajā piemērā tiks parādīti trīs ieraksti un atgriezts FetchXML peidžeru sīkfails, lai izgūtu nākamās lapas rezultātus, ja rezultātu kopai pieder vairāk ierakstu. Šeit ir piemērs izvades no konsoles pārlūkprogrammas izstrādātāju rīkos:
{
"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\" />"
}
Mēs varam izmantot, fetchXmlPagingCookie kā parādīts zemāk redzamajā piemērā, lai iegūtu lielas rezultātu kopas ar peidžeru.
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
}
);
Saistīto tabulu izgūšana, izvēršot navigācijas rekvizītus
Izmantojiet navigācijas rekvizītu $expand sistēmas vaicājuma opciju, lai kontrolētu datus, kas tiek atgriezti no saistītajām tabulām. Tālāk sniegtajā piemērā parādīts, kā izgūt kontaktpersonu visiem konta ierakstiem. Saistītajiem kontaktpersonu ierakstiem tiek izgūti tikai un contactid :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
}
);
Iepriekš minētais koda gabals atgriež rezultātu ar šādu shēmu:
{
"entities": [
{
"@odata.etag": "W/\"1459919\"",
"name": "Test Account",
"accountid": "119edfac-19c6-ea11-a81a-000d3af5e732",
"primarycontactid": {
"contactid": "6c63a1b7-19c6-ea11-a81a-000d3af5e732",
"fullname": "Test Contact"
}
}
]
}
Piezīmes
Līdzīgi kā tiešsaistes scenārijā, izmantojiet $expand sistēmas vaicājuma opciju, lai izgūtu datus no saistītajām tabulām bezsaistē. Tomēr attiecības daudzi pret daudziem netiek atbalstītas bezsaistē.
Novecojusi metode Mobile Offline scenārijam
Piezīmes
Mobile @odata.nextLink Offline scenārijos tas ir novecojis. Lai gan tas joprojām tiek atbalstīts esošajiem pielāgojumiem, to vairs nav ieteicams izmantot.
Bezsaistes $expand operācija atgriež anotāciju, @odata.nextLink kurā ir informācija par to, kā piekļūt saistītā ieraksta informācijai. Mēs izmantojam šīs anotācijas parametru id, entityTypeun , lai options izveidotu vienu vai vairākus papildu Xrm.WebApi.offline.retrieveRecord pieprasījumus. Šajā koda daļā ir sniegts pilnīgs piemērs, kā to izdarīt:
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
});
Papildu piemērus vairāku ierakstu izgūšanai, izmantojot Web API, skatiet sadaļā Vaicājumu dati, izmantojot Web API.
Saistītie raksti
Datu vaicājums, izmantojot tīmekļa API
Xrm.WebApi.retrieveRecord
Xrm.WebApi