A JDBCBuildMap rule is used to manipulate the raw input data (provided via the rows and columns in the file) and build a map out of the incoming data.
Argument | Type | Purpose |
---|---|---|
result | java.sql.ResultSet |
The current ResultSet from the JDBC Connector. |
connection | java.sql.Connection |
A reference to the current SQL connection. |
state | java.util.Map |
A Map that can be used to store and share data between executions of this rule during a single aggregation run. |
application | sailpoint.object.Application | Attribute value of the identity attribute before the rule runs. |
schema | sailpoint.object.Schema |
A reference to the Schema object for the Delimited File source being read. |
Argument | Type | Purpose |
---|---|---|
map | java.utl.Map |
Map of names/values representing a row of data from the JDBC resource |
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Rule PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Rule name="Example Rule" type="JDBCBuildMap">
<Description>Describe your rule here.</Description>
<Source><![CDATA[
// Add your logic here.
]]></Source>
</Rule>
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Rule PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Rule name="Example Rule" type="JDBCBuildMap">
<Description>
This basic rule performs the default mapping and then replaces the “status” value read from the database with a
Boolean “inactive” attribute in the map.
</Description>
<Source><![CDATA[
import sailpoint.connector.*;
Map map = JDBCConnector.buildMapFromResultSet(result, schema);
String status = (String) map.get("status");
if( "inactive".equals(status) ) {
map.put("inactive", true);
} else {
map.put("inactive", false);
}
map.remove("status");
return map;
]]></Source>
</Rule>
I have changed status column alias to inactive. It is correctly reflecting in account properties but not in account status. Is it only build MAP option available to reflect account status for JDBC source source?