我在Dynamics 365中自动创建应用程序用户。用户确实已创建,但当我尝试在代码中稍后为其分配角色时,我收到以下消息:The user Id(s) [a guid here] is invalid.
当我尝试为用户分配角色时动态网页用户界面,我得到了相同错误的变体:The user ID associated with the current record is not valid.
。
我在C#中使用CrmServiceClient连接到组织。
我以编程方式创建用户时提供以下字段:
firstname
lastname
businessunitid
applicationid
internalemailaddress
我注意到的一件事是,当我通过Web UI查看用户时,我在创建中分配的应用程序ID不会显示。
这是我目前的代码:
private void SetUpPermissions()
{
var roleId = GetRoleId();
var userId = CreateApplicationUser();
CrmSvc.Associate(
"systemuser",
userId,
new Relationship("systemuserroles_association"),
new EntityReferenceCollection {
new EntityReference("role", roleId)
});
}
private Guid CreateApplicationUser() => CrmSvc.CreateNewRecord("systemuser", new Dictionary<string, CrmDataTypeWrapper>
{
{ "firstname", new CrmDataTypeWrapper(ProposalManagerApplicationName, CrmFieldType.String) },
{ "lastname", new CrmDataTypeWrapper("Application", CrmFieldType.String) },
{ "businessunitid", new CrmDataTypeWrapper(BusinessUnitId.Value, CrmFieldType.Lookup) },
{ "applicationid", new CrmDataTypeWrapper(ApplicationId, CrmFieldType.Key) },
{ "internalemailaddress", new CrmDataTypeWrapper("[email protected]", CrmFieldType.String) }
});
我希望这个用户在Web UI中以与通过UI创建的应用程序用户相同的方式显示,但事实并非如此。它没有显示我在代码中分配给它的应用程序ID,并且在尝试为其分配角色时抛出上述错误。
难道我做错了什么?如果答案得到现有文档的支持,请指出我,以便我可以了解为什么我没有找到它。
你的同事看起来很正确我通过尝试将角色与正常创建的已经存在的用户相关联来解决您的代码问题。如果可行,请使用FetchXml Builder或其他方法来比较您创建的用户和通过UI创建的用户的潜在差异,并尝试解决这些问题,直到您确定导致错误的原因为止。