标签: dynamics-crm-2011

早期约束的(dis)优势是什么?

我正在研究CRM中早期和晚期绑定的优缺点.我对这个问题有了一个好主意,但有一点我不清楚.

  1. 有人说早期招架是最快的,其他的则是最快的.有什么显着差异吗?

  2. 如何处理自定义实体的早期绑定?

  3. 如何使用自定义字段处理默认实体的早期绑定?

有很多链接,但我抓到鼠标最有用的是那些.还有其他指针吗?

亲临
Pro早期

plugins dynamics-crm-2011

11
推荐指数
2
解决办法
6928
查看次数

Dynamics Crm:获取状态码/状态码映射的元数据

在Dynamics CRM 2011中,在Incident实体上,"Status Reason"选项集(aka statuscode)与"Status"选项集(aka statecode)相关

例如,看这个截图

CRM字段选项的屏幕截图

当我使用API​​检索Status Reason选项集时,如下所示:

        RetrieveAttributeRequest attributeRequest = new RetrieveAttributeRequest
        {
            EntityLogicalName = "incident",
            LogicalName = "statuscode",
            RetrieveAsIfPublished = true
        };
        RetrieveAttributeResponse attributeResponse = (RetrieveAttributeResponse)serv.Execute(attributeRequest);
        AttributeMetadata attrMetadata = (AttributeMetadata)attributeResponse.AttributeMetadata;
        StatusAttributeMetadata statusMetadata = (StatusAttributeMetadata)attrMetadata;
        var dict = new Dictionary<int?, string>();
        foreach (OptionMetadata optionMeta in statusMetadata.OptionSet.Options)
        {
            dict.Add(optionMeta.Value, optionMeta.Label.UserLocalizedLabel.Label);
        }
Run Code Online (Sandbox Code Playgroud)

它的工作原理是我获得了"状态原因"(statuscode)选项的完整列表.但是,我没有得到任何关于哪个"状态原因"(状态代码)选项与哪个"状态"(状态代码)选项相关的信息.

我如何获得这些信息?

c# metadata dynamics-crm-2011

11
推荐指数
2
解决办法
1万
查看次数

从MS CRM工作流活动中调用SQL Server Reporting Services

我的任务是在MS CRM 2011界面中生成可打印的报告.

有没有推荐的方法来访问CRM托管代码中的SQL Server Reporting Service?我不想直接连接,因为它需要将正确的凭据传递给正确的URL - 而且这些信息因安装而异.

所以我要么创建安装表来保存所有连接信息,要么我应该对其进行硬编码并重新编译.

这个问题有没有通用的解决方案?

c# sql-server reporting-services dynamics-crm-2011

11
推荐指数
1
解决办法
1523
查看次数

在Dynamics 2011 SDK中,如何在LookupAttributeMetadata.Targets为空时确定目标实体?

使用CRM 2011 SDK(v5.0.10)我遇到了少数Lookup字段的问题,其中目标没有填充,我希望有人可以帮助我确定在这些情况下确定引用实体的最佳方法.

具体来说,我正在使用此调用检索实体,属性和关系元数据:

var entityRequest = new RetrieveAllEntitiesRequest
                        {
                           RetrieveAsIfPublished = true,
                           EntityFilters = EntityFilters.Entity | EntityFilters.Attributes | EntityFilters.Relationships
                           };

var entityResponse = (RetrieveAllEntitiesResponse)_organizationService.Execute(entityRequest);
return entityResponse.EntityMetadata.ToList();
Run Code Online (Sandbox Code Playgroud)

稍后,在使用从该调用返回的EntityMetadata对象时,我检查Attributes集合,对于LookupAttributeMetadata对象,我尝试使用LookupAttributeMetadata对象的Targets属性确定查找引用的实体.

但是,在某些情况下,LookupAttributeMetadata对象具有空的Targets集合.例如,Campaign活动(逻辑名称:campaignactivity)实体将Service字段(逻辑名称:serviced)定义为Lookup字段,但LookupAttributeMetadata对象上的Targets属性为空.

VS QuickWatch

当我查看实体的Web UI Customizations屏幕并打开Service字段时,在Type部分下显示Type:Lookup,Target Record Type:Account,Relationship Name:campaignactivity_account.

Web UI字段视图

这些信息来自哪里?

另请注意:Campaign活动或帐户实体上没有名为"campaignactivity_account"的关系.

