Sdílet prostřednictvím


Připojení a odpojení řádků tabulky pomocí webového API

Jednotlivé záznamy v řádcích tabulky můžete přidružit k jiným záznamům pomocí relací, které existují mezi definicemi tabulky. V OData jsou relace vyjádřeny jako navigační vlastnosti.

V dokumentu služby $metadata můžete zjistit, které vlastnosti navigace existují. Viz Vlastnosti navigace webového rozhraní API. Informace o existujících tabulkách Dataverse najdete v referenci typu EntityType webového rozhraní API.

, pro každý typ entity viz navigační vlastnosti s jednou hodnotou a s hodnotami kolekce uvedené v seznamu.

Následující tabulka popisuje tři typy relací mezi tabulkami v Dataverse.

Typ Description Example
Jedna ku mnoha Jeden záznam může mít přidružených mnoho záznamů. Záznam obchodní vztah může mít mnoho záznamů kontakt ve contact_customer_accountsvlastnosti navigace collection-valued.
Mnoho k jednomu K jednomu záznamu je možné přidružit mnoho záznamů.

Vztahy N : 1 je zrcadlový obraz vztahu 1:N. Je tu jen jeden vztah.
K jednomu záznamu účtu lze přidružit více záznamů kontaktů pomocí parentcustomerid_accountvlastnosti navigace s jednou hodnotou.
N:N Mnoho záznamů může být přidruženo k mnoha záznamům. Každá role zabezpečení (role) může obsahovat odkazy na definici systémového uživatele.
Obě tyto tabulky mají systemuserroles_associationvlastnost navigace s hodnotou kolekce.

Použití jednohodnotových navigačních vlastností

U existujících záznamů na straně mnoho v relaci 1:N nebo N:1 můžete záznam propojit nastavením odkazu URI na druhý záznam. Nejjednodušší a nejběžnější způsob, jak toho dosáhnout, je připojit poznámku @odata.bind k názvu jednohodnotové navigační vlastnosti a poté nastavit hodnotu jako URI na jiný záznam v požadavku PATCH.

Přidružení k vlastnosti navigace s jednou hodnotou

Pokud chcete například přidružit záznam kontaktu k záznamu účtu pomocí parentcustomerid_account vlastnosti navigace s jednou hodnotou:

Prosba:

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)"
}

Odpověď:

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

Jak je popsáno v části Přidružit řádky tabulky při vytváření, můžete také stejným způsobem přidružit nové záznamy k existujícím záznamům.

Zrušení přidružení k vlastnosti navigace s jednou hodnotou

Pokud chcete zrušit přidružení, nastavte hodnotu na hodnotu null.

Prosba:

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
}

Odpověď:

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

Při odpojení pomocí této metody nezahrnujte anotaci @odata.bind. Použijte název jednohodnotové navigační vlastnosti:

Prosba:

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
}

Odpověď:

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

Další informace: Základní aktualizace

Jiné metody

K dosažení stejných výsledků popsaných v předchozích vlastnostech navigace s jednou hodnotou můžete použít jiné metody.

K nastavení hodnoty PUT jednohodnotové navigační vlastnosti použijte následující parentcustomerid_account požadavek:

Prosba:

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)"
}

Odpověď:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Poznámka:

Musíte použít absolutní URL při nastavování hodnoty pro @odata.id.

Pokud chcete odkaz odebrat, použijte tento DELETE požadavek:

Prosba:

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

Odpověď:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Použití vlastností navigace s hodnotou kolekce

U OData mají obě strany vztahu N:N vlastnosti navigace s hodnotou kolekce. U vztahů 1 : N a N : 1 má tabulka na straně „jedna“ navigační vlastnost navigace ve formě kolekce. Při používání navigačních vlastností s hodnotami kolekce není žádný rozdíl v tom, jak s některým z těchto typů relací pracujete. Tato část popisuje, jak pracovat s vlastnostmi navigace s hodnotami kolekce pro libovolný typ relace.

Přidání záznamu do kolekce

Následující příklad ukazuje, jak přidat záznam kontaktu do kolekce obchodní vztahcontact_customer_accounts, která je součástí vztahu 1:N.

Prosba:

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)"
}

Odpověď:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Následující příklad ukazuje, jak přidat záznam role do kolekce systemusersystemuserroles_association , což je relace M:N.

Prosba:

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)"
}

Odpověď:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Odebrání záznamu z kolekce

Následující příklad ukazuje, jak odebrat záznam kontaktu z kolekce účtůcontact_customer_accounts, kde hodnota kontaktu je contactid00aa00aa-bb11-cc22-dd33-44ee44ee44ee.

Prosba:

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

Odpověď:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Funguje také následující požadavek:

Prosba:

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

Odpověď:

HTTP/1.1 204 NoContent
OData-Version: 4.0

Viz také

Ukázka základního provozu webového rozhraní API (C#)
Ukázka základního provozu webového rozhraní API (JavaScript na straně klienta)
Provádění operací pomocí webového rozhraní API
Vytváření požadavků HTTP a zpracování chyb
Dotazování na data pomocí webového rozhraní API
Vytvoření řádku tabulky pomocí webového rozhraní API
Načtení řádku tabulky pomocí webového rozhraní API
Aktualizace a odstranění řádků tabulky pomocí webového rozhraní API
Použití funkcí webového rozhraní API
Použít akce webového rozhraní API
Spouštění dávkových operací pomocí webového rozhraní API
Zosobnění jiného uživatele pomocí webového rozhraní API
Provádění podmíněných operací pomocí webového rozhraní API