Bendrinti naudojant


Lentelės eilučių susiejimas ir atsiejimas naudojant žiniatinklio API

Galite susieti atskirus įrašus lentelės eilutėse su kitais įrašais, naudodami ryšius, esančius tarp lentelės aprašų. OData ryšiai išreiškiami kaip naršymo ypatybės.

Galite sužinoti, kokios naršymo ypatybės yra $metadata tarnybos dokumente. Žr. Žiniatinklio API naršymo ypatybės. Esamų "Dataverse" lentelių ieškokite žiniatinklio API objekto tipo nuorodoje, kiekvienam objekto tipui žr. išvardytas vienos reikšmės ir rinkinio reikšmės naršymo ypatybes.

Šioje lentelėje aprašomi trys ryšių tipai tarp "Dataverse" lentelių.

Tipas Aprašą Pavyzdys
Vienas su daugeliu Su vienu įrašu gali būti susieti keli įrašai. Kliento įraše gali būti daug kontaktų įrašų rinkinio vertės naršymo ypatybėjecontact_customer_accounts.
Daugelis su vienu Su vienu įrašu galima susieti daug įrašų.

Daugelis su vienu yra veidrodinis santykių "vienas su daugeliu" atvaizdas. Yra tik vienas ryšys.
Keli kontaktų įrašai gali būti susieti su vienu kliento įrašu naudojant vienos reikšmės naršymoparentcustomerid_account ypatybę.
Daugelis su daugeliu Daugelis įrašų gali būti susieti su daugeliu įrašų. Kiekviename saugos vaidmenyje (vaidmenyje) gali būti nuorodų į sistemos vartotojo apibrėžimą.
Abi šios lentelės turi rinkinio vertės naršymosystemuserroles_association ypatybę.

Vienos reikšmės naršymo ypatybių naudojimas

Esamiems įrašams, esantiems ryšio "vienas su daugeliu " arba " daugelis su vienu" pusėje, galite susieti įrašą nustatydami Uri nuorodą į kitą įrašą. Paprasčiausias ir dažniausias būdas tai padaryti yra pridėti komentarą @odata.bind prie vienos reikšmės naršymo ypatybės pavadinimo ir nustatyti reikšmę kaip Uri prie kito užklausos PATCH įrašo.

Susieti su vienos reikšmės naršymo ypatybe

Pavyzdžiui, norėdami susieti kontakto įrašą su klientu naudodami vienos reikšmės naršymo parentcustomerid_account ypatybę:

Prašymą:

PATCH [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
If-Match: *
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "parentcustomerid_account@odata.bind": "accounts(ce9eaaef-f718-ed11-b83e-00224837179f)"
}

Atsakas:

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)

Kaip aprašyta skyriuje Susieti lentelės eilutes kuriant, nauji įrašai taip pat gali būti susieti su esamais įrašais.

Atsieti nuo vienos reikšmės naršymo ypatybės

Jei norite atsieti, galite tiesiog nustatyti reikšmę į nulį.

Prašymą:

PATCH [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
If-Match: *
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "parentcustomerid_account@odata.bind": null
}

Atsakas:

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)

Tokiu būdu atsiejant nereikia įtraukti @odata.bind anotacijos. Galite tiesiog naudoti vienos reikšmės naršymo ypatybės pavadinimą:

Prašymą:

PATCH [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
If-Match: *
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "parentcustomerid_account": null
}

Atsakas:

HTTP/1.1 204 NoContent
OData-Version: 4.0
OData-EntityId: [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)

Daugiau informacijos: Pagrindinis naujinimas

Kiti metodai

Yra ir kitų būdų, kaip pasiekti tuos pačius rezultatus, aprašytus anksčiau, naudojant vienos reikšmės naršymo ypatybes.

Norėdami nustatyti vienos reikšmės naršymo ypatybės reikšmęparentcustomerid_account, galite naudoti šią PUT užklausą:

Prašymą:

PUT [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)/parentcustomerid_account/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "@odata.id": "[Organization URI]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)"
}

Atsakas:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Pastaba.

Pastaba: Nustatydami reikšmę .@odata.id

Norėdami pašalinti nuorodą, taip pat galite naudoti šią DELETE užklausą:

Prašymą:

DELETE [Organization Uri]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)/parentcustomerid_account/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

Atsakas:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Rinkinio reikšmių naršymo ypatybių naudojimas

Naudojant "OData", abi ryšio "daugelis su daugeliu" pusės turi rinkinio vertės naršymo ypatybes. Ryšiams "vienas su daugeliu" ir "daugelis su vienu" lentelėje "Vienas" yra rinkinio vertės naršymo ypatybė. Nėra skirtumo, kaip dirbate su bet kuriuo iš šių ryšių tipų, naudodami rinkinio reikšmių naršymo ypatybes. Šiame skyriuje aprašoma, kaip dirbti su rinkinio reikšmių naršymo ypatybėmis su bet kokio tipo ryšiais.

Įrašo įtraukimas į rinkinį

Toliau pateiktame pavyzdyje parodyta, kaip įtraukti kontakto įrašą į klientųcontact_customer_accounts rinkinį, kuris yra ryšio "vienas su daugeliu" dalis.

Prašymą:

POST [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "@odata.id": "[Organization URI]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)"
}

Atsakas:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Toliau pateiktame pavyzdyje parodyta, kaip įtraukti vaidmens įrašą į systemusersystemuserroles_association rinkinį, kuris yra ryšys daugelis su daugeliu.

Prašymą:

POST [Organization Uri]/api/data/v9.2/systemusers(34dcbaf5-f718-ed11-b83e-00224837179f)/systemuserroles_association/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

{
  "@odata.id": "[Organization URI]/api/data/v9.2/roles(886b280c-6396-4d56-a0a3-2c1b0a50ceb0)"
}

Atsakas:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Įrašo šalinimas iš rinkinio

Toliau pateiktame pavyzdyje parodyta, kaip pašalinti kontakto įrašą į klientųcontact_customer_accounts rinkinį, kuriame kontakto contactid reikšmė yra 00aa00aa-bb11-cc22-dd33-44ee44ee44ee.

Prašymą:

DELETE [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee)/$ref HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

Atsakas:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Ši užklausa taip pat veikia:

Prašymą:

DELETE [Organization Uri]/api/data/v9.2/accounts(ce9eaaef-f718-ed11-b83e-00224837179f)/contact_customer_accounts/$ref?$id=[Organization URI]/api/data/v9.2/contacts(00aa00aa-bb11-cc22-dd33-44ee44ee44ee) HTTP/1.1
OData-MaxVersion: 4.0
OData-Version: 4.0
If-None-Match: null
Accept: application/json

Atsakas:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Taip pat žr.

Žiniatinklio API pagrindinių operacijų pavyzdys (C#)
Žiniatinklio API pagrindinių operacijų pavyzdys (kliento pusės "JavaScript")
Operacijų atlikimas naudojant žiniatinklio API
Http užklausų kūrimas ir klaidų tvarkymas
Duomenų užklausa naudojant žiniatinklio API
Lentelės eilutės kūrimas naudojant žiniatinklio API
Lentelės eilutės nuskaitymas naudojant žiniatinklio API
Lentelės eilučių naujinimas ir naikinimas naudojant žiniatinklio API
Naudokite žiniatinklio API funkcijas
Žiniatinklio API veiksmų naudojimas
Paketinių operacijų vykdymas naudojant žiniatinklio API
Apsimetinėjimas kitu vartotoju naudojant žiniatinklio API
Sąlyginių operacijų atlikimas naudojant žiniatinklio API