在MS CRM开发环境实例中创建了1000条记录。需要一个新字段,该字段由实体自定义创建。我们需要在该字段中的每个记录中使用随机值。实现这一目标的支持方法是什么?
我想的选项是
- 工作流(不允许随机值)
- 批量更新(不允许随机值)
- 添加用=RAND()填充的随机值列后,从excel导入进行批量更新。不确定这是否会更新现有记录
- 为此,编写一个ODATA web资源html页面。(太脆弱,开发和调试时间和精力太长)
- 使用LinqPad 4与CRM 2011连接器插件实现相同
以下带有CRM连接器的LinqPad 4解决方案花了10分钟处理了大约700条记录。
//set up a random amount generator
var r = new Random();
//initialte with an arbitrary value
decimal amount = 13;
//list all required records using linq
var ats = (from at in psm_assettypeSet
where at.psm_Amount.Equals(null)
select at).ToList();
//check count
ats.Count().Dump();
//check
(ats.First() as psm_assettype).psm_Amount.Dump();
//loop through
foreach (psm_assettype at in ats)
{
//calculate amount
amount = (decimal)r.Next(31);
//check
amount.Dump();
//set amount, use XRM class properly
at.psm_Amount = new Microsoft.Xrm.Sdk.Money(amount);
//update object in memory
UpdateObject(at);
}
//bulk update all records
SaveChanges();
//check success
(ats.First() as psm_assettype).psm_Amount.Value.Dump();