【问题标题】:Get related entities from CRMService从 CRMService 获取相关实体
【发布时间】:2012-03-23 23:55:15
【问题描述】:

我正在尝试构建一个从 CRM4 获取数据的 sharepoint BCS 连接器。我让它从“联系人”实体中获取正常属性,但我没有看到如何检索相关联系人、自定义实体或会议/约会等内容。

我已经阅读了这些:

how to get related entities in dynamics CRM 2011

Retrieve a list of entites from CRM 2011, each with all of their related entities

Microsoft CRM, how do I get all the members of a list using CrmService?

但我似乎看不到任何关于我正在做的事情的参考。我正在使用普通的 CRMService 网络服务。我使用的是普通请求:

var contacts = service.RetrieveMultiple(query);

这只能让我访问基本属性,除非我遗漏了什么。如果一个联系人有几个与之相关的实体(其他联系人/会议),我可以从同一个查询中获取它吗?或者这是否需要再次打击另一个实体?

【问题讨论】:

    标签: c# dynamics-crm crm dynamics-crm-4


    【解决方案1】:

    据我所知(并记得 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);
                    }
                }
    

    这是否回答了您的问题?

    【讨论】:

    • 我希望有另一种方法来做到这一点,只是因为这可能是一个耗时的查询(从我所看到的情况来看,CRM4 Api 相当慢)。我知道数据库上有一个相关的视图,我想知道这是否以更简单的方式暴露给 API。
    • 是的,当您查询服务时,实际上查询的是视图(例如,联系人是视图)。这可能会为您提供与您的问题相关的更多信息stackoverflow.com/questions/1009359/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多