Custom Report to test the Connectivity of the Application , Basically this report can be used to check the Health of the Different Application in Sailpoint Identity IQ
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE TaskDefinition PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<TaskDefinition executor="sailpoint.reporting.LiveReportExecutor" name="VISHAL Target Applications Connection Check" progressMode="Percentage" resultAction="Rename" subType="Configured Resource Reports" template="true" type="LiveReport">
<Attributes>
<Map>
<entry key="TaskDefinition.runLengthAverage"/>
<entry key="TaskDefinition.runLengthTotal"/>
<entry key="TaskDefinition.runs"/>
<entry key="report">
<value>
<LiveReport title="Applications Detail Report">
<DataSource objectType="Application" type="Filter">
<QueryParameters>
<Parameter argument="applications" property="id"/>
<Parameter argument="owners" property="owner.id"/>
</QueryParameters>
</DataSource>
<ReportForm>
<Reference class="sailpoint.object.Form" name="Applications Detail Report Form"/>
</ReportForm>
<Columns>
<ReportColumnConfig field="application" header="rept_app_grid_col_app" property="name" sortable="true" width="110"/>
<ReportColumnConfig field="connectionStatus" header="Target System Connection Status" property="id" sortable="true" width="110">
<RenderScript>
<Source>
import sailpoint.connector.Connector;
import sailpoint.connector.ConnectorFactory;
import sailpoint.connector.*;
import sailpoint.object.Application;
import sailpoint.object.TaskItemDefinition;
import sailpoint.object.TaskItemDefinition.ProgressMode;
import sailpoint.tools.GeneralException;
import sailpoint.tools.Message;
import sailpoint.tools.Util;
import sailpoint.api.SailPointContext;
import sailpoint.object.*;
import java.lang.reflect.Constructor;
import java.util.*;
try {
Application app = (Application) context.getObjectById(Application.class, value);
if (app != null) {
try {
Connector connector = ConnectorFactory.getConnector(app, null);
connector.testConfiguration();
return "Test Connection Successful.";
} catch (Exception e) {
return e.getMessage();
log.error(e);
}
}
} catch (Exception e) {
log.error(e);
throw(e);
}
</Source>
</RenderScript>
</ReportColumnConfig>
</Columns>
</LiveReport>
</value>
</entry>
</Map>
</Attributes>
<Description>Displays configured applications Test Connection</Description>
<RequiredRights>
<Reference class="sailpoint.object.SPRight" name="FullAccessApplicationReport"/>
</RequiredRights>
<Signature>
<Inputs>
<Argument multi="true" name="applications" type="Application">
<Description>rept_input_app_report_apps</Description>
</Argument>
<Argument filterString="capabilitiesString != "null"" multi="true" name="owners" type="Identity">
<Description>rept_input_app_report_owners</Description>
</Argument>
</Inputs>
</Signature>
</TaskDefinition>