You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Sailpoint Identity IQ聚合任务报错:Build Rule必须返回Map求助

Sailpoint聚合账户任务报错:Build Rule必须返回Map

问题背景

需求为仅聚合类型为“Interne”或“Externe”的身份,编写的Build Rule代码如下:

import sailpoint.connector.DelimitedFileConnector;
Map map = DelimitedFileConnector.defaultBuildMap(cols, record);
String Type = (String) map.get( "TYPE" );
  
if(!Type.contains("Interne") && !Type.contains("Externe")){
          return null;
 }
return map;

执行聚合账户任务时触发错误:

聚合时发生异常。原因:java.lang.RuntimeException: sailpoint.connector.ConnectorException: Build Rule必须返回一个Map。

问题原因

Sailpoint的Build Rule要求方法必须始终返回Map对象,原代码中当身份类型不符合条件时返回null,违反了该约束,导致抛出异常。

修复方案

不能通过返回null过滤记录,应抛出ConnectorException让连接器自动跳过不符合条件的记录,同时保证方法返回值始终为Map。修改后的代码如下:

import sailpoint.connector.DelimitedFileConnector;
import sailpoint.connector.ConnectorException;

Map map = DelimitedFileConnector.defaultBuildMap(cols, record);
String type = (String) map.get("TYPE");

// 采用大小写不敏感判断,避免字段值大小写差异导致的过滤失误
if (!"Interne".equalsIgnoreCase(type) && !"Externe".equalsIgnoreCase(type)) {
    throw new ConnectorException("跳过非目标类型的身份记录");
}

return map;

补充说明

  • 使用equalsIgnoreCase替代contains,可以精准匹配类型值,避免因字段值包含目标字符串但并非完全匹配的情况(比如"InterneTest"会被错误保留)。
  • 抛出ConnectorException后,连接器会跳过当前记录,不会将其纳入聚合结果,同时满足Build Rule的返回值要求。

内容的提问来源于stack exchange,提问作者fffirmin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 18:56:14