Issue with Access Request Status Report Customization

Which IIQ version are you inquiring about?

8.3

Please share any images or screenshots, if relevant.

AccessRequest EntitlementsRequest RolesRequest
        <DataSource objectType="sailpoint.object.IdentityRequestItem" type="Filter"/>
       <Join joinProperty="Identity.id" property="identityRequest.targetId"/>
        <ReportForm>
          <Reference class="sailpoint.object.Form" id="8c123623863c135681863c14ca120044" name="Access Request Status Form"/>
        </ReportForm>
        <Columns>
          <ReportColumnConfig field="requestId" header="rept_lcm_request_status_col_request_id" property="requestId" sortable="true" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="requester" header="rept_lcm_request_status_col_requester" property="requester" sortable="true" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="requestedFor" header="rept_lcm_request_status_col_requested_for" property="requestedFor" sortable="true" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="owner" header="rept_lcm_request_status_col_owner" property="owner" sortable="true" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="created" header="rept_lcm_request_status_col_request_date" property="created" sortable="true" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="operation" header="rept_lcm_request_status_col_operation" property="operation" sortable="true" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="application" header="rept_lcm_request_status_col_app" property="application" sortable="true" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="account" header="rept_lcm_request_status_col_account" property="account" sortable="true" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="attribute" header="rept_lcm_request_status_col_entitlement" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="attributeValue" header="rept_lcm_request_status_col_entitlement_value" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="description" header="rept_lcm_request_status_col_entitlement_description" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="approvers" header="rept_lcm_request_status_col_approver" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="rejecters" header="rept_lcm_request_status_col_rejecter" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="status" header="rept_lcm_request_status_col_status" property="status" sortable="true" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig dateFormat="short" field="completionDateString" header="rept_lcm_request_status_col_completion_date" property="completionDateString" sortable="true" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="requestorComments" header="rept_lcm_request_status_col_requester_comments" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="workItemComments" header="rept_lcm_request_status_col_work_item_comments" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="completionComments" header="rept_lcm_request_status_col_completion_comments" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="attachmentsCount" header="rept_lcm_request_status_col_attachments_count" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="recommendation" header="rept_lcm_request_status_col_recommendation" property="recommendation" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="recommendationReasons" header="rept_lcm_request_status_col_recommendation_reasons" property="recommendationReasons" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="recommendationTimestamp" header="rept_lcm_request_status_col_recommendation_timestamp" property="recommendationTimestamp" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="classificationNames" header="rept_lcm_request_status_col_classifications" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="accessRecommendation" header="rept_col_access_request_recommendation" property="accessRecommendation" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="accessRecommendationReasons" header="rept_col_access_request_recommendation_reasons" property="accessRecommendationReasons" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="accessRecommendationTimestamp" header="rept_col_access_request_recommendation_timestamp" property="accessRecommendationTimestamp" valueClass="java.lang.String" width="110"/>
          <ReportColumnConfig field="iiqElevatedAccess" header="rept_lcm_request_status_col_iiq_elevated_access" property="iiqElevatedAccess" sortable="true" valueClass="java.lang.String" width="110"/>
        </Columns>
      </LiveReport>
    </value>
  </entry>
  <entry key="reportTitle" value="rept_lcm_entitlement_request_status_title"/>
</Map>
Displays information about access requests from LCM in detailed format. rept_input_lcm_request_status_report_apps rept_input_lcm_request_status_report_approver rept_input_lcm_request_status_report_requester rept_input_lcm_request_status_report_entitlements rept_input_lcm_request_status_report_roles rept_input_lcm_request_status_report_target_identity rept_input_lcm_request_status_report_status rept_input_lcm_request_status_report_status rept_input_lcm_request_status_report_status

Share all details about your problem, including any error messages you may have received.

I am trying to create a new access request status report. I want all of the columns that the OOTB provides and I want two new columns added “displayValue” for the entitlement and “requestee email” email address for the identity that the access was requested for. I have tried changing the data type from “Java” to “Filter” but nothing seems to be working on getting those 2 columns added. If I just change the data source type to “Filter” non of the columns from the ootb work. I need help adding just those 2 columns.

Hi @dikshya53,

how have you try to implent the columns? and why do you have changed the type?

Hello Emanuele,
I have tried to write a query to add those two columns, in the chart section of the OOTB template. I have also tried to add script right under the section but when I add the script to the chart section the chart does not work, which I don’t care but the column fields show blank. If I add the script under DataSource I don’t think that script is even being read. I have changed the type to Java again. This is what I have right now.



import sailpoint.object.;
import java.util.
;

             QueryOptions identityEmailOps = new QueryOptions(baseQueryOptions);
                            Filter emailFilter = Filter.eq("identityRequest.targetIdentity.email");
                            identityEmailOps.addFilter(emailFilter);
                            List fields = new ArrayList();
                            fields.add("identityRequest.targetIdentity.email");
              
                           Iterator emailIter = context.search(IdentityRequestItem.class, identityEmailOps, fields);
                            While (emailIter.hasNext()) {
                            object [] row = emailIter.next()
              
                             log.error("Target Identity Email Query - Row 0: " + row[0]);
                             Map val = new HashMap();
                             val.put("category", "Target Identity Email");
                             val.put("value", row[0]);
                             data.add(val);
              }
            QueryOptions approvalOps = new QueryOptions(baseQueryOptions);
            approvalOps.addFilter(Filter.isnull("approvalState"));
            fields = new ArrayList();
            fields.add("identityRequestItem.displayValue");
            
            Iterator approvalIter = context.search(IdentityRequestItem.class, approvalOps, fields);
            while (approvalIter.hasNext()){
            Object[] row = approvalIter.next();
            log.error("Approval Display Value Query = Row 0: " + row[0]);
            Map val = new HashMap();
            val.put("category", "Approval Display Value");
            val.put("value", row[0]);
            data.add(val);
            }
            return data;
            </Source>
          </QueryScript>
        </DataSource>

I think you are a little confuse on report :sweat_smile:

I suggest you to read the blog of @pmandal, my topic and the documentation on reports.

You can insert a script in some particular section and each section execute the code for a spefic part of the report. For example, in chart section you can execute the code to build a chart not for add columns.

But, everything starts on the source, Filter and Java source are different and you cant change the type without review the others sections.

In this case, the report is based on sailpoint.object.IdentityRequestItem object and you can managed like a column every single property on this class. If you want add something there is not in this class you can use the ExtendedColumnScript to create the new columns, but starting from the property of sailpoint.object.IdentityRequestItem class.

Otherwise, you can the filter or a hql query like source, each with own parameters.