Posted by: Nishant Rana | June 10, 2008

Many to many relationship in CRM 4.0 and Fetch XML

We have a custom entity called line of business (lob) for different line of business’s in our organization.

In CRM 3.0 there was no way we could have associated the lob custom entity with the system entity Team as there was no way of creating relationship between them.

But in CRM 4.0 we can now create a many to many relationship between the two.

Creating a many to many relationship between the two creates a new entity

new_team_new_lineofbusiness

Now say we want to write a custom code to retrieve all the teams associated with a given line of business, we can write something like below ( If we use query expression and retrieve multiple request it gives the error message saying that RetrieveMultiple is not supported on this entity)

This is the custom code for that

// setting the authentication token

CrmAuthenticationToken token = new CrmAuthenticationToken();

// 0- refers active directory

token.AuthenticationType = 0;

token.OrganizationName = “organizationname”;

 

CrmService crmService = new CrmService();

crmService.Url = “http://servername/mscrmservices/2007/CrmService.asmx”;

crmService.Credentials = System.Net.CredentialCache.DefaultCredentials;

crmService.CrmAuthenticationTokenValue = token;

 

string fetch2= @”<fetch mapping=’logical’>

<entity name=’new_team_new_lineofbusiness’>

<attribute name=’teamid’ />

<filter>

<condition attribute=’new_lineofbusinessid’ operator=’eq’ value=’C4BE129E-9B3C-DB11-8CBA-001185E68627′ />

</filter>

</entity>

</fetch>”;

 

// Fetch the results.

try

{

String result2 = crmService.Fetch(fetch2);

MessageBox.Show(result2);

XmlDocument doc = new XmlDocument();

doc.LoadXml(result2);

XmlNodeList xnodlist = doc.GetElementsByTagName(“teamid”);

string teamID = “”;

if (xnodlist.Count != 0)

{

for (int i = 0; i < xnodlist.Count; i++)

{

XmlNode xnodRoot = xnodlist.Item(i);

teamID = xnodRoot.InnerText;

}

}

}

catch (SoapException ex)

{

MessageBox.Show(ex.Detail.InnerText);

}

Bye


Responses

  1. Hi Nishant,

    I have been searching for a way to create/update an entity’s relationships using web services for CRM 4.0. I thought I had found what I was looking for when I cam across your blog, but it seems to only describe retreiving data. I now know how to access the link table. Do you know if there is a way to update these tables?

    e.g. I am developing a student related system and have a many-to-many relationship between students and schools. I am pulling this data from another database and want to create/update students using the web services.

    Any help would be appreciated.

    Leigh.


Leave a response

Your response:

Categories