我正在使用SDK for CRM,并在我们的一个实体的一堆实例上打印出PK.我用数据库的过滤视图重复了它,得到了相同的答案:
1a6c691d-391a-de11-8b0e-0050568407cb
bd7b0ff0-391a-de11-8b0e-0050568407cb
ed272bfe-391a-de11-8b0e-0050568407cb
... and so on ...
这些似乎不是有效的GUID.首先,他们看错了 - 它们几乎完全相同,这是自从旧版本1和2 GUID基于MAC地址和时钟时间以来GUID没有的属性.而且,事实上GUID中的某个半字节表示GUID的版本 - 这里的半字节不正确.(第三部分的第一个半字节,即:1a6c691d-391a - **d**e11-8b0e-0050568407cb) - 有效值为1-5)(使用MS的GUID生成器生成GUID - 该插槽始终为4.(至少对于我的版本.))
这些GUID,还是ID,我怎么知道?
有没有人完成了MS CRM 4.0和SharePoint集成.任何指针?我是CRM和SharePoint的新手.
经过一番研究,我想改进我的问题.我基本上想要使用IFRAME添加一个SharePoint选项卡,该选项卡将显示我创建的SharePoint页面.有关如何做到这一点的任何提示?
另外,我如何访问SharePoint中的CRM数据字段.即如果我在SharePoint中添加文件,我希望它拥有CRM属性页面中的所有元数据.
基本上我有一个QueryExpression,它返回超过3000个结果.我只需要使用50到200之间.如果我使用普通的SQL我可以使用SELECT TOP 200 .....有没有办法在CRM中使用QueryExpression或FetchXML?
在Dynamics CRM中,我经常从业务用户那里获得创建报告的要求.业务用户了解并谈论实体显示名称和属性标签.要编写查询,我需要将它们映射到实体名称和属性名称.我想用一个查询来查看.
我将如何加入dbo.LocalizedLabelView视图以获取以下查询中的AttributeLabel列?我无法弄清楚ObjectId应该引用什么.(如果你能告诉我你是如何找到答案我会特别感激的!)
select
[EntityName] = entityNames.Name,
[EntityDisplayName] = entityDisplayNames.Label,
[AttributeName] = attributeNames.PhysicalName,
[AttributeDisplayName] = attributeDisplayNames.Label
--[AttributeLabel] = attributeLabels.Label
from
dbo.EntityView entityNames
inner join dbo.LocalizedLabelView entityDisplayNames
on entityDisplayNames.ObjectId = entityNames.EntityId
and entityDisplayNames.ObjectColumnName = 'LocalizedName'
left outer join dbo.AttributeView attributeNames
on attributeNames.EntityID = entityNames.EntityID
inner join dbo.LocalizedLabelView attributeDisplayNames
on attributeDisplayNames.ObjectId = attributeNames.AttributeID
and attributeDisplayNames.ObjectColumnName = 'DisplayName'
and attributeDisplayNames.LanguageID = entityDisplayNames.LanguageID
--inner join dbo.LocalizedLabelView attributeLabels
-- on attributeLabels.ObjectId = ?????
-- and attributeLabels.LanguageID = …Run Code Online (Sandbox Code Playgroud) 我想在N:N(多对多)关系中触发MS Dynamic CRM插件?
当用户在N:N关系中添加或删除行时,则暴露我的插件.
这是可能的,如果是这样的话?
我应该从一开始就添加 - 这是在Microsoft Dynamics CRM 2011中
我很了解CRM,但我无法解释当前部署的行为.
请阅读我的场景概要,以帮助我理解我的哪些假设/理解是错误的(因此导致此错误的原因).这与我的期望不符.
此工作流作业已取消,因为启动它的工作流包含无限循环.更正工作流逻辑,然后重试.有关工作流逻辑的信息,请参阅帮助.
首先,我认为在这种情况下忽略插件代码的内容是非常安全的.它工作正常,它是原子的,几乎不接触CRM(很明显,它是一个运行远程Web服务的事件前插件,等待响应,然后在我的Trigger记录上设置"完成日期"日期/时间属性,然后通过目标实体回到管道中).只要创建了一个Trigger记录,该代码就会运行并执行它应有的操作.
打了插件的内容后,可能会有一个问题,我不喜欢在实体的预创建步骤中注册插件...
这就离开了工作流程本身.这是一个简单的.它如此运行:
通过这种设置,我手动创建一个新的Trigger记录,并且该过程很好地实现了动作.向前滚动1小时58分钟(基于我运行的最后一个循环 - 记住我的插件代码可能需要一分钟才能完成运行),经过7个成功的执行周期(即创建并完成新的工作流程作业)后,第8个失败了上述错误.
默认情况下,递归深度设置为8.如果工作流/插件自身调用8次,则会检测到无限循环.
递归深度每隔一小时重置一次(或10分钟 - 请参阅链接博客中的"警告"?)
可以在内部部署中使用部署Web服务 通过PowerShell或SDK代码设置递归深度设置(通过Set-CrmSetting Cmdlet)
"更改递归深度设置"
我无法更改部署递归深度设置,因为这不是在线方案中的选项 - 最终我也将部署到CRM Online.
" 延长工作流程的超时时间 "
这也不是一个选项 - 重新索引需要每15分钟发生一次,理想情况下更快.
@Boone在下面建议递归深度超时在60分钟不活动后重置,而不是每60分钟重置一次.这是第一个误解.
在与@alex讨论时,我建议在通过工作流创建实体和产生最终产生的工作流之间可能存在一些持久性的CorrelationId ......好吧.插件和工作流中的CorrelationId相同,并且该线程的任何记录都是相同的.我现在正在研究如何从实体和工作流中分离CorrelationId(或者可能是创建记录).
示例:假设我有一个工作流程,在保修期限结束前2天发送电子邮件.此工作流程在实体的"已创建"上触发.
step 1: wait condition - process timeout < (warrantyendate - 2)
after wait: send email.
Run Code Online (Sandbox Code Playgroud)
因此,在创建记录时,将启动工作流程.但是当用户返回并更新保修期限时会发生什么.
工作流程是否检查更新的保修期限或是否仍然使用触发时输入的结束日期(即创建值的初始值)?
我自己进入了服务器,我已经检索了(希望)正确的数据集.然后,我尝试通过以下代码列出所有公司.
EntityCollection result = proxy.RetrieveMultiple(expression);
foreach (var entity in result.Entities)
{
String output = String.Empty;
if (entity.Attributes.Contains("account"))
output = entity.Attributes["account"].ToString();
}
Run Code Online (Sandbox Code Playgroud)
但是,运行一个遍历所有可用属性的内部循环会很不错result.Entities.我应该使用entity.Attributes.Keys还是有更好的方法?
我正在尝试执行此查询以检索特定实体类型的审核项目
public List<Audit> GetAuditChangesSince(DateTime since, string entityType)
{
return (from a in OrgContext.CreateQuery<Audit>()
where
a.ObjectId != null && a.ObjectId.LogicalName == entityType &&
a.CreatedOn > since
select a).ToList();
}
Run Code Online (Sandbox Code Playgroud)
该a.ObjectId!= NULL && a.ObjectId.LogicalName ==的EntityType &&条款导致的问题.我知道.Equals()可能会导致问题(因此==)并且LINQ提供程序存在以下限制:
子句的左侧必须是属性名称,子句的右侧必须是值
左侧是属性,右侧是常量.是.ObjectId.LogicalName导致问题吗?
上下文
我想针对CRM 2016 CodeActivity和Plugin类将使用的类编写一些单元测试.最终的程序集将以沙箱隔离模式注册.
我想确定在运行单元测试时测试用例是否为绿色,在CRM中注册和运行时,沙箱隔离安全限制不会受到更多限制.
题
有没有办法在运行单元测试时模拟沙箱隔离?
dynamics-crm ×10
c# ×2
crm ×2
.net ×1
dynamic ×1
fetchxml ×1
guid ×1
label ×1
linq ×1
reporting ×1
sharepoint ×1
sql ×1
unit-testing ×1