Sunday, August 9, 2020

Custom Reports

# IdentityIQ includes a reporting architecture that greatly simplifies the process of developing custom reports by allowing the developer to specify the report requirements in a TaskDefinition XML document. 

# The executor uses IdentityIQ's forms API to generate the UI form for parameters specification and creates the report output based on column configurations specified in the TaskDefinition.

# The TaskDefinition XML specifies the below details :

1. The report's Standard Properties values

2. The report-specific parameters

3. The columns that are available for the report

4. How the data is retrieved for inclusion for the report

5. How the report results are laid out in both the detail and summary sections

Structure of TaskDefinition XML (Report)   :-

<TaskDefinition>

        <Description/>

        <RequiredRights/>

         <Atttributes>

                    <Map>

                            <entry key="report">

                                    <value>

                                            <LiveReport>

                                                    <DataSource>

                                                            <QueyParameters>

                                                                    <Parameter/>

                                                            </QueyParameters>

                                                    </DataSource>

                                                    <Coulumns>

                                                            <ReportColumnConfig>

                                                            </ReportColumnConfig>

                                                    </Coulumns>

                                            </LiveReport>

                                    </value>

                            </entry>

                    </Map>

        </Atttributes>

        <Signature>

                <Inputs>

                        <Argument/>

            </Inputs>

        </Signature>

</TaskDefinition>


Tags Description    :

# <TaskDefinition>

In IdentityIQ, a report is essentially executed as a specialized task. The root element of a report is a <TaskDefinition> element.

e.g    :    <TaskDefinition executor="sailpoint.reporting.LiveReportExecutor" name="Uncorrelated Accounts Report" progressMode="Percentage" resultAction="Rename" subType="Identity and User Reports" template="true" type="LiveReport">

# <DataSource>

The  datasource element specifies the From and Where clauses of the query used to fetch data for the report.

e.g    :    <DataSource type="Java" dataSourceClass="sailpoint.reporting.dataSource.SampleDataSource" defaultSort="name">

#<ReportColumnConfig>

The Select portion (the column list) is specified through the <columns> element in the report definition - specifically, the <ReportColumnConfig> s listed within <Columns> element.

e.g    :    <ReportColumnConfig field="applicationName" header="rept_appName" property="application.name" sortable="true">

# <Argument>

The Arguments specify the values that must be passed to the report at runtime to be usedas report filters.

e.g    :    <Argument multi="true" name="applications" type="Application"/>

DataSource    :    Retrieving Report Data

There are three available datasource types    :    Filter, Java, HQL

1. Filter DataSource    :

A filter datasource executes a projection query to retrieve the data required by the ReportColumnConfigs specified for the report. It employs the Sailpoint filter Object to specify the query. The object whose data is being queried is specified as the objectType for the DataSource and the DataSource type is specified as "Filter".

e.g    :    <datsource objectType="sailpoint.object.Link" type="Filter">

2. Java DataSource    :

A Javaclass dataSource is the next most commonly used report datasource type. The XML to specify this is fairly simple and straightforward; the java class it calls can be as simple or as complex as is required the desired report contents.

3. HQL DataSource

An HQL dataSource is used in rare circumstances but is available for implements who need to execute queries that hit Hibernate directly.

e.g    :    <DataSource type="Hql">

<Query> from ManagedAttribute m where group=true</Query>

</DataSource>

No comments:

Post a Comment

Fetch Members from Workgroup

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