更新:我正在运行Dynamics CRM 2011 Rollup 8的库存安装(尽管我在Rolloup 7上也看到了这一点).虽然"广告系列活动"是我在我的示例中使用的字段,但总共有14个问题,如下所示.我正在寻找一个通用的解决方案(针对每个解决方案的一次性解决方案),以避免if (entityName=="rollupfield" && fieldName=="organizationid")...在我的代码中使用一堆逻辑,因为我正在使用的实体和字段是由用户在运行时选择的,我不知道我必须提前知道我会被交给谁.

  • 实体:汇总字段(汇总字段)字段:组织标识(organizationid)
  • 实体:汇总查询(goalrollupquery)字段:拥有用户(拥有者)
  • 实体:流程日志(workflowlog)字段:关于(aboutobjectid)
  • 实体:已保存的视图(userquery)字段:父查询(parentqueryid)
  • 实体:Campaign活动(campaignactivity)字段:服务(serviceid)
  • 实体:电子邮件搜索(emailsearch)字段:父母(parentobjectid)
  • 实体:时区定义(timezonedefinition)字段:组织(organizationid)
  • 实体:广告系列响应(campaignresponse)字段:服务(serviceid)
  • 实体:快速广告系列(bulkoperation)字段:服务(serviceid)
  • 实体:字段权限(fieldpermission)字段:组织ID(organizationid)
  • 实体:时区本地化名称(timezonelocalizedname)字段:组织(organizationid)
  • 实体:时区规则(timezonerule)字段:组织(organizationid)
  • 实体:审计(审计)字段:记录(目标)
  • 实体:帖子(帖子)字段:AboutObjectId(aboutobjectid)

更新:以下控制台应用程序可用于重现该问题.

//Requires the following Referenses:
// Microsoft.CSharp
// Microsoft.IdentityModel
// Microsoft.xrm.sdk
// System
// System.Core
// System.Data
// …
Run Code Online (Sandbox Code Playgroud)

c# dynamics-crm dynamics-crm-2011

10
推荐指数
1
解决办法
4505
查看次数

使用RetrieveMultipleRequest检索每个的相关实体

我正在尝试从CRM中检索实体列表,但我想让每个实体都与相关实体相关联.到目前为止,我有以下代码:

FilterExpression filterExpression = new FilterExpression();
ConditionExpression condition = new ConditionExpression(Constants.ModifiedOnAttribute, ConditionOperator.GreaterEqual, lastSync);
filterExpression.AddCondition(condition);

QueryExpression query = new QueryExpression()
{
     EntityName = entityName,
     ColumnSet = new ColumnSet(attributesMetadata.Select(att => att.Name).ToArray<string>()),
     Criteria = filterExpression,
     Distinct = false,
     NoLock = true
};

RetrieveMultipleRequest multipleRequest = new RetrieveMultipleRequest();
multipleRequest.Query = queryExpression;

RetrieveMultipleResponse response = (RetrieveMultipleResponse)proxy.Execute(multipleRequest);
Run Code Online (Sandbox Code Playgroud)

在变量响应中,我可以看到EntityCollection属性,但在内部,相关实体总是空的.

相关实体计数为0

我想知道是否可以使用RetrieveMultipleRequest检索具有相关实体的给定实体的集合,而不是使用RetrieveRequest逐个检索.

dynamics-crm dynamics-crm-2011

10
推荐指数
2
解决办法
9046
查看次数

FilterExpression的多个条件

我正在使用Condition表达式,但我无法为a添加多个条件FilterExpression.任何人都可以帮忙吗?我在这里发布了我的源代码.

带过滤器的ConditionExpression:

  // Filter1
FilterExpression filter1 = new FilterExpression();
filter1.FilterOperator = LogicalOperator.And;
filter1.Conditions.Add(new ConditionExpression("A_LogicalName", ConditionOperator.Equal, id1));
filter1.Conditions.Add(new ConditionExpression("B_LogicalName", ConditionOperator.Equal, id2));
query.Criteria.Filters.Add(filter1);
Run Code Online (Sandbox Code Playgroud)

// Filter2

FilterExpression filter2 = new FilterExpression();
filter2.FilterOperator = LogicalOperator.And;
filter2.Conditions.Add(new ConditionExpression("B_LogicalName", ConditionOperator.Equal, id3));
filter2.Conditions.Add(new ConditionExpression("C_LogicalName", ConditionOperator.Equal, id4));
q_ShoppingCartItemQuantityCheck.Criteria.Filters.Add(filter2);  
Run Code Online (Sandbox Code Playgroud)

