我正在研究CRM中早期和晚期绑定的优缺点.我对这个问题有了一个好主意,但有一点我不清楚.
有人说早期招架是最快的,其他的则是最快的.有什么显着差异吗?
如何处理自定义实体的早期绑定?
如何使用自定义字段处理默认实体的早期绑定?
有很多链接,但我抓到鼠标最有用的是那些.还有其他指针吗?
在Dynamics CRM 2011中,在Incident实体上,"Status Reason"选项集(aka statuscode)与"Status"选项集(aka statecode)相关
例如,看这个截图

当我使用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)选项的完整列表.但是,我没有得到任何关于哪个"状态原因"(状态代码)选项与哪个"状态"(状态代码)选项相关的信息.
我如何获得这些信息?
我的任务是在MS CRM 2011界面中生成可打印的报告.
有没有推荐的方法来访问CRM托管代码中的SQL Server Reporting Service?我不想直接连接,因为它需要将正确的凭据传递给正确的URL - 而且这些信息因安装而异.
所以我要么创建安装表来保存所有连接信息,要么我应该对其进行硬编码并重新编译.
这个问题有没有通用的解决方案?
使用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属性为空.
当我查看实体的Web UI Customizations屏幕并打开Service字段时,在Type部分下显示Type:Lookup,Target Record Type:Account,Relationship Name:campaignactivity_account.
这些信息来自哪里?
另请注意:Campaign活动或帐户实体上没有名为"campaignactivity_account"的关系.
更新:我正在运行Dynamics CRM 2011 Rollup 8的库存安装(尽管我在Rolloup 7上也看到了这一点).虽然"广告系列活动"是我在我的示例中使用的字段,但总共有14个问题,如下所示.我正在寻找一个通用的解决方案(针对每个解决方案的一次性解决方案),以避免if (entityName=="rollupfield" && fieldName=="organizationid")...在我的代码中使用一堆逻辑,因为我正在使用的实体和字段是由用户在运行时选择的,我不知道我必须提前知道我会被交给谁.
更新:以下控制台应用程序可用于重现该问题.
//Requires the following Referenses:
// Microsoft.CSharp
// Microsoft.IdentityModel
// Microsoft.xrm.sdk
// System
// System.Core
// System.Data
// …Run Code Online (Sandbox Code Playgroud) 我正在尝试从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属性,但在内部,相关实体总是空的.

我想知道是否可以使用RetrieveMultipleRequest检索具有相关实体的给定实体的集合,而不是使用RetrieveRequest逐个检索.
我正在使用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) 有谁知道如何将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)
这给了我一个错误.无法转换此.
我正在尝试从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魔术变得有效?
我有一个报告,显示在每个帐户下执行的所有帐户和活动的名称.
AccountName:ABC Corp活动:安装
我想对AccountName进行分组,并获取为每个帐户执行的活动总数.
ABC公司:1
如何在SSRS 2008中实现这一目标?我能够对AccountName进行分组,但我需要一种方法将Activity列转换为int,这样我就可以得到总数.
帮助赞赏!
如何通过guid正确过滤我的数据集?
我正在暴露odata端点,并尝试导航到URL:
http:// localhost:5001/mystuf/api/v2/AccountSet?$ filter = AccountId%20eq%20guid%2703a0a47b-e3a2-e311-9402-00155d104c22%27
当我的odata端点尝试过滤该guid上的数据集时,我得到:
Run Code Online (Sandbox Code Playgroud)"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, …
c# ×6
dynamics-crm ×3
asp.net-core ×1
metadata ×1
odata ×1
plugins ×1
soap ×1
sql-server ×1
ssrs-2008 ×1
wcf ×1
xml ×1