Получить связанные объекты от CRMService - PullRequest
0 голосов
/ 24 марта 2012

Я пытаюсь создать разъем BCS для sharepoint, который получает данные из CRM4.У меня есть извлечение нормальных атрибутов из прав «контакта», но я не вижу, как получить такие вещи, как связанные контакты, пользовательские объекты или встречи / встречи и т. Д.*

как получить связанные объекты в динамике CRM 2011

Получить список объектов из CRM 2011, каждый со всеми связанными объектами

Microsoft CRM, как мне получить всех членов списка с помощью CrmService?

Но я не вижу никакой ссылки на то, что я делаю.Я использую обычный веб-сервис CRMService.Я использую обычный запрос:

var contacts = service.RetrieveMultiple(query);

Это только дает мне доступ к основным атрибутам, если я что-то не упустил.Если у контакта есть несколько сущностей, связанных с ним (другие контакты / встречи), могу ли я получить это из того же запроса?Или это требует другого попадания в другую сущность?

1 Ответ

1 голос
/ 24 марта 2012

Из того, что я знаю (и помню из CRM 4), вы должны запрашивать каждую сущность независимо. С другой стороны, вы можете фильтровать то, что вы хотите:

var query = new QueryExpression
            {
                EntityName = "new_typedecontrat",
                ColumnSet = new ColumnSet { AllColumns = true },
                Criteria = new FilterExpression
                {
                    FilterOperator = LogicalOperator.And
                }
            };
            var expression2 = new ConditionExpression("new_typedecontratid",   ConditionOperator.Equal, campaign.New_TypedecontratId.Id);

            query.Criteria.Conditions.Add(expression2);

            EntityCollection entitys = CRM.Instance.RetrieveMultiple(query);



try
            {
                using (var serviceProxy1 = new OrganizationServiceProxy(organizationUri, homeRealmUri, credentials, null))
                {
                    // This statement is required to enable early-bound type support.
                    serviceProxy1.ServiceConfiguration.CurrentServiceEndpoint.Behaviors.Add(new ProxyTypesBehavior());
                    serviceProxy1.Timeout = new TimeSpan(0, 10, 0);
                    CRMService = serviceProxy1;

                    return CRMService.RetrieveMultiple(query);
                }
            }

Это отвечает на ваш вопрос?

...