c# query-expressions dynamics-crm-2011

10
推荐指数
3
解决办法
3万
查看次数

将EntityReference转换为实体

有谁知道如何将EntityReference转换为实体.

protected override void Execute(CodeActivityContext executionContext)
{
    [Input("Email")]
    [ReferenceTarget("email")]
    public InArgument<Entity> EMail { get; set; }


    Entity MyEmail = EMail.Get<Entity>(executionContext);
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误.无法转换此.

dynamic-programming dynamics-crm dynamics-crm-2011

10
推荐指数
2
解决办法
3万
查看次数

请求中的SOAP Action标头错误.为什么?

我正在尝试从CRM插件中连接到MS CRM部署服务(即我无法使用app.config配置文件).

问题是用源代码替换"配置魔术"真的很困难.

当我使用以下配置文件(在控制台应用程序中本地测试)时:

<client>
    <endpoint address="http://server/XRMDeployment/2011/Deployment.svc"
        binding="customBinding" bindingConfiguration="CustomBinding_IDeploymentService"
        contract="DeploymentService.IDeploymentService" name="CustomBinding_IDeploymentService">
        <identity>
            <userPrincipalName value="DOMAIN\DYNAMICS_CRM" />
        </identity>
    </endpoint>

    ...

</client>
Run Code Online (Sandbox Code Playgroud)

一切都很好,但是当我试图用我正面对的代码替换配置时.在生成的SOAP消息而不是预期的标头中:

<a:Action s:mustUnderstand="1" u:Id="_4">http://schemas.microsoft.com/xrm/2011/Contracts/Services/IDeploymentService/Retrieve</a:Action>
Run Code Online (Sandbox Code Playgroud)

我看到一些奇怪的事:

<a:Action s:mustUnderstand="1" u:Id="_4">http://schemas.xmlsoap.org/ws/2005/02/trust/RST/SCT</a:Action>
Run Code Online (Sandbox Code Playgroud)

有谁知道如何覆盖Action Header以及配置中的哪个语句会使WCF魔术变得有效?

c# xml wcf soap dynamics-crm-2011

10
推荐指数
1
解决办法
1471
查看次数

SSRS 2008中分组值的总行数

我有一个报告,显示在每个帐户下执行的所有帐户和活动的名称.

AccountName:ABC Corp活动:安装

我想对AccountName进行分组,并获取为每个帐户执行的活动总数.

ABC公司:1

如何在SSRS 2008中实现这一目标?我能够对AccountName进行分组,但我需要一种方法将Activity列转换为int,这样我就可以得到总数.

帮助赞赏!

reporting-services ssrs-2008 dynamics-crm-2011

9
推荐指数
2
解决办法
5万
查看次数

如何使用odata通过guid正确过滤我的数据集?

如何通过guid正确过滤我的数据集?

我正在暴露odata端点,并尝试导航到URL:

http:// localhost:5001/mystuf/api/v2/AccountSet?$ filter = AccountId%20eq%20guid%2703a0a47b-e3a2-e311-9402-00155d104c22%27

当我的odata端点尝试过滤该guid上的数据集时,我得到:

"message": "Invalid 'where' condition. An entity member is invoking
an invalid property or method.", "type": "System.NotSupportedException"

{
  "odata.error": {
    "code": "",
    "message": {
      "lang": "en-US",
      "value": "An error has occurred."
    },
    "innererror": {
      "message": "Invalid 'where' condition. An entity member is invoking an invalid property or method.",
      "type": "System.NotSupportedException",
      "stacktrace": "   at Microsoft.Xrm.Sdk.Linq.QueryProvider.ThrowException(Exception exception)
   at Microsoft.Xrm.Sdk.Linq.QueryProvider.FindValidEntityExpression(Expression exp, String operation)
   at Microsoft.Xrm.Sdk.Linq.QueryProvider.TranslateWhereCondition(BinaryExpression be, FilterExpressionWrapper parentFilter, Func`2 getFilter, Boolean negate)
   at Microsoft.Xrm.Sdk.Linq.QueryProvider.TranslateWhere(String parameterName, …
Run Code Online (Sandbox Code Playgroud)

c# odata dynamics-crm-2011 asp.net-core

9
推荐指数
1
解决办法
1829
查看次数