0

我正在尝试创建一个像魅力一样工作的用户。但我不能为他/她分配用户许可证。我收到错误消息。字段 ObjectId 尚未加载或设置。什么字段 ObjectId 没有设置?

    User user = new User(_sessionHelper.getSession());
    user.setName(importResourcesData.getSsoID());
    user.setPersonalName(importResourcesData.getFirstName() + " " + importResourcesData.getLastName());
    User.setEmailAddress(importResourcesData.getEmailAdress());
    user.setPassword(importResourcesData.getSsoID(), importResourcesData.getSsoID());
    user.setAllResourceAccessFlag(false);
    user.setGlobalProfileObjectId(getDefaultGlobalSecurityProfile());

    ObjectId userId = user.create(); //WORKS!!!
   
      BOIterator<UserLicense> loadResources = _sessionHelper.getElm().loadUserLicenses(new String[]{"LicenseType"}, "LicenseType = 'Timesheets'", null);
      Userlicense ul = loadResources.next();
      //This Fails!
      user.createUserLicense(ul);

    
4

1 回答 1

1

一般来说,集成 API 的结构是,一旦对对象调用 create 或 update,就不应继续使用该对象。相反,您应该从 API 中读取一个新对象并继续使用该新对象。在你的情况下,你会在调用之后添加这样的东西user.create()

final User user2 = User.load(_sessionHelper.getSession(), null, userId);

然后你会user2user调用中使用createUserLicense

user2.createUserLicense(ul);
于 2015-01-31T00:48:41.140 回答