从分隔文件聚合组时出现以下错误

问题描述 投票:0回答:1

enter image description hereenter image description here我按照构建图规则运行

错误 - 对象类型 Pam 组聚合期间出现异常 应用程序 Pam 应用程序的权限。原因: java.lang.RuntimeException: sailpoint.connector.ConnectorException: 构建规则必须返回

import sailpoint.object.Schema;
import sailpoint.connector.Connector;
import sailpoint.connector.DelimitedFileConnector;
// Importing the classes which allow us to create permissions
import sailpoint.object.Permission;

if ( schema.getObjectType().compareTo(Connector.TYPE_ACCOUNT) == 0) {
   HashMap map = DelimitedFileConnector.defaultBuildMap(cols, record);
   return map;
} else if ( schema.getObjectType().compareTo(Connector.TYPE_GROUP) == 0) {
   // Calling the Connector to retrieve account attributes as an Hash Map
   HashMap map = DelimitedFileConnector.defaultBuildMap(cols, record);
   String permission = (String)map.get("Permission Rights");
   
   // Here we are using our permission model... Such as: right, write, execute, update on target. 
   if ( permission != null && permission.contains("-")) {
      // We create an Arraylist bucket to populate all permission objects
      List perms = new ArrayList();
      String [] permissions = permission.split("-");
      for ( int i = 0; permissions.length > i; i ++ ) {
          String target = permissions[i].substring(0, permissions[i].indexOf(":"));
          String permission = permissions[i].substring(permissions[i].indexOf(":"));      
          if ( permission.equals(":YY") ) {
             // For each Permission we have to create a new object. Therefore the multiple new object declaration
             Permission perm = new Permission();
             perm.setRights("update");
             perm.setTarget(target);
             perms.add(perm);
             Permission perm = new Permission();
             perm.setRights("create");
             perm.setTarget(target);
             perms.add(perm);
          } else { 
             Permission perm = new Permission();
             perm.setRights("execute");
             perm.setTarget(target);
             perms.add(perm); 
          }
      }
     // We finished building our permissions and return the ArrayList object which represents a multi valued attribute of permissions
     map.put("directPermissions", perms);
   }
   return map;
}

有人可以帮我吗?如果以上代码需要修改,请告诉我

java beanshell sailpoint
1个回答
0
投票

IdentityIQ buildmap 规则始终期望映射的返回值,即使您在规则中没有执行任何操作,并且如果条件失败,您的代码也不会返回任何映射,这就是错误的原因。 您只需在代码末尾添加以下块即可。

return new HashMap();
© www.soinside.com 2019 - 2024. All rights reserved.