Oprette og opdatere objektrelationer med Web API
Udgivet: januar 2017
Gælder for: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
Web-API'en understøtter arbejde med metadata for relationer. Begreberne, der er beskrevet i Tilpasse metadata til objektrelationer, gælder også for Web-API'en.
Dette emne indeholder
Relationsberettigelse
Opret en en til mange-relation
Oprette en mange til mange-relation
Opdatere relationer
Slette relationer
Relationsberettigelse
Før du opretter en objektrelation, skal du kontrollere, om objektet er berettiget til at deltage i relationen. Du kan bruge de handlinger, der er angivet i følgende tabel, til at bestemme berettigelsen. Disse handlinger svarer til de organisationstjenestemeddelelser, der er beskrevet i Objektrelations berettigelse.
Handling |
Beskrivelse |
---|---|
Kontrollerer, om det angivne objekt kan være det primære objekt (en) i en en-til-mange-relation. |
|
Kontrollerer, om det angivne objekt kan være det refererende objekt (mange) i en en-til-mange-relation. |
|
Kontrollerer, om objektet kan deltage i en mange-til-mange-relation. |
|
Returnerer det sæt af objekter, der kan deltage i en mange-til-mange-relation. |
|
Returnerer det sæt af objekter, der er gyldige som det primære objekt (en) fra det angivne objekt i en en-til-mange-relation. |
|
Returnerer det sæt af objekter, der er gyldige som det relaterede objekt (mange) til det angivne objekt i en en-til-mange-relation. |
Opret en en til mange-relation
Når du opretter en en til mange-relation, skal du definere den ved hjælp af OneToManyRelationshipMetadata EntityType. Denne definition omfatter den opslagsattribut, der er defineret ved hjælp af LookupAttributeMetadata EntityType og kræver også komplekse egenskaber, der bruger AssociatedMenuConfiguration ComplexType, CascadeConfiguration ComplexType, Label ComplexType og LocalizedLabel ComplexType. Opslagsattributten er indstillet til den Lookup-navigationsegenskab med enkeltværdi for OneToManyRelationshipMetadata-objektet og bliver oprettet på samme tid ved hjælp af dyb indsætning.Flere oplysninger:Oprette relaterede objekter på én gang og En til mange-relationer
Hvis du vil anvende et brugerdefineret navigationsegenskabsnavn til en en til mange-relation, kan du angive værdier for ReferencingEntityNavigationPropertyName- og ReferencedEntityNavigationPropertyName-egenskaberne.
Når du har oprettet den nødvendige JSON til at definere relationen og opslagsattributten, skal du POSTJSON til RelationshipDefinitions-objektsættet. Du skal medtage @odata.type-egenskabsværdien i Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata for at tydeliggøre, hvilken type relation du vil oprette, fordi det samme objektsæt bruges til at oprette mange til mange-relationer. Uri'en for den relation, der oprettes, returneres i svaret.
Anmodning
POST cc_WebAPI_ServiceURI/RelationshipDefinitions HTTP/1.1 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0 { "SchemaName": "new_contact_new_bankaccount", "@odata.type": "Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata", "AssociatedMenuConfiguration": { "Behavior": "UseCollectionName", "Group": "Details", "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Accounts", "LanguageCode": 1033 } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Accounts", "LanguageCode": 1033 } }, "Order": 10000 }, "CascadeConfiguration": { "Assign": "Cascade", "Delete": "Cascade", "Merge": "Cascade", "Reparent": "Cascade", "Share": "Cascade", "Unshare": "Cascade" }, "ReferencedAttribute": "contactid", "ReferencedEntity": "contact", "ReferencingEntity": "new_bankaccount", "Lookup": { "AttributeType": "Lookup", "AttributeTypeName": { "Value": "LookupType" }, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "The owner of the account", "LanguageCode": 1033 } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "The owner of the account", "LanguageCode": 1033 } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Account Owner", "LanguageCode": 1033 } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Account Owner", "LanguageCode": 1033 } }, "RequiredLevel": { "Value": "ApplicationRequired", "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "new_AccountOwner", "@odata.type": "Microsoft.Dynamics.CRM.LookupAttributeMetadata" } }
Svar
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/RelationshipDefinitions(d475020f-5d7c-e511-80d2-00155d2a68d2)
Oprette en mange til mange-relation
Når du opretter en mange til mange-relation, skal du definere relationen ved hjælp af ManyToManyRelationshipMetadata EntityType. Denne definition omfatter navnet på det overlappende objekt, der skal oprettes, og hvordan relationen skal vises i programmet ved hjælp af AssociatedMenuConfiguration ComplexType, Label ComplexType og LocalizedLabel ComplexType.Flere oplysninger:Mange til mange-relationer
Hvis du vil anvende et brugerdefineret navigationsegenskabsnavn til en mange til mange-relation, kan du angive værdier for Entity1NavigationPropertyName- og Entity2NavigationPropertyName-egenskaberne.
Når du har oprettet den nødvendige JSON til at definere relationen, skal du POSTJSON til RelationshipDefinitions-objektsættet. Du skal medtage @odata.type-egenskabsværdien i Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata for at tydeliggøre, hvilken type relation du vil oprette, fordi det samme objektsæt bruges til at oprette en til mange-relationer. Uri'en for den relation, der oprettes, returneres i svaret.
Anmodning
POST cc_WebAPI_ServiceURI/RelationshipDefinitions HTTP/1.1 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0 { "SchemaName": "new_accounts_campaigns", "@odata.type": "Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata", "Entity1AssociatedMenuConfiguration": { "Behavior": "UseLabel", "Group": "Details", "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Account", "LanguageCode": 1033 } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Account", "LanguageCode": 1033 } }, "Order": 10000 }, "Entity1LogicalName": "account", "Entity2AssociatedMenuConfiguration": { "Behavior": "UseLabel", "Group": "Details", "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Campaign", "LanguageCode": 1033 } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Campaign", "LanguageCode": 1033 } }, "Order": 10000 }, "Entity2LogicalName": "campaign", "IntersectEntityName": "new_accounts_campaigns" }
Svar
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/RelationshipDefinitions(420245fa-c77c-e511-80d2-00155d2a68d2)
Opdatere relationer
Som omtalt i Opdater objekter, opdatere du relationer ved hjælp af HTTP PUT-metoden for at erstatte den eksisterende definition med ændringer, du vil anvende. Du kan ikke redigere individuelle egenskaber ved hjælp af HTTP PATCH-metoden, som du kan med virksomhedsdataobjekter. Ligesom med objekter og attributter, skal du medtage en MSCRM.MergeLabels-header, hvor værdien er indstillet til true, for at undgå overskrivning af oversatte etiketter, der ikke er medtaget i opdateringen, og du skal publicere tilpasninger, før de kan blive aktive i systemet.
Slette relationer
Hvis du vil slette en relation ved hjælp af Web API'en, skal du bruge HTTP DELETE-metoden med URI'en for relationen.
Se også
Tilpasse metadata til objektrelationer
Bruge Web API med Dynamics 365-metadata
Forespørg på metadata ved hjælp af Web-API'en
Hente metadata efter navn eller MetadataId
Oprette og opdatere objektdefinitioner med Web API
Microsoft Dynamics 365
© 2017 Microsoft. Alle rettigheder forbeholdes. Ophavsret