Del via


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

CanBeReferenced Action

Kontrollerer, om det angivne objekt kan være det primære objekt (en) i en en-til-mange-relation.

CanBeReferencing Action

Kontrollerer, om det angivne objekt kan være det refererende objekt (mange) i en en-til-mange-relation.

CanManyToMany Action

Kontrollerer, om objektet kan deltage i en mange-til-mange-relation.

GetValidManyToMany Function

Returnerer det sæt af objekter, der kan deltage i en mange-til-mange-relation.

GetValidReferencedEntities Function

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.

GetValidReferencingEntities Function

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