我正在使用Microsoft Dynamics CRM Online。
我有一个工作插件,从一个名为(let's简化)“entity1”的实体的Create Message(后期操作)开始。此插件的一个功能是它确定一定的值。我们称之为“importantValue”。插件还在“entity1”和另一个实体(让我们再次简化)“entity2”之间创建关系,并在“entity1”中填充相应的查找字段。
所有这一切都很好。但是,我还希望插件将“entity2”(称为“samplefield”)字段设置为“importantValue”的值。我知道如何检索entity2的相关记录的GUID,但是我无法获得插件来更新这个(已经存在的)记录。
这是代码制作问题的一部分。我已经检索了GUID“entity2Guid”并填充了importantValue(它是一个字符串)。我的IOrganizationService称为“服务”。
Entity entity2 = new Entity("new_entity2");
entity2.Id = new Guid (entity2Guid);
entity2["new_samplefield"] = importantValue;
service.Update(entity2);
我做错了什么?提前谢谢!
答案 0 :(得分:-1)
我认为如果要更新自定义字段,则必须将字段名称添加到entities属性集合中。尝试以这种方式更新实体:
if (entity2.Attributes.ContainsKey("new_samplefield"))
entity2["new_samplefield"] = importantValue;
else
entity2.Attributes.Add("new_samplefield", importantValue);
也许如果您知道该属性永远不会包含在属性集合中,您可以跳过if语句并始终添加它。