How to add new column in Out of Box report(Access Request Status Report)

Hello All,

I want to add new column to get entitlement Id in Access Request Status Report.
Can anyone help with the solution how we can achieve this?

Thanks & Regards
Maruthi Kumar

Hi @Maruthikumar ,

I hope we have column ready. We can use it. Can you pleaes try to add the below lin in Columns entry and test?

<ReportColumnConfig field="id" header="Entitlement ID" property="id" sortable="true" valueClass="java.lang.String" width="110"/>

Hi @bhanuprakashkuruva

Thanks for the reply. We have created custom new attribute(Entitlement Id which stores our custom value) under Entitlement Catalog Configuration(Global Setting) this we need to get in the report as column.

Can you help to get this attribute in report?

Thanks & Regards,
Maruthi Kumar

Oh, ok.

Could you please check with the below code?

<ReportColumnConfig field="entitlementId" header="Entitlement Id" property="id" sortable="true" width="110">
<RenderScript>
  <Source>
      import sailpoint.object.*;
      import java.util.*;

      String returnValue = "";
      QueryOptions ops = new QueryOptions();
      ops.addFilter(Filter.eq("id", value));
      Iterator iter = context.search(IdentityRequestItem.class, ops);

      while(iter.hasNext()){
        returnValue = iter.getValue().toString();
      }
      return returnValue;
  </Source>
</RenderScript>
</ReportColumnConfig>

I haven’t tested it. Please test and let me know. Also, please check IdentityRequestItem what values containing in IdentityReuest Object and see if the value is that only you are looking for, or not? If not check what attribute it holds and get that form the object.

1 Like

Hi @bhanuprakashkuruva ,

I have tested but value is returning null under entitlement id column.
The property value(property=“id”) which we used itself getting empty tried printing it.

Thanks & Regards,
Maruthi Kumar

@Maruthikumar

Try to put logs. as below. try with the code.

<ReportColumnConfig field="entitlementId" header="Entitlement Id" property="id" sortable="true" width="110">
<RenderScript>
  <Source>
      import sailpoint.object.*;
      import java.util.*;

      String returnValue = "";
	  
	  log.error("The id of the IdentityRequestItem is: "+value);
      IdentityRequestItem identityRequestItem = context.getObjectById(IdentityRequestItem.class, value);
	  returnValue = identityRequestItem.getNativeIdentity();
		
	  log.error("The value is: "+returnValue);

      return returnValue;
  </Source>
</RenderScript>
</ReportColumnConfig>
1 Like

Hi @bhanuprakashkuruva ,

Still same logs not printing I think its not entering into render script.

Regards,
Maruthi Kumar

@Maruthikumar
Please share your task definition xml of custom report and Sample managed attribute xml once.

Hi @iamksatish

Its not custom report Out Of Box report only. Please find the XML attached.
Entitlement Id is custom attribute xml also attched.

Regards,
Maruthi Kumar
Access Request Status Report.xml (12.0 KB)
Managed Attribute Sample.xml (788 Bytes)

Hi @Maruthikumar,

The report that you are referring is having java data source and so it needs to be checked if this particular column is even accessible in this report or not.

As per sample shared by you, you just want nativeIdentity so you may use directly with IdentityRequestItem with filter in data source and query this attribute.

Thanks

Hi @Maruthikumar,

RenderScript will not work with Java datasource. Java reports handle their own rendering tasks, including calling RenderScript when necessary. However, RenderScript will work with Filter datasource.

Regards,
Arun

Hi @Arun-Kumar,

Thanks for the reply, Without render script is there any way achieve custom attribute value from java data source itself?

Regards,
Maruthi Kumar

Hi @Maruthikumar,

If you use the out-of-the-box report with Java data source, you will only get the fields that are defined within it(java class file). However, customizing the OOTB java data source to obtain additional fields is not recommended. Instead, you can create a custom report using a filter data source to meet your specific requirements.

Regards,
Arun

Hi @bhanuprakashkuruva ,
As the report is of Java datasource type, adding a new report column config field in the report xml, may not help (as the new field is not accessible in the datasource).

I would recommend to extend the LcmIdentityRequestStatusJavaDataSource and add the new column details in the extended class and use the extended class as datasource in the report xml.
Use the same column name in reportColumnConfig to get the value in the report.

Hope this helps.

1 Like

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.