I’m working on a custom Live Report in SailPoint IdentityIQ to display accounts grouped by applications. Right now, my report shows basic fields like identity.name, identity.displayName, and account.displayName.
Problem
I want to add more account-level attributes to the report — for example, a field like accountCreated (which should reflect the account creation date). But I’m having trouble figuring out how to display custom account attributes in the LiveReport XML.
Additionally, the attribute names vary across applications:
Some apps use accountCreated
Others use createdAt
And some just use created
Question
How can I reference these custom attributes from the account (Link object) in my Live Report XML?
What’s the best way to handle the inconsistency of attribute names across different applications?
Here’s a snippet of my current XML for reference:
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE TaskDefinition PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<TaskDefinition created="1745466789945" executor="sailpoint.reporting.LiveReportExecutor" id="7f00010196651d11819665ed90380008" name="Users by Application Report" progressMode="Percentage" resultAction="Rename" subType="Identity and User Reports" template="true" type="LiveReport">
<Attributes>
<Map>
<entry key="report">
<value>
<LiveReport title="Users by Application Report">
<DataSource objectType="Link" type="Filter">
<QueryParameters>
<Parameter argument="applications" property="application.id"/>
</QueryParameters>
</DataSource>
<Columns>
<ReportColumnConfig field="application" header="rept_users_by_app_col_app" property="application.name" sortable="true" width="110"/>
<ReportColumnConfig field="identityDisplayName" header="rept_users_by_app_col_identity_display" property="identity.displayName" sortable="true" width="110"/>
<ReportColumnConfig field="identityName" header="rept_users_by_app_col_identity" property="identity.name" sortable="true" width="110"/>
<ReportColumnConfig field="account" header="rept_users_by_app_col_account_id" property="nativeIdentity" sortable="true" width="110"/>
<ReportColumnConfig field="accountDisplayName" header="rept_users_by_app_col_account_name" property="displayName" sortable="true" width="110"/>
</Columns>
</LiveReport>
</value>
</entry>
</Map>
</Attributes>
<Description>A detailed view of the users in the system categorized by the applications that they belong to.</Description>
<RequiredRights>
<Reference class="sailpoint.object.SPRight" id="7f00010196161e778196165ef5c6004a" name="FullAccessApplicationUserReport"/>
</RequiredRights>
<Signature>
<Inputs>
<Argument multi="true" name="applications" type="Application">
<Description>rept_input_app_user_report_apps</Description>
</Argument>
</Inputs>
</Signature>
</TaskDefinition>
I’d really appreciate it if anyone could:
Suggest how to include a custom attribute like accountCreated in the <ReportColumnConfig>
Share an example of how you’ve handled different attribute names across applications in a Live Report
If it is safe to assume that the account creation date and the link creation date on the identity for that application are same, you can directly use link.created property to pull that information. If not, you can use the render script within the reportcolumnconfig to write the code and pull the required data. Please refer to the reports guide of Sailpoint IIQ for more information.
Only option which i can think of is you need to create some link entended attribute lets say created and then you need to populate createAt , createOn etc field of differnet application to the extended attribute create and then can be shown in the report .
I got more information, it’s seem like the xml code will show the attribute value from <Link xx=“xyz”.>, do you know how can i access the attribute? to show the attribute inside the tag like <entry key="region" value="Benin"/> in the Identity example xml?
A good way to handle inconsistent attribute names across applications is by defining an extended attribute in the Link object using ObjectConfig, and referencing that in your report via ReportColumnConfig. This provides a unified view and makes reporting more consistent.
Sample ObjectAttribute definition to standardize an attribute like accountCreatedDate from different applications:
If you’re using multiple ReportColumnConfig definitions and want to simplify the setup, you can also use an ExtendedColumnScript. This keeps your code cleaner and makes it easier to maintain. Add the following block after your DataSource section in the report definition: