0

我在 Dynamics 365 中自动创建应用程序用户。用户确实被创建了,但是当我稍后在代码中尝试为其分配角色时,我收到以下消息:The user Id(s) [a guid here] is invalid.当我尝试从Dynamics Web UI,我得到了相同错误的变体: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("testcrm3@mydomain.com", CrmFieldType.String) }
        });

我希望该用户以与通过 UI 创建的应用程序用户相同的方式显示在 Web UI 中,但事实并非如此。它没有显示我在代码中分配给它的应用程序 ID,并且在尝试为其分配角色时会引发上述错误。

难道我做错了什么?如果答案得到现有文档的支持,请同时指出我的答案,以便我了解为什么我没有找到它。

4

1 回答 1

0

你的同事看起来是对的。我会通过尝试将角色与正常创建的已退出用户相关联来对您的代码进行故障排除。如果可行,请使用 FetchXml Builder 或其他方法比较您创建的用户和通过 UI 创建的用户的潜在差异,并尝试解决这些问题,直到您确定导致错误的原因。

于 2019-02-18T21:24:36.697 回答