Free cookie consent management tool by TermsFeed

Event History List

Function

a!eventHistoryListField( label, labelPosition, instructions, helpTooltip, emptyListMessage, eventData, eventStyle, formatTimestamp, displayUser, displayUserColorScheme, previewListPageSize, pageSize, showWhen, refreshAlways, refreshAfter, refreshInterval, refreshOnReferencedVarChange, refreshOnVarChange, userFilters, eventFilters, CollapseDetailsByDefault, showSearchBox, showReverseSortButton, commentLayout, mentionableUsers, commentCardColor, notificationUrl )

Displays the event history for one or more record types. If you configured record events on your record type, we recommend using the Event History record type to populate this list.

Parameters

Name Keyword Types Description

Label

label

Text

Text to display as the list label.

Label Position

labelPosition

Text

Determines where the label appears. Valid values:

  • ABOVE (default) Displays the label above the component.
  • ADJACENT Displays the label to the left of the component.
  • COLLAPSED Hides the label. The label will still be read by screen readers; see accessibility considerations for more information.
  • JUSTIFIED Aligns the label alongside the component starting at the edge of the page.

Instructions

instructions

Text

Supplemental text about this list.

Help Tooltip

helpTooltip

Text

Displays a help icon with the specified text as a tooltip. The tooltip displays a maximum of 500 characters. The help icon does not show when the label position is "COLLAPSED".

Empty List Message

emptyListMessage

Text

Text to display in the list when no data is available. Default is "No events to display".

Event Data

eventData

List of Event Data

The record event data that populates the list, created using one or more instances of a!eventData().

Event Style

eventStyle

Text

Determines how the component displays. Valid values: "PREVIEW_LIST" (default), "FULL_LIST", "TIMELINE", "LIST_WITH_COMMENTS". The "PREVIEW_LIST", "FULL_LIST", and "LIST_WITH_COMMENTS" styles are sometimes referred to collectively as list styles. See the UX Design System for best practices on when to use which style.

Date Display

formatTimestamp

Text

Determines how the component formats the event data timestamp. Valid values: "DATE", "DATE_TIME" (default), "DATE_TIME_TIMEZONE".

User Image Style

displayUser

Text

Determines if and how to display user avatars. Valid values include: "NONE", "INITIALS" (default), "IMAGE".

User Color Scheme

displayUserColorScheme

Any Type

If no profile picture is available, determines which color scheme to use for users in the event history list. Valid values: "PARACHUTE" (default), "VIBRANT", "CLASSIC" or define a custom color scheme using a!colorSchemeCustom(). See Chart Color Scheme for color scheme examples.

Preview List Page Size

previewListPageSize

Number (Integer)

The maximum number of rows to display in each page of the initial list when the "PREVIEW_LIST" event style is selected. To set the paging for the View All dialog, see pageSize. Valid values include 1-10. Default: 5.

Page Size

pageSize

Number (Integer)

The maximum number of rows to display in each page of the list when the "FULL_LIST" or "TIMELINE" event style is selected. When the "PREVIEW_LIST" event style is selected, this parameter applies to the list as it appears in the View More dialog. Valid values include 1-100. Default: 10.

Visibility

showWhen

Boolean

Determines whether the component is displayed on the interface. When set to false, the component is hidden and is not evaluated. Default: true.

Refresh after each user interaction

refreshAlways

Boolean

When true, eventData will be refreshed after each user interaction and each interval refresh. Default: false.

Refresh after record action completes

refreshAfter

List of Text String

Refreshes eventData data each time a specified action completes. Valid values: "RECORD_ACTION".

Refresh after an interval of time

refreshInterval

Number (Decimal)

How often grid data gets refreshed in minutes. When null, eventData will not be refreshed on an interval. Valid values: "0.5", "1", "2", "3", "4", "5", "10", "30", and "60".

Refresh after referenced variable changes

refreshOnReferencedVarChange

Boolean

When true, grid data will be refreshed each time the value of any variable referenced in the eventData parameter is updated. To refresh grid data when another variable that is not used in the eventData parameter changes, use refreshOnVarChange. Default: true.

Refresh after variable changes

refreshOnVarChange

Any Type

Refreshes data each time any of these specific variables change. This allows you to refresh the data when a variable that is not referenced in the eventData parameter is updated. You can define a single variable (for example, refreshOnVarChange: local!var1) or a list of variables (for example, refreshOnVarChange: {local!var1, local!var2}).

User Filters

userFilters

List of Variant

List of user filter references to display, configured using the recordType! domain. For example, recordType!Order.filters.status. You may only reference user filters defined on the record type used for the eventData. This parameter only applies when there is only one instance of a!eventData().

Component Filters

eventFilters

List of Text

Determines which out-of-the-box filters to show. These filters exist only on the component, not on the record type. Use any combination of the following values {"USER", "EVENT_TYPE", "DATE_RANGE"}.

Initially collapse event details

