Thursday, November 16, 2023

Applications Health Check Report

 <?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE TaskDefinition PUBLIC "sailpoint.dtd" "sailpoint.dtd">

<TaskDefinition executor="sailpoint.reporting.LiveReportExecutor"  name="Application-Test Connection-Report" progressMode="Percentage" resultAction="Rename" subType="Configured Resource Reports" template="true" type="LiveReport">

  <Attributes>

    <Map>

      <entry key="report">

        <value>

          <LiveReport title="Applications Detail Report">

            <DataSource objectType="Application" type="Filter">

              <QueryParameters>

                <Parameter argument="applications" property="id"/>

              </QueryParameters>

            </DataSource>

            <Columns>

              <ReportColumnConfig field="application" header="rept_app_grid_col_app" property="name" sortable="true" width="110"/>

              <ReportColumnConfig field="connectionStatus" header="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);


                    //String appName = app.getName();


                    if (app != null) {


                    //String connName = app.getConnector();


                    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>A list of all application's connection status.  If successfull, "Successful Connection" is displayed.  If not, the connector exception is shown.</Description>

  <RequiredRights>

    <Reference class="sailpoint.object.SPRight" id="c0a8010380581a4b8180581cdee2004a" name="FullAccessApplicationReport"/>

  </RequiredRights>

  <Signature>

    <Inputs>

      <Argument multi="true" name="applications" type="Application">

        <Description>rept_input_app_report_apps</Description>

      </Argument>

    </Inputs>

  </Signature>

</TaskDefinition>


Fetch Members from Workgroup

  import java.util.ArrayList;   import java.util.Iterator;   import java.util.List;   import sailpoint.api.ObjectUtil;   import sailpoint.ob...