# Dynamic date in reports

**URL:** <https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769>\
**Category:** IIQ Discussion and Questions\
**Tags:** identityiq, transforms, provisioning, workflows, apis, rules, aggregation, roles\
**Created:** [March 27, 2026, 8:44am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769 "2026-03-27T08:44:11Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![rishavghoshacc](https://avatars.discourse-cdn.com/v4/letter/r/dc4da7/32.png) [@rishavghoshacc](https://developer.sailpoint.com/discuss/u/rishavghoshacc)\
**Post date:** [March 27, 2026, 8:44am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/1 "2026-03-27T08:44:12Z")

</div>

Hi all,

We want to set up a report to run on a scheduled basis and provide all the provisioning transaction details from IIQ.

We have got the OOTB report “Provisioning Transaction Report“ but are trying to find a way to set the start and end date of the report to be taken dynamically every day as the last day and current day every time it runs.

How can we make this dynamic?

Thanks in advance

---

<div class="post-metadata">

**Author:** ![neel193](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/neel193/32/34038_2.png) [@neel193](https://developer.sailpoint.com/discuss/u/neel193)\
**Post date:** [March 27, 2026, 8:56am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/2 "2026-03-27T08:56:52Z")

</div>

@rishavghoshacc You can modify the report or create a new report and add a query parameter with a queryScript which can set the date range. You can also introduce a report form where you can give options to select a period like yesterday, today, 7days, etc.

Please refer to doc, Page 110 for Report Forms and Page 114-115 to understand about query parameter.: [8.4 IdentityIQ Reports Guide - Compass](https://community.sailpoint.com/t5/IdentityIQ-Product-Guides/8-4-IdentityIQ-Reports-Guide/ta-p/240708)

---

<div class="post-metadata">

**Author:** ![SivaprakashRNTBCI](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/sivaprakashrntbci/32/35826_2.png) [@SivaprakashRNTBCI](https://developer.sailpoint.com/discuss/u/SivaprakashRNTBCI)\
**Post date:** [March 27, 2026, 9:15am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/3 "2026-03-27T09:15:31Z")

</div>

@rishavghoshacc Try the value script available for parameter to set the date.

```auto
<Parameter>
      <ValueScript>
            <Source>
              **your code to set date**
             </Source>
       </ValueScript>
</Parameter>

```

---

<div class="post-metadata">

**Author:** ![kumarSinghM](https://avatars.discourse-cdn.com/v4/letter/k/ecb155/32.png) [@kumarSinghM](https://developer.sailpoint.com/discuss/u/kumarSinghM)\
**Post date:** [March 27, 2026, 10:21am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/4 "2026-03-27T10:21:24Z")

</div>

@rishavghoshacc To get the start Date and endDate field dynamically based on your logic, you can modify the existing report or clone the same report and write the queryScript to set the date range.

---

<div class="post-metadata">

**Author:** ![Chathuryas](https://avatars.discourse-cdn.com/v4/letter/c/ee59a6/32.png) [@Chathuryas](https://developer.sailpoint.com/discuss/u/Chathuryas)\
**Post date:** [March 29, 2026, 9:50am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/5 "2026-03-29T09:50:38Z")

</div>

Hi @rishavghoshacc ,

You can use the following report to get the provisioning transactions and customize according to your requirements.

The following is a customized OOTB report to get the provisioning transactions in a day

Form :

```auto
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE Form PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<Form hidden="true" name="Custom Provisioning Transaction Report Form" type="Report">
  <Section columns="2" label="report_provisioning_transaction_form" name="customProperties">
    <Field displayName="report_provisioning_application" helpKey="help_report_provisioning_application" multi="true" name="applications" type="ProvisioningTransaction" value="ref:applications">
      <Attributes>
        <Map>
          <entry key="objectColumn" value="applicationName"/>
        </Map>
      </Attributes>
    </Field>
    <Field displayName="report_provisioning_identity" helpKey="help_report_provisioning_identity" multi="true" name="identities" type="Identity" value="ref:identities">
      <Attributes>
        <Map>
          <entry key="valueProperty" value="name"/>
        </Map>
      </Attributes>
    </Field>
    <Field displayName="report_provisioning_integration" helpKey="help_report_provisioning_integration" multi="true" name="integration" type="ProvisioningTransaction" value="ref:integration">
      <Attributes>
        <Map>
          <entry key="objectColumn" value="integration"/>
        </Map>
      </Attributes>
    </Field>
    <Field displayName="report_provisioning_native_identity" helpKey="help_report_provisioning_account_display_name" name="accountDisplayName" type="string" value="ref:accountDisplayName"/>
    <Field displayName="report_provisioning_operation" helpKey="help_report_provisioning_operation" multi="true" name="operation" type="string" value="ref:operation">
      <AllowedValuesDefinition>
        <Script>
          <Source>
                String[] operations = {
                    "Create",
                    "Delete",
                    "Disable",
                    "Enable",
                    "Lock",
                    "Modify",
                    "Unlock"
                };

                List values = new ArrayList();
                for (String operation : operations) {
                    List value = new ArrayList();
                    value.add(operation);
                    value.add(operation);

                    values.add(value);
                }

                return values;
              </Source>
        </Script>
      </AllowedValuesDefinition>
    </Field>
    <Field displayName="report_provisioning_source" helpKey="help_report_provisioning_source" multi="true" name="source" type="string" value="ref:source">
      <AllowedValuesDefinition>
        <Script>
          <Source>
                String[] sources = {
                    "Batch",
                    "Certification",
                    "GroupManagement",
                    "IdentityRefresh",
                    "LCM",
                    "PAM",
                    "PolicyViolation",
                    "RapidSetup",
                    "RoleChangePropagation",
                    "Rule",
                    "UI",
                    "Unknown",
                    "WebService",
                    "Workflow"
                };

                List values = new ArrayList();
                for (String source : sources) {
                    List value = new ArrayList();
                    value.add(source);
                    value.add(source);

                    values.add(value);
                }

                return values;
              </Source>
        </Script>
      </AllowedValuesDefinition>
    </Field>
    <Field displayName="report_provisioning_status" helpKey="help_report_provisioning_status" multi="true" name="status" type="string" value="ref:status">
      <AllowedValuesDefinition>
        <Script>
          <Source>
                      import sailpoint.object.*;
                      List enums = new ArrayList();
                      for(ProvisioningTransaction.Status enumItem : ProvisioningTransaction.Status.values()) {
                        List item = new ArrayList();
                        item.add(enumItem.toString());
                        item.add(enumItem.getLocalizedMessage());
                        enums.add(item);
                      }
                      return enums;
                  </Source>
        </Script>
      </AllowedValuesDefinition>
    </Field>
    <Field displayName="report_provisioning_type" helpKey="help_report_provisioning_type" multi="true" name="type" type="string" value="ref:type">
      <AllowedValuesDefinition>
        <Script>
          <Source>
                      import sailpoint.object.*;
                      List enums = new ArrayList();
                      for(ProvisioningTransaction.Type enumItem : ProvisioningTransaction.Type.values()) {
                        List item = new ArrayList();
                        item.add(enumItem.toString());
                        item.add(enumItem.getLocalizedMessage());
                        enums.add(item);
                      }
                      return enums;
                  </Source>
        </Script>
      </AllowedValuesDefinition>
    </Field>
    <Field columnSpan="1" displayName="report_provisioning_forced" helpKey="help_report_provisioning_forced" name="forced" type="boolean" value="ref:forced"/>
  </Section>
</Form>

```

TaskDefnition :

```auto
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE TaskDefinition PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<TaskDefinition executor="sailpoint.reporting.LiveReportExecutor" name="Custom Provisioning Transaction Object Report" progressMode="Percentage" resultAction="Rename" subType="Administration Reports" template="true" type="LiveReport">
  <Attributes>
    <Map>
      <entry key="TaskDefinition.runLengthAverage" value="4"/>
      <entry key="TaskDefinition.runLengthTotal" value="4"/>
      <entry key="TaskDefinition.runs" value="1"/>
      <entry key="report">
        <value>
          <LiveReport title="Provisioning Transaction Object Report">
            <DataSource objectType="ProvisioningTransaction" type="Filter">
              <OptionsScript>
                <Source>
                  import org.apache.log4j.Logger;

                  import sailpoint.object.QueryOptions;
                  import sailpoint.object.Filter;

                  import java.util.Date;
                  import java.time.LocalDate;
                  import java.time.ZoneId;
                  import java.time.ZonedDateTime;

                  if(options!=null){

                  ZonedDateTime startdate = ZonedDateTime.now();

                  ZonedDateTime today = startdate.minusDays(0).withHour(0).withMinute(0).withSecond(0).withNano(0); 

                  Date endDate = Date.from(today.toInstant());

                  Date startDate = Date.from(startdate.toInstant());

                  Filter filter1 = Filter.ge("created",endDate);

                  Filter filter2 = Filter.le("created",startDate);

                  options.addFilter(filter1);
                  options.addFilter(filter2);

                  }

                  return options;
                </Source>
              </OptionsScript>
              <QueryParameters>
                <Parameter argument="identities" property="identityName"/>
                <Parameter argument="applications" property="applicationName"/>
                <Parameter argument="integration" property="integration">
                  <QueryScript>
                    <Source>

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

                      if (value != null &amp;&amp; !value.isEmpty()){
                      queryOptions.addFilter(Filter.ignoreCase(Filter.like("integration", value, Filter.MatchMode.START)));
                      }

                      return queryOptions;

                    </Source>
                  </QueryScript>
                </Parameter>
                <Parameter argument="accountDisplayName" property="accountDisplayName">
                  <QueryScript>
                    <Source>

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

                      if (value != null &amp;&amp; !value.isEmpty()){
                      queryOptions.addFilter(Filter.ignoreCase(Filter.like("accountDisplayName", value, Filter.MatchMode.START)));
                      }

                      return queryOptions;

                    </Source>
                  </QueryScript>
                </Parameter>
                <Parameter argument="status" property="status"/>
                <Parameter argument="type" property="type"/>
                <Parameter argument="operation" property="operation"/>
                <Parameter argument="source" property="source"/>
                <Parameter argument="creationDate" property="created" valueClass="daterange"/>
                <Parameter argument="forced" property="forced">
                  <QueryScript>
                    <Source>

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

                      if (value == true){
                      queryOptions.addFilter(Filter.eq("forced", true));
                      }

                      return queryOptions;

                    </Source>
                  </QueryScript>
                </Parameter>
              </QueryParameters>
            </DataSource>
            <ReportForm>
              <Reference class="sailpoint.object.Form" id="0a00020f9d381887819d3820f5cb0014" name="Custom Provisioning Transaction Report Form"/>
            </ReportForm>
            <Columns>
              <ReportColumnConfig field="name" header="report_provisioning_id" property="name" sortable="true" width="110">
                <RenderScript>
                  <Source>

                    import sailpoint.tools.Util;
                    return Util.stripLeadingChar(value, '0');

                  </Source>
                </RenderScript>
              </ReportColumnConfig>
              <ReportColumnConfig field="applicationName" header="report_provisioning_application" property="applicationName" sortable="true" width="110"/>
              <ReportColumnConfig field="identityDisplayName" header="report_provisioning_identity_display" property="identityDisplayName" sortable="true" width="110"/>
              <ReportColumnConfig field="identityName" header="report_provisioning_identity" property="identityName" sortable="true" width="110"/>
              <ReportColumnConfig field="integration" header="report_provisioning_integration" property="integration" sortable="true" width="110"/>
              <ReportColumnConfig field="nativeIdentity" header="report_provisioning_native_identity" property="nativeIdentity" sortable="true" width="110"/>
              <ReportColumnConfig field="accountDisplayName" header="report_provisioning_account_display" property="accountDisplayName" sortable="true" width="110"/>
              <ReportColumnConfig field="status" header="report_provisioning_status" property="status" sortable="true" width="110"/>
              <ReportColumnConfig field="type" header="report_provisioning_type" property="type" sortable="true" width="110"/>
              <ReportColumnConfig field="operation" header="report_provisioning_operation" property="operation" sortable="true" width="110"/>
              <ReportColumnConfig field="source" header="report_provisioning_source" property="source" sortable="true" width="110"/>
              <ReportColumnConfig field="created" header="report_provisioning_date" property="created" sortable="true" width="110"/>
              <ReportColumnConfig field="forced" header="report_provisioning_forced" property="forced" sortable="true" width="110"/>
            </Columns>
          </LiveReport>
        </value>
      </entry>
    </Map>
  </Attributes>
  <Description>Displays provisioning transactions.</Description>
  <RequiredRights>
    <Reference class="sailpoint.object.SPRight" name="FullAccessProvisioningTransactionReport"/>
  </RequiredRights>
  <Signature>
    <Inputs>
      <Argument multi="true" name="applications" type="Application">
        <Description>help_report_provisioning_application</Description>
      </Argument>
      <Argument multi="true" name="identities" type="Identity">
        <Description>help_report_provisioning_identity</Description>
      </Argument>
      <Argument name="integration" type="string">
        <Description>help_report_provisioning_integration</Description>
      </Argument>
      <Argument name="accountDisplayName" type="string">
        <Description>help_report_provisioning_account_display_name</Description>
      </Argument>
      <Argument name="operation" type="string">
        <Description>help_report_provisioning_operation</Description>
      </Argument>
      <Argument name="source" type="string">
        <Description>help_report_provisioning_source</Description>
      </Argument>
      <Argument name="status" type="string">
        <Description>help_report_provisioning_status</Description>
      </Argument>
      <Argument name="type" type="string">
        <Description>help_report_provisioning_type</Description>
      </Argument>
      <Argument name="creationDate" type="date">
        <Description>help_report_provisioning_date</Description>
      </Argument>
      <Argument name="forced" type="boolean">
        <Description>help_report_provisioning_forced</Description>
      </Argument>
    </Inputs>
  </Signature>
</TaskDefinition>

```

---

<div class="post-metadata">

**Author:** ![r\_pragati](https://avatars.discourse-cdn.com/v4/letter/r/41988e/32.png) [@r\_pragati](https://developer.sailpoint.com/discuss/u/r_pragati)\
**Post date:** [March 29, 2026, 11:55pm UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/6 "2026-03-29T23:55:01Z")

</div>

I would recommend this approach. Thank you.

---

<div class="post-metadata">

**Author:** ![Chathuryas](https://avatars.discourse-cdn.com/v4/letter/c/ee59a6/32.png) [@Chathuryas](https://developer.sailpoint.com/discuss/u/Chathuryas)\
**Post date:** [March 31, 2026, 6:04am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/7 "2026-03-31T06:04:04Z")

</div>

Hi @rishavghoshacc ,

Schedule the above report to run the report daily to get the provisioning transactions occured within a day.

---

<div class="post-metadata">

**Author:** ![neel193](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/neel193/32/34038_2.png) [@neel193](https://developer.sailpoint.com/discuss/u/neel193)\
**Post date:** [March 31, 2026, 4:51pm UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/8 "2026-03-31T16:51:39Z")

</div>

@rishavghoshacc Have you tried the provided code samples and documents? Please let us know if you need any further help.

---

<div class="post-metadata">

**Author:** ![rishavghoshacc](https://avatars.discourse-cdn.com/v4/letter/r/dc4da7/32.png) [@rishavghoshacc](https://developer.sailpoint.com/discuss/u/rishavghoshacc)\
**Post date:** [April 8, 2026, 8:00am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/9 "2026-04-08T08:00:35Z")

</div>

@Chathuryas How would I get the message for the transaction in the report. I need this for any failed transaction

---

<div class="post-metadata">

**Author:** ![Chathuryas](https://avatars.discourse-cdn.com/v4/letter/c/ee59a6/32.png) [@Chathuryas](https://developer.sailpoint.com/discuss/u/Chathuryas)\
**Post date:** [April 8, 2026, 8:16am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/10 "2026-04-08T08:16:07Z")

</div>

Hi @rishavghoshacc ,

you can use the **RenderScript** to get the error message from the **ProvsioningTransaction** Object

---

<div class="post-metadata">

**Author:** ![rishavghoshacc](https://avatars.discourse-cdn.com/v4/letter/r/dc4da7/32.png) [@rishavghoshacc](https://developer.sailpoint.com/discuss/u/rishavghoshacc)\
**Post date:** [April 8, 2026, 8:32am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/11 "2026-04-08T08:32:25Z")

</div>

@Chathuryas Can you please help me with the code. I am getting an error while doing this

---

<div class="post-metadata">

**Author:** ![Chathuryas](https://avatars.discourse-cdn.com/v4/letter/c/ee59a6/32.png) [@Chathuryas](https://developer.sailpoint.com/discuss/u/Chathuryas)\
**Post date:** [April 8, 2026, 10:48am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/12 "2026-04-08T10:48:04Z")

</div>

Hi @rishavghoshacc ,

Append the following code to the above report to get the error messages of failed provisioning transactions.

```auto
 <ReportColumnConfig field="errorMsg" header="Error Message" property="attributes.accessRequestId" sortable="true" width="110">
                <RenderScript>
                  <Source>

                    import sailpoint.object.IdentityRequest;
                    import sailpoint.object.ProvisioningResult;
                    import sailpoint.tools.Util;
                    import sailpoint.tools.Message;
                    import sailpoint.tools.Message.Type;

                    String errorMessage = "";

                    if(value!=null){

                    IdentityRequest identityRequest = context.getObjectByName(IdentityRequest.class,value);

                    if(identityRequest!=null){

                    List messages = identityRequest.getMessagesByType(Message.Type.Error);
                    
                    if(messages!=null &amp;&amp; !messages.isEmpty()){

                    for(Message message : messages){

                    errorMessage = errorMessage + " " + message.toString();

                    }

                    }

                    }

                    }

                    return errorMessage;
                  </Source>
                </RenderScript>
				
				</ReportColumnConfig

```

---

<div class="post-metadata">

**Author:** ![rishavghoshacc](https://avatars.discourse-cdn.com/v4/letter/r/dc4da7/32.png) [@rishavghoshacc](https://developer.sailpoint.com/discuss/u/rishavghoshacc)\
**Post date:** [April 8, 2026, 11:38am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/13 "2026-04-08T11:38:48Z")

</div>

@Chathuryas This does not return any message for the failed transaction

---

<div class="post-metadata">

**Author:** ![Chathuryas](https://avatars.discourse-cdn.com/v4/letter/c/ee59a6/32.png) [@Chathuryas](https://developer.sailpoint.com/discuss/u/Chathuryas)\
**Post date:** [April 8, 2026, 11:55am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/14 "2026-04-08T11:55:29Z")

</div>

Hi @rishavghoshacc ,

Can you check if the corresponding provisioning transaction objects has any message from the debug page. This code returns the message only if there is any message in the corresponding ProvisioningTransaction object and has a accessRequestId

---

<div class="post-metadata">

**Author:** ![rishavghoshacc](https://avatars.discourse-cdn.com/v4/letter/r/dc4da7/32.png) [@rishavghoshacc](https://developer.sailpoint.com/discuss/u/rishavghoshacc)\
**Post date:** [April 8, 2026, 1:37pm UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/15 "2026-04-08T13:37:18Z")

</div>

@Chathuryas The objects does not have a accessReqeustId

```auto
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE ProvisioningTransaction PUBLIC "sailpoint.dtd" "sailpoint.dtd">
<ProvisioningTransaction applicationName="AD-Direct" created="1xxxx88" id="0xxxxc" identityDisplayName="Vxxxxi" identityName="Vxxxxx" integration="AD-Direct" modified="171xxxx8" name="00xxxx23" operation="Modify" source="RoleChangePropagation" status="Failed" type="Auto">
  <Attributes>
    <Map>
      <entry key="request">
        <value>
          <AccountRequest application="AD-Direct" op="Modify">
            <Attributes>
              <Map>
                <entry key="provisioningTransactionId" value="0a99xxxx559c"/>
              </Map>
            </Attributes>
            <AttributeRequest name="memberOf" op="Add" value="CN=DL_ xxxx,OU=Groups,OU=xxxx,OU=xxxx,OU=Bxxxxxx,DC=local"/>
            <ProvisioningResult status="failed">
              <Errors>
                <Message key="Native Identity should not be null or empty" type="Error"/>
              </Errors>
            </ProvisioningResult>
          </AccountRequest>
        </value>
      </entry>
    </Map>
  </Attributes>
</ProvisioningTransaction>

```

---

<div class="post-metadata">

**Author:** ![neel193](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/neel193/32/34038_2.png) [@neel193](https://developer.sailpoint.com/discuss/u/neel193)\
**Post date:** [April 8, 2026, 2:45pm UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/16 "2026-04-08T14:45:50Z")

</div>

@rishavghoshacc Not every transaction is associated with access request. to print the message, read it from ProvisioningResult. Could you please share your current report which you have developed, will update and send you back.

---

<div class="post-metadata">

**Author:** ![Chathuryas](https://avatars.discourse-cdn.com/v4/letter/c/ee59a6/32.png) [@Chathuryas](https://developer.sailpoint.com/discuss/u/Chathuryas)\
**Post date:** [April 9, 2026, 5:14am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/17 "2026-04-09T05:14:36Z")

</div>

@rishavghoshacc , I have tried without the using the accessRequestId but the ProvisioningResult is always returning as null even though the ProvisioningResult existed in the ProvisioningTransaction hence I suggested this approach.

---

<div class="post-metadata">

**Author:** ![rishavghoshacc](https://avatars.discourse-cdn.com/v4/letter/r/dc4da7/32.png) [@rishavghoshacc](https://developer.sailpoint.com/discuss/u/rishavghoshacc)\
**Post date:** [April 9, 2026, 5:20am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/18 "2026-04-09T05:20:32Z")

</div>

@neel193

[Custom Provisioning Transaction Object Report.xml](https://developer.sailpoint.com/discuss/uploads/short-url/6aFHWajbTl2NuJcWs8PweY3WK2c.xml) (9.6 KB)

---

<div class="post-metadata">

**Author:** ![neel193](https://sea1.discourse-cdn.com/sailpoint/discuss/user_avatar/developer.sailpoint.com/neel193/32/34038_2.png) [@neel193](https://developer.sailpoint.com/discuss/u/neel193)\
**Post date:** [April 9, 2026, 5:32am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/19 "2026-04-09T05:32:20Z")

</div>

@rishavghoshacc Please add a column and renderscript like below:

```auto
 <ReportColumnConfig field="errorMsg" header="ErrorMessage" property="attributes.request" sortable="true" width="110">
                <RenderScript>
                  <Source>
                return value.getResult().getErrors().toString();
                  </Source>
                </RenderScript>
              </ReportColumnConfig>

```

Please add a null check in script, so it should not fail in case there is no result or no error. See the attached email how it’ll look like.

 ![image](https://global.discourse-cdn.com/sailpoint/original/3X/a/4/a44f4f83016f37382eec29b73ba76e06c277875e.png)

---

<div class="post-metadata">

**Author:** ![Chathuryas](https://avatars.discourse-cdn.com/v4/letter/c/ee59a6/32.png) [@Chathuryas](https://developer.sailpoint.com/discuss/u/Chathuryas)\
**Post date:** [April 9, 2026, 5:40am UTC](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769/20 "2026-04-09T05:40:17Z")

</div>

@neel193 The screenshot of the ProvisioningTransaction you have shared has accessRequest. So, it will return the error message, The issue is if the provisioningTransaction does not have a identityRequest Id , then while using request in attributes and returning result, the result is always returning as null even though it exists in the ProvisioningTransaction object in debug page.

value.getResult(); // This is returning as null if the ProvisioningTransaction does not have accessRequestid , even if we use null check, it will not enter the block as it is returning null hence it is not possible to get error message without accessRequestId.

```auto
 <ReportColumnConfig field="errorMsg" header="Error Message" property="attributes.request" sortable="true" width="110">
                <RenderScript>
                  <Source> import sailpoint.object.ProvisioningPlan.AccountRequest;
                import sailpoint.object.ProvisioningResult;
                import sailpoint.tools.Util;
                import sailpoint.tools.Message;

                String errorMessage = "";

                if(value!=null &amp;&amp; value instanceof AccountRequest){

                AccountRequest accReq = (AccountRequest) value;

                ProvisioningResult result = accReq.getResult();

                if(result!=null ){

                List messages = result.getErrors();

                if(messages!=null &amp;&amp; !messages.isEmpty()){

                for(Message message : messages){

                errorMessage = errorMessage + " " + message.toString();

                }

                }

                }

                }

                return errorMessage;

              </Source>
            </RenderScript>
          </ReportColumnConfig>

```

[Next page](https://developer.sailpoint.com/discuss/t/dynamic-date-in-reports/200769.md?page=2)