CollapseDetailsByDefault

Boolean

Determines if the event details are collapsed when the interface first loads. Default: true.

Show search box

showSearchBox

Boolean

Determines if the record search box should be shown. Default: true.

Show reverse sort button

showReverseSortButton

Boolean

Determines if the list should include a button to reverse the event data sort. Default: true.

Comment Layout

commentLayout

Text

If top-level comments are enabled, determines whether to display events in a list or card view. Valid values: "LIST", "CARD" (default).

Mentionable Users

mentionableUsers

Text

If top-level comments are enabled, this constant specifies the group of users who can be mentioned in comments. Mentioned users will receive email notifications when mentioned in comments.

Comment Card Color

commentCardColor

Text

Determines the color applied to the comment background for list and card layouts. Valid values: any valid hex color or "STANDARD" (default).

Notification URL

notificationUrl

Text

Determines the URL the user will be directed to from the notification email. If collaboration is enabled, the URL included in comment notification emails. Accepts a!urlForRecord().

Usage considerations

Using the eventStyle parameter

The eventStyle parameter allows you to display your event history in the following styles:

Style Parameter Value Description
Preview List "PREVIEW_LIST" Displays a short list of events with the ability to view all events in a dialog. The dialog will display a longer list of events that users can search and filter on.

This option is best when you want to display your event history in a record view or alongside other components. You cannot use this style when the component displays in a dialog.
Full List "FULL_LIST" Displays a long list of events that users can search and filter on. If collaboration features are enabled, users can add top-level comments and threaded conversations.

This option is best when you want to display your event history as a single page in a site. If you enabled collaboration features, this option is best when you want the component to focus more on the events than on conversations.
Comment List "LIST_WITH_COMMENTS" Displays a list of events with the ability to add top-level comments, reply in threaded conversations, and view a unified activity stream.

This option is best when you want to enable ad hoc user collaboration in event history list components.
Timeline "TIMELINE" Displays a timeline of events where events are organized by the timestamp field.

This option is best if you want to analyze events based on time rather than event type.

Display automation types

If you are capturing the specific automation type that completed an event, you can use a!automationType() to display the automation type in the details parameter of the component.

For example, in the a!eventData() function, you could use the following expression in the details parameter to explain when an order is completed by automation.

1
2
3
4
5
if(
  a!isNullOrEmpty(fv!data[recordType!Order Event History.fields.user]),
  a!automationType(fv!data[recordType!Order Event History.fields.automationTypeId]) & " completed this order.",
  {}
)

Allow users to collaborate

When you select the Component List style or the Full List style, you can allow users to collaborate on the event history list component by enabling one or both of the following options:

When these options are enabled, users can add context to events, mention other users, and subscribe to conversations so they receive email notifications whenever someone adds to the conversation.

Appian will automatically write any user comments and replies to the Event History record type and Reply Thread record type selected in your record events configuration. If users delete a comment or reply, that data will also be deleted from the record type.

Note:  Users can only delete their own comments and replies. However, any user with Administrator permission to the Event History record type can delete any comment or reply.

Allow users to add comments

To allow users to add comments on the event history list component:

  1. Ensure you've enabled top-level comments in your record events configuration.
  2. Configure the following parameters in the a!eventHistoryListField() function:

    Parameter Action
    eventStyle Set the value to "LIST_WITH_COMMENTS".
    commentLayout (Optional) Specify how to display comments. By default, comments display as cards.
    mentionableUsers (Optional) Specify a constant pointing to the group of users that can be mentioned in a comment.
  3. Configure the following parameters in the a!eventData() function:

    Parameter Action
    allowUsersToComment Set the value to true.
    comment Select the comment field from the Event History record type specified in the recordType parameter.
    baseRecordIdForComment Write an expression indicating the identifier that links a comment to a specific record in the base record type. In most cases, you can reference the common field that links the Event History record type to the base record type.

    You can index using a rule input or local variable to return the identifier. For example, if your interface has a rule input that points to the base record type, this would be: ri!record[recordType!Order.fields.Id].

Allow users to reply

To allow users to reply and start threaded conversations on the event history list component:

  1. Ensure you've enabled threaded conversations in your record events configuration.
  2. In the a!eventData() function, set the allowUsersToReply parameter to true.

Row limit for records-powered components

Interface components that use a record type as the data source are known as records-powered components.

Records-powered components can display a maximum of 5,000 rows. As a best practice, you should not display all 5,000 rows in a component since it may impact performance.

Examples

The following examples illustrate how to configure different styles of the event history list component.

Record type object references are specific to each environment. If you copy and paste these examples into your interface, they will not evaluate. Use them as a reference only.

Preview list of events

