【问题标题】:Primavera Integration API cannot create user licensePrimavera 集成 API 无法创建用户许可证
【发布时间】:2014-10-17 21:49:26
【问题描述】:

我正在尝试创建一个像魅力一样工作的用户。但我不能为他/她分配用户许可证。我收到错误消息。 字段 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);

    

【问题讨论】:

    标签: java primavera


    【解决方案1】:

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

    之后添加类似的内容
    final User user2 = User.load(_sessionHelper.getSession(), null, userId);
    

    那么您将在对createUserLicense 的调用中使用user2 代替user

    user2.createUserLicense(ul);
    

    【讨论】:

      猜你喜欢
      • 2020-10-01
      • 2021-06-03
      • 2014-05-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-17
      • 2018-11-03
      相关资源
      最近更新 更多