The walk-throughs on this page will help you create your first records. They are split up by source type and increase in complexity as you progress.
Use the data provided to understand how the configurations work. Then, try it with your own data. Keep in mind, the final configurations will need to change if your data has different field names.
The content below assumes a basic familiarity with interfaces and focuses more on the specifics of selecting a data source and modifying the list view and related actions for a record. Consider going through the Record Design page before proceeding.
See also: Expression-Backed Record Tutorial
The Appian Tutorial application is used to contain the design objects created while working through this tutorial.
To create the Appian Tutorial application
The application contents view displays. Right now the application is empty. Each design object that you create during the course of this tutorial will appear in this list and be associated with the tutorial application.
The steps below show how to create a simple entity-backed record type for employee information saved to a data store entity.
Before we begin, let's create the data store entity and its data:
Employees
that references the Employee
CDT and publish its data store.
id | firstName | lastName | department | title | phoneNumber | startDate |
---|---|---|---|---|---|---|
1 | John | Smith | Engineering | Director | 555-123-4567 | 2013-01-02 |
2 | Michael | Johnson | Finance | Analyst | 555-987-6543 | 2012-06-15 |
3 | Mary | Reed | Engineering | Software Engineer | 555-456-0123 | 2001-01-02 |
4 | Angela | Cooper | Sales | Manager | 555-123-4567 | 2005-10-15 |
5 | Elizabeth | Ward | Sales | Sales Associate | 555-987-6543 | 2010-01-02 |
6 | Daniel | Lewis | HR | Manager | 555-876-5432 | 2010-01-02 |
7 | Paul | Martin | Finance | Analyst | 555-609-3691 | 2009-12-01 |
8 | Jessica | Peterson | Finance | Analyst | 555-987-6543 | 2004-11-01 |
9 | Mark | Hall | Professional Services | Director | 555-012-3456 | 2009-06-01 |
10 | Rebecca | Wood | Engineering | Manager | 555-210-3456 | 2008-07-27 |
11 | Pamela | Sanders | Engineering | Software Engineer | 555-123-4567 | 2005-04-01 |
12 | Christopher | Morris | Professional Services | Consultant | 555-456-7890 | 2011-03-29 |
13 | Kevin | Stewart | Professional Services | Manager | 555-345-6789 | 2008-02-29 |
14 | Stephen | Edwards | Sales | Sales Associate | 555-765-4321 | 2006-01-02 |
15 | Janet | Coleman | Finance | Director | 555-654-3210 | 1999-12-30 |
16 | Scott | Bailey | Engineering | Software Engineer | 555-678-1235 | 2005-03-15 |
17 | Andrew | Nelson | Professional Services | Consultant | 555-789-4560 | 2005-03-15 |
18 | Michelle | Foster | HR | Director | 555-345-6789 | 2005-03-15 |
19 | Laura | Bryant | Sales | Sales Associate | 555-987-6543 | 2004-11-01 |
20 | William | Ross | Engineering | Software Engineer | 555-123-4567 | 2008-07-27 |
Now that we have the data, we can create the record type which will generate a record for each of the rows in our Employees data store entity.
Employee Directory
Employees
List of current employees
After the Employee Directory record type opens in the record type designer, we need to add some more information:
Data Store Entity
Employees
Employee
rf!firstName & " " & rf!lastName
={ a!textField( label: "Name", labelPosition: "ADJACENT", value: rf!firstName & " " & rf!lastName, readOnly: true ), a!textField( label: "Department", labelPosition: "ADJACENT", value: rf!department, readOnly: true ), a!textField( label: "Title", labelPosition: "ADJACENT", value: rf!title, readOnly: true ), a!textField( label: "Contact Number", labelPosition: "ADJACENT", value: rf!phoneNumber, readOnly: true ), a!textField( label: "Start Date", labelPosition: "ADJACENT", value: rf!startDate, readOnly: true ) }
You have just created a record for each of the employees listed in the Employees data store entity.
To view your records, open Tempo in a new browser, select the Records tab, and click Employees. You should see the following:
To view a record, select a name from the list. For Andrew Nelson you should see the following:
The design of the Summary view is based on the expression we added to the Interface field for the Summary view of the record type. Looking back at the expression, you'll notice we used the rf!
domain to access our data. This is required for entity-backed records. Other than that, you can change this record view design as you would any other interface.
You can also configure additional record views for users to view more information on the record.
See also: Create a Record View
Since this record type is not backed by a process model with quick tasks and we have not configured a related action yet, selecting the Related Actions view displays an empty list. Later on, we'll add to this list, but for now, let's focus on providing users with more data.
While working through the sections below, keep Tempo open with your record in one browser and the record type designer interface with your record type open in another. This way, when we make changes to the record type, you can just refresh Tempo to see the changes automatically.
Currently, our record list is using the defaults. While this provides us with a lot of information, it's not exactly what we want to see.
Let's start by removing the Id column.
You should see the following:
Now let's add a new column to display the employee's title.
Title
title
It should look like the following:
Finally, let's combine the firstName and lastName columns into a single column.
Name
lastName
rf!firstName & " " & rf!lastName
It should look like the following:
For more information on the different options available for configuring a record list, see Create a Record List.
Now that we have Employee Directory records, let's add a user filter so users can filter the records by Department.
"Department"
"Engineering"
"Engineering"
Following the same steps, create the remaining filter options:
Option Label | Operator | Value |
---|---|---|
Finance |
= | Finance |
Human Resources |
= | HR |
Professional Services |
= | Professional Services |
Sales |
= | Sales |
You have just created a Department user filter with the five departments as options.
Refresh the Employees record in Tempo. You should see the following:
To see the full list of options, click the Department filter dropdown. Users can select any one of these options to filter the records down to just those in the selected department(s).
For more information on how to configure user filters, see Create User Filters.
Remember how the Related Actions view for each record was empty? Now let's add an action to it that allows users to update the phone number for the record they are currently viewing.
getEmployeeById
that takes an integer as a parameter and returns the Employee with that id.employeeId
of type Number (Integer) marked as a parameter and no start form.rule!getEmployeeById(pv!employeeId).phoneNumber
and saves into ac!newPhoneNumber
. ac!newPhoneNumber
should then be saved into a process variable so that it can be accessed by other nodes later in the process.employeeId
process variable.In the Context field, change the value to:
1
2
3
{
employeeId: `rp!id` /* Number (Integer) */
}
The Update Phone Number process model is now a related action for your Employee Directory records where users can update the phone number of the record they're viewing.
Refresh the Employees record in Tempo and select an employee from the list. Click Related Actions. You should see the following:
Click Update Phone Number. You should see the following:
Enter a new number, click Submit, and refresh Daniel Lewis' record. You should see the updated number.
In addition to the Related Actions view, you can configure specific related actions to be available from specific record views. Let's try this by making the Update Phone Number related action available from the Summary view.
Refresh the Employees record in Tempo and select an employee from the list. From the Summary view, you should see that the Update Phone Number related action is available as a button on the top right.
For more information about configuring related actions, see Add a Related Action.
Designers can allow record viewers to export record lists to Excel. This setting displays an Export to Excel button on a record list that record viewers can click to download a copy of their filtered record lists in Excel.
To enable this option, check the checkbox next to Show Export to Excel Button in the Record List section of your Record Type object.
Note: This functionality is only available for data store entity backed record lists using a grid list style. The button will be disabled if the filtered record list contains more than 100,000 rows or 50 columns.
Since we didn't add any users or groups to the record type security, only system administrators can view the records in Tempo. By adding groups and giving them Viewer, Auditor, Editor, or Administrator permissions, you can open up the records to other users.
All members of the specified groups can now see the Employee record. You can repeat these steps for the other roles.
For more information on security for record types, see Configuring Security for a Record Type.
Now that we've created an entity-backed record, let's move on to process-backed records.
Before we start, though, we'll need a process model. For our example, let's use the process model from the Process Model Tutorial. If you haven't already created the Submit Expenses process model, do so now by completing the first five sections of the tutorial, then follow the steps below to create your record type.
After the Expense Report record type opens in the record type designer, we need to add some more information:
List View Item Template:
1
2
3
=a!listViewItem(
title: rf!expenseItem
)
Click on the Summary view in the Views grid and enter the following into the Interface field:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
={
a!textField(
label: "Requester",
labelPosition: "ADJACENT",
value: user(touser(rf!pp.initiator), "firstName") & " " & user(touser(rf!pp.initiator), "lastName"),
readOnly: true
),
a!textField(
label: "Amount",
labelPosition: "ADJACENT",
value: rf!expenseAmount,
readOnly: true
),
a!textField(
label: "Date",
labelPosition: "ADJACENT",
value: rf!expenseDate,
readOnly: true
)
}
You have just created a record for each of the processes of the Submit Expenses process model.
If you go the record list view in Tempo, however, you might not see any expense reports listed. This is because you don't have any instances of the process. Let's add one and take a look at the result.
Start an instance of the Submit Expenses process with the following values:
In Tempo, select the Records tab, and click Expense Reports.
You should see the following:
Select the "Plane ticket to St. Louis" record.
You should see the following:
Just like the entity-backed records, the design of the record view is based on the expression we added to the Interface field of the Summary view of the record type. You'll notice we used the rf!
domain again, but this time it was to access process variables of the process model. This is required for process-backed records. Along with the process variables, you can also access certain process and process model properties using the same domain.
Only certain process and process model properties are available for use in interfaces.
For the full list, see also: Record List
Other than that, you can change this record view design as you would any other interface.
Similarity to Entity-backed Records
Notice that both the record list and summary view for process-backed records look the same as for entity-backed records. The same advanced configurations you did in the entity-backed record example are also applicable to process-backed records. The process for implementing these configurations is exactly the same as well. See the sections in the entity-backed records example for the step-by-step process.
The only new concept for process-backed records that we did not cover with entity-backed records is exposing quick tasks as related actions. This is because entities can't have quick tasks; only processes can. However, exposing your processes quick tasks as related actions on the record is easy.
If the process model you used as the source for the record had any quick tasks (the example we used did not), the quick tasks that are available to the user would automatically appear in the list of related actions for those records. You don't have to take any further action to get them to appear in the list. However, you cannot make quick tasks available to end users as related actions from record views. You are also able to configure other related actions following the same example we saw for entity-backed records.