The expression looks like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
a!eventHistoryListField(
    label: "Event History Preview List",
    labelPosition: "COLLAPSED",
    eventData: {
      a!eventData(
        recordType: recordType!Order Event History,
        filters: null,
        timestamp: recordType!Order Event History.fields.timestamp,
        user: recordType!Order Event History.fields.user,
        eventTypeName: fv!data[recordType!Order Event History.relationships.eventType.fields.eventName],
        details: if(
          isNullOrEmpty(fv!data[recordType!Order Event History.fields.details]),
          "No additional details",
          fv!data[recordType!Order Event History.fields.details]
        ),
        recordTypeForTag: recordType!Order,
        recordIdentifier: recordType!Order Event History.fields.recordId
      )
    },
    refreshAfter: "RECORD_ACTION",
    eventStyle: "PREVIEW_LIST",
    previewListPageSize: 5,
    pageSize: 10,
    formatTimestamp: "DATE_TIME",
    collapseDetailsByDefault: false,
    displayUser: "IMAGE",
    showSearchBox: true,
    eventFilters: { "EVENT_TYPE", "DATE_RANGE" },
    showReverseSortButton: true
  )

Full list of events

The expression looks like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
a!eventHistoryListField(
    label: "Event History Full List",
    labelPosition: "COLLAPSED",
    eventData: {
      a!eventData(
        recordType: recordType!Order Event History,
        filters: null,
        allowUsersToComment: true,
        /* The "record" rule input is set to Type Order to pass in the specific order */
        baseRecordIdForComment: ri!record[recordType!Order.fields.id],
        timestamp: recordType!Order Event History.fields.timestamp,
        user: recordType!Order Event History.fields.user,
        comment: recordType!Order Event History.fields.comment
        eventTypeName: fv!data[recordType!Order Event History.relationships.eventType.fields.eventName],
        details: if(
          isNullOrEmpty(fv!data[recordType!Order Event History.fields.details]),
          "No additional details",
          fv!data[recordType!Order Event History.fields.details]
        ),
        recordTypeForTag: recordType!Order,
        recordIdentifier: recordType!Order Event History.fields.recordId
      )
    },
    refreshAfter: "RECORD_ACTION",
    eventStyle: "FULL_LIST",
    pageSize: 10,
    formatTimestamp: "DATE_TIME",
    collapseDetailsByDefault: true,
    displayUser: "IMAGE",
    showSearchBox: true,
    eventFilters: { "EVENT_TYPE", "DATE_RANGE" },
    showReverseSortButton: true
  )

Comment list

In this example, the interface has a rule input that points to the Order record type. The baseRecordIdForComment parameter indexes into the rule input to return the identifier of the record associated with the comment.

The expression looks like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
a!eventHistoryListField(
  label: "Event History List with Comments",
  labelPosition: "COLLAPSED",
  eventData: a!eventData(
    recordType: recordType!Order Event History,
    filters: null,
    timestamp: recordType!Order Event History.fields.timestamp,
    user: recordType!Order Event History.fields.user,
    allowUsersToComment: true,
    comment: recordType!Order Event History.fields.comment,
    baseRecordIdForComment: ri!record[recordType!Order.fields.Id],
    allowUsersToReply: true,
    eventTypeName: fv!data[recordType!Order Event History.relationships.orderEventType.fields.eventName],
  ),
  refreshAfter: "RECORD_ACTION",
  eventStyle: "LIST_WITH_COMMENTS",
  commentLayout: "CARD",
  mentionableGroup: cons!ACCOUNT_MANAGERS,
  pageSize: 10,
  displayUser: "IMAGE"
)

Timeline of events

The expression looks like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
a!eventHistoryListField(
    label: "Event History Timeline",
    labelPosition: "COLLAPSED",
    eventData: {
      a!eventData(
        recordType: recordType!Order Event History,
        filters: null,
        timestamp: recordType!Order Event History.fields.timestamp,
        user: recordType!Order Event History.fields.user,
        eventTypeName: fv!data[recordType!Order Event History.relationships.eventType.fields.eventName],
        recordTypeForTag: recordType!Order,
        recordIdentifier: recordType!Order Event History.fields.recordId
      )
    },
    refreshAfter: "RECORD_ACTION",
    eventStyle: "TIMELINE",
    previewListPageSize: 5,
    pageSize: 5,
    formatTimestamp: "DATE_TIME",
    collapseDetailsByDefault: true,
    displayUser: "IMAGE",
    showSearchBox: true,
    eventFilters: { "EVENT_TYPE", "DATE_RANGE" },
    showReverseSortButton: true
  )

Feature compatibility

The table below lists this component's compatibility with various features in Appian.
Feature Compatibility Note
Portals Incompatible
Offline Mobile Incompatible
Sync-Time Custom Record Fields Incompatible
Real-Time Custom Record Fields Incompatible

Custom record fields that evaluate in real time must be configured using one or more Custom Field functions.

Process Reports Incompatible

Cannot be used to configure a process report.

Process Events Incompatible

Cannot be used to configure a process event node, such as a start event or timer event.

Process Autoscaling Compatible

Feedback