您好。
我们这里有一个自定义解决方案,供应商使用Microsoft Dynamics作为基础。他们创建了一个自定义实体(contactrelationships),并且该实体的某个字段/属性称为“ownerid”。我查看了GUI /网站 并且看起来这个属性只是来自用户实体的用户。
我在网上搜索了用户实体的信息(我已经下载了微软提供的ERD),我找不到关于它。有各种各样的东西谈论用户和团队,但没有像这样的MSDN 联系人实体上的page。
基本上我在这里有一个自定义实体,其中一个属性/字段(名称为ownerid)使用用户实体。当我在网站上查看实体并点击ownerid将我引导到用户管理网页时,我验证了这一点。
我想通过c#创建此自定义实体的新实例并正确分配ownerid属性。我之前使用过EntityReference,但我不确定这是否正确。
你能帮忙吗?谢谢:)
答案 0 :(得分:1)
ownerid
是Dynamics CRM中的一个特殊属性。如果在将Ownwership设置为User or Team
的情况下创建实体,则会在实体内自动创建属性ownerid
(以及createdby
和modifiedby
等其他属性。)
ownerid
可以处理SystemUser
条记录或Team
条记录,SystemUser
的元数据位于此处:
http://msdn.microsoft.com/en-us/library/gg328525(v=crm.5).aspx
和`团队的元数据在这里:
http://msdn.microsoft.com/en-us/library/gg328312(v=crm.5).aspx
该字段是EntityReference
,因此您需要使用语法(如果您要指定与实际创建记录的用户不同的用户)
entity["ownerid"] = new EntityReference("systemuser", userId);
但由于此属性很特殊,上述语法仅在您创建新记录时有效,如果要修改现有记录,则需要使用AssignRequest
Guid accountId = new Guid("90F8889F-EB95-E781-8417-000C44420CBC");
Guid newOwnerId = new Guid("A8AA28B4-9015-DF11-8062-000E0CA08051");
AssignRequest assignRequest = new AssignRequest
{
Assignee = new EntityReference("systemuser", newOwnerId),
Target = new EntityReference("account", accountId)
};
service.Execute(assignRequest);