Как исправить "Идентификатор (и) пользователя недействителен" при создании пользователя приложения?
Я автоматизирую создание пользователя приложения в Dynamics 365. Пользователь действительно создается, но когда я пытаюсь назначить ему роль позже в коде, я получаю это сообщение: The user Id(s) [a guid here] is invalid.
Когда я пытаюсь назначить пользователю роль из веб-интерфейса Dynamics, я получаю вариант той же ошибки: The user ID associated with the current record is not valid.
,
Я использую CrmServiceClient в C# для подключения к организации.
Я предоставляю следующие поля при создании пользователя программно:
firstname
lastname
businessunitid
applicationid
internalemailaddress
Одна вещь, которую я заметил, это то, что когда я смотрю на пользователя через веб-интерфейс, идентификатор приложения, который я назначил при создании, не отображается.
Это мой текущий код:
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("testcrm3@mydomain.com", CrmFieldType.String) }
});
Я ожидаю, что этот пользователь будет отображаться в веб-интерфейсе так же, как и пользователь приложения, созданный с помощью пользовательского интерфейса, но это не так. Он не показывает идентификатор приложения, который я назначил ему в коде, и выдает вышеупомянутую ошибку при попытке назначить ему роль.
Я делаю что-то неправильно? Если ответ подкреплен существующей документацией, пожалуйста, укажите мне также, чтобы я мог понять, почему я не нашел его.
1 ответ
Ваш партнер выглядит правильно. Я бы решил проблему с вашим кодом, пытаясь связать роль с уже существующим пользователем, который обычно создается. Если это работает, используйте FetchXml Builder или какой-либо другой метод для сравнения пользователя, которого вы создаете, и пользователя, созданного с помощью пользовательского интерфейса, на предмет возможных различий и пытайтесь устранить их, пока не определите причину ошибки.