Sunday, July 19, 2020

Sailpoint IdenityIQ Application Accounts status Custom Report

Custom Report to get account status of the Application , Basically this report can be used to give the details of all the accounts with the account status for 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 Application Account Status Report" progressMode="Percentage" resultAction="Rename" subType="Identity and User Reports" template="true" type="LiveReport">
  <Attributes>
    <Map>
      <entry key="report">
        <value>
          <LiveReport title="Data Validation Report">
            <DataSource objectType="sailpoint.object.Link" type="Filter">
              <QueryParameters>
                <Parameter argument="applications" property="application.id"/>
              </QueryParameters>
            </DataSource>
            <Columns>
              <ReportColumnConfig field="application" header="rept_account_by_attr_col_application" property="application.name" sortable="true" width="110"/>
              <ReportColumnConfig field="account" header="AccountName" property="id" sortable="true" width="110">
					<RenderScript>
					<Source>
					import sailpoint.object.*;
                    if(null != value){
                         Link link = context.getObjectById(Link.class,value);                   
                         String accName = link.getDisplayName();
                         String nativeName = link.getNativeIdentity();                   
                          if(accName != null){
                              return accName;
                          }
                          else{
                              return nativeName;
                          }
                      }
					</Source>
				</RenderScript>
			 </ReportColumnConfig>
			  <ReportColumnConfig field="Status" header="Status" property="id" sortable="true" width="110">
				<RenderScript>
				<Source>
                import sailpoint.object.*;
                   if(null != value){
                       Link link = context.getObjectById(Link.class,value);
                    if(link.isDisabled()){
                  return "Disabled";
                    }else{
                    return "Active";
                    }
                   }
				</Source>
			</RenderScript>
			</ReportColumnConfig>
            </Columns>
          </LiveReport>
        </value>
      </entry>
    </Map>
  </Attributes>
  <Description>Report for querying accounts native identity and status details.</Description>
  <RequiredRights>
    <Reference class="sailpoint.object.SPRight" name="FullAccessApplicationUserReport"/>
  </RequiredRights>
  <Signature>
    <Inputs>
      <Argument multi="true" name="applications" type="Application">
        <Description>rept_input_user_report_apps</Description>
        <Prompt>Select the applications to include in the report</Prompt>
      </Argument>
    </Inputs>
  </Signature>
</TaskDefinition>