我正在尝试创建一个用户,就像一个魅力一样。但是我不能为他/她分配用户许可。我收到错误消息。字段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);
最佳答案
一般来说,集成API的结构使得一旦调用对象的create或update之后,就不应继续使用该对象。相反,您应该从API中读取一个新对象并继续使用该新对象。在您的情况下,您可以在调用user.create()
之后添加类似的内容
final User user2 = User.load(_sessionHelper.getSession(), null, userId);
然后,您可以在对
user2
的调用中使用user
代替createUserLicense
user2.createUserLicense(ul);