Как исправить «Идентификатор (и) пользователя недействителен» при создании пользователя приложения? - PullRequest
0 голосов
/ 18 февраля 2019

Я автоматизирую создание пользователя приложения в 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 Ответ

0 голосов
/ 19 февраля 2019

Ваш партнер выглядит правильно.Я бы решил проблему с вашим кодом, пытаясь связать роль с уже существующим пользователем, который обычно создается.Если это работает, используйте FetchXml Builder или какой-либо другой метод, чтобы сравнить созданного вами пользователя и пользователя, созданного с помощью пользовательского интерфейса, на предмет возможных различий и попытаться устранить их, пока не определите причину ошибки.

...