Note that there are some explanatory texts on larger screens.

plurals
  1. POError when creating multiple N:1 relationships for an entity
    text
    copied!<p>I am using the MetadataService to create 4 entities and create relationships between them.</p> <p>The entities are: <code>TrexCalendar</code>, <code>TrexFrom</code>, <code>TrexTo</code>, <code>TrexAddress</code></p> <p>The relationships (all 1:Many) are:<code>TrexFrom - TrexAddress</code>, <code>TrexCalendar - TrexFrom</code>, <code>TrexTo - TrexAddress</code>, <code>TrexCalendar - TrexTo</code></p> <p>When I run my code the entities are all created successfully and the first, second and fourth relationships are created successfully.</p> <p>Creating the third relationship fails with the following details:</p> <blockquote> <p>0x80047007 Entity: new_trexaddress is parented to Entity with id: 7a6af338-bc23-e011-ad8c-9f5d300a22fe. Cannot create another parental relation with Entity: new_trexto Platform</p> </blockquote> <p>7a6af338-bc23-e011-ad8c-9f5d300a22fe is the id for the <code>TrexFrom</code> entity.</p> <p>So it looks like the SDK won't allow me to create a 1:N relationship between <code>TrexTo</code> and <code>TrexAddress</code> because a 1:N relationship exists between <code>TrexFrom</code> and <code>TrexAddress</code>.</p> <p>What's weird is that I am able to create this relationship manually using the Dynamics web interface.</p> <p>Any ideas what might be going on? How can I create both relationships programmatically?</p> <p>I'm using the following code to create the relationships:</p> <pre><code>OneToManyMetadata relationship = new OneToManyMetadata { ReferencedEntity = "new_trexto", ReferencingEntity = "new_trexaddress" SchemaName = "new_trexto_trexaddress", AssociatedMenuBehavior = new CrmAssociatedMenuBehavior { Value = AssociatedMenuBehavior.UseCollectionName }, CascadeAssign = new CrmCascadeType { Value = CascadeType.NoCascade }, CascadeDelete = new CrmCascadeType { Value = CascadeType.RemoveLink }, CascadeMerge = new CrmCascadeType { Value = CascadeType.NoCascade }, CascadeReparent = new CrmCascadeType { Value = CascadeType.NoCascade }, CascadeShare = new CrmCascadeType { Value = CascadeType.UserOwned }, CascadeUnshare = new CrmCascadeType { Value = CascadeType.NoCascade } }; LookupAttributeMetadata lookup = new LookupAttributeMetadata { SchemaName = lookupName, RequiredLevel = new CrmAttributeRequiredLevel(AttributeRequiredLevel.Recommended), DisplayName = CrmServiceUtility.CreateSingleLabel("TrexTo - TrexAddress", 1033) }; CreateOneToManyRequest request = new CreateOneToManyRequest { OneToManyRelationship = relationship, Lookup = lookup }; try { metadataService.Execute(request); Debug.Print("Relationship created successfully"); } catch (System.Web.Services.Protocols.SoapException ex) { Debug.Print(ex.Detail.InnerText); } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload