Teamcenter报错:值类型 PROP_typed_reference 不受支持。 未能在对象 (Fnd0LicenseInfo) 上进行操作。 实例在使用中。

发布时间 2024-01-05 10:22:21作者: 信铁寒胜

1、停用账号方法,在执行停用账号方法时,报如下错误:

:修改用户为非活动状态发生异常!异常原因:值类型 PROP_typed_reference 不受支持。
未能在对象 (Fnd0LicenseInfo) 上进行操作。
实例在使用中。
值类型 PROP_typed_reference 不受支持。
未能在对象 (Fnd0LicenseInfo) 上进行操作。
实例在使用中。

public void inactiveUserList(List<String> userIdList) {
        if(userIdList == null || userIdList.size() == 0){
            return;
        }
        UserManagementService userService = UserManagementService.getService(AppXSession.getConnection());
        UserManagement.CreateOrUpdateUserInputs acreateorupdateuserinputs[] = new UserManagement.CreateOrUpdateUserInputs[userIdList.size()];
        for(int index = 0;index<userIdList.size();index++){
            UserManagement.CreateOrUpdateUserInputs acreateorupdateuserinputs1 = new UserManagement.CreateOrUpdateUserInputs();
            acreateorupdateuserinputs1.userId = userIdList.get(index);
            Map userPropertyMap = new HashMap<String, String>();

            userPropertyMap.put("status", new String[] {"1"});
            userPropertyMap.put("SOA_operation", new String[] { "MODIFY"});
            acreateorupdateuserinputs1.userPropertyMap = userPropertyMap;
            acreateorupdateuserinputs[index] = acreateorupdateuserinputs1;
        }
        UserManagement.CreateOrUpdateUserResponse response = userService.createOrUpdateUser(acreateorupdateuserinputs);
        String error = ServiceDataUtil.getServiceData2Error(response.serviceData);
        if(StringUtils.isNotEmpty(error)) {
            throw new RuntimeException("修改用户为非活动状态发生异常!异常原因:"+error);
        }
    }

  看着是值类型的错误,但是我之前用这个方法试过停用账号是没有问题的。

 

回想起场景,

1、手工用一个DBA账号zhangsan,在胖客户端,让一个11xxxx账号设置为活动状态。

2、然后在用SOA程序固定的infodba账号,来执行停用程序。报上面错误。

 

解决方案:

我刚开始一直以为在控制台清理infodba账号就可以了,但是实际上还要清理11xxxx账号,才能正常不报错!