Professional Documents
Culture Documents
Classic 23.4 Appian Developer Step-By-Step - All Exercises
Classic 23.4 Appian Developer Step-By-Step - All Exercises
Exercise to Accompany
Welcome to the Appian Developer Learning Path
2 Create an Application
4 Expressions
6 Sites
8 Interfaces 101
11 Reports
12 Task Report
Notice of Rights
This document was created by Appian Corporation, 7950 Jones Branch Dr, Tysons, Virginia 22102.
Copyright 2023 by Appian Corporation. All rights reserved. Information in this document is subject to
change. No part of this document may be reproduced or transmitted in any form by any means, without
prior written permission of Appian Corporation. For more information on obtaining permission for reprints
or excerpts, contact Appian Training at academyonline@appian.com.
To understand specific Appian concepts and features, we recommend that you first take our
online courses (access our curriculum at academy.appian.com) and then complete the
associated step-by-step exercises before moving to the next course in the path.
You will build most objects in this exercise. However, there will be some selected data and
objects that come from the existing Acme Automobile Reference Application (AA). You can also
use the Acme Auto Solution Application (AS) as a reference tool. Review this application to see
how specific objects or fields are configured, or test the app to see how the features work from
a business user’s perspective. You can find this app in your Appian Community Edition
environment. You will learn how to access that account in this first step-by-step exercise.
To ensure you have the latest and up to date applications in your environment, make sure that
environment is the same or newer than the version the step-by-step exercises were developed
for. Outdated environments may not have the applications or objects you need to complete
exercises. If your environment is out of date, you can request a new one from your Appian
Community Edition account.
Additional Resources
Appian provides several training resources for Appian developers. The following resources are
popular:
Academy Online - Appian’s online courses provide useful survey courses on application
building and best practices, step-by-step tutorials, and additional practice exercises.
Appian Documentation - Appian’s product documentation will provide you with the overview of
key Appian features, newest release information, additional tutorials, and helpful patterns and
recipes to implement in your app.
Community Discussions for New Users - Join our community of experts to ask questions and
find answers from past discussions.
1. Go to the Appian Community website, and sign in to your Appian Community Edition
account.
When an instance is assigned to you, your instance URL is added to the My Community Edition
site card on the My Learning Journey page. Your username, which is the email address
associated with your Appian Community account, and password is sent via email. If you do not
receive your site’s credentials, please email CommunityEdition@appian.com for help.
2 Create an Application
4 Expressions
6 Sites
8 Interfaces 101
11 Reports
12 Task Report
Notice of Rights
This document was created by Appian Corporation, 7950 Jones Branch Dr, Tysons, Virginia 22102.
Copyright 2023 by Appian Corporation. All rights reserved. Information in this document is subject to
change. No part of this document may be reproduced or transmitted in any form by any means, without
prior written permission of Appian Corporation. For more information on obtaining permission for reprints
or excerpts, contact Appian Training at academyonline@appian.com.
Follow the steps below to create your Acme Auto Exercise Application.
5. Click CREATE.
6. In the Review Application Security dialog, click SAVE. Because you do not have
application groups yet, you will come back to application security later.
NOTE: Even though the default No Access permission level is selected, you will still be
able to access your application because you are a system administrator in your
environment.
7. Your new application will open automatically. Close the What do you want to build
first? dialog.
You will be in the Explore view. This view gives you immediate insights into the structure of
your application, its packages, and supporting documentation.
Appian Step-by-Step 23.4
© Appian Corporation, 2023 3
Create Parent Folders
In this exercise, you will create folders that you will use to organize and secure application
objects. In Appian, there are four types of folders: Rule, Process Model, Document, and
Knowledge Center.
Follow the steps below to create the parent folders that will hold your subfolders.
3. Create the Rule folder. This will be the parent folder for other rules and constants
folders. Configure the following properties:
4. Click CREATE.
5. In the Review Rule Folder Security dialog, click SAVE. You will revisit security
settings after you create application groups.
● AX Process Models
● AX Knowledge Center (the folder for application documents)
1. Create three subfolders in the AX Rules & Constants parent folder: AX Constants,
AX Expressions, and AX Interfaces. For each folder:
NOTE: Alternatively, you can open AX Rules & Constants and create all subfolders
from within this parent folder. With this method, the Parent Folder field will be
pre-populated with AX Rules & Constants.
2. From within the AX Knowledge Center parent folder, create the subfolder AX
Documents:
● Select the type, name your folder, enter a simple description, and ensure that AX
Knowledge Center is the parent folder.
To check that you set up your parent-child folder relationships correctly, you can use the
hierarchical view. Above the objects list on the right, click Hierarchical View to see your
folders organized into the hierarchy.
Troubleshooting Resources
Stuck on a step, or need help troubleshooting? Appian provides several support resources that
you can use as you build:
1. Acme Auto Solution Application - The Acme Auto Solution Application (AS) is the
solution you are working to build in the Step-by-Steps, so you can use it as a reference
tool. Review this application to see how specific objects are configured, or test the app
to see how the features work from a business user’s perspective. You can find this app
in your Appian Community Edition environment.
2. Community Discussions for New Users - Check out the New to Appian thread in
Community. Join our community of experts to ask questions and find answers from past
discussions.
2 Create an Application
4 Expressions
6 Sites
8 Interfaces 101
11 Reports
12 Task Report
Notice of Rights
This document was created by Appian Corporation, 7950 Jones Branch Dr, Tysons, Virginia 22102.
Copyright 2023 by Appian Corporation. All rights reserved. Information in this document is subject to
change. No part of this document may be reproduced or transmitted in any form by any means, without
prior written permission of Appian Corporation. For more information on obtaining permission for reprints
or excerpts, contact Appian Training at academyonline@appian.com.
Learn more about creating and managing users by visiting Appian Documentation.
Create Groups
In this exercise, you will create your application groups: AX Users, AX Administrators, AX
Supervisors, AX Registrars, and AX Mechanics. You will use these groups to set security for your
application and its objects.
The Users and Administrators groups are best practices in most applications. The Users group
includes all users with access to the application, and it is always the parent group for other
application groups. The Administrators group includes the users who administer the application
and its objects.
In your application, the AX Supervisors and AX Registrars groups are for the business users who
will use the application to do their work. You will use these groups to define which business
users can access particular features.
Remember to use the application prefix in all object names. Prefixes will help you discern
between similar objects from different applications.
3. Click CREATE.
4. In the Review Group Security dialog, click SAVE. You will review and set up security
after you create the AX Administrators group.
6. From within AX Users, follow steps 1–4 to create the remaining groups:
● AX Administrators
● AX Supervisors
● AX Mechanics
● AX Registrars
Add AX Users as the parent group. Do not configure security. You will secure them later
using their parent group, AX Users.
As you build your application, you will be able to see the features designed for particular user
groups. You can also remove yourself from a group to test the security of those features.
Now that you have set security for the AX Users group, its child groups will inherit this security
setting. This is called security inheritance in Appian.
Follow the steps below to configure security for your parent folders.
2. Select the checkbox next to AX Rules & Constants, and select SECURITY.
6. In the User or Group column, enter and select AX Users. In the Permission Level
column, select Viewer.
8. For AX Knowledge Center, select AX Administrators, and set the permission level
to Administrator. Then, select AX Users, and set the permission level to Editor.
NOTE: The Editor permission level allows users to upload, modify, and delete
documents. Viewers are able to view documents, but not upload.
1. Next to the application name, Acme Auto Exercise Application, click <. This button
brings you back to the Applications view.
6. In the User or Group column, enter and select AX Users. Keep the default Viewer
permission level.
Troubleshooting Resources
Stuck on a step, or need help troubleshooting? Appian provides several support resources that
you can use as you build:
1. Acme Auto Solution Application - The Acme Auto Solution Application (AS) is the
solution you are working to build in the Step-by-Steps, so you can use it as a reference
tool. Review this application to see how specific objects are configured, or test the app
to see how the features work from a business user’s perspective. You can find this app
in your Appian Community Edition environment.
2. Community Discussions for New Users - Check out the New to Appian thread in
Community. Join our community of experts to ask questions and find answers from past
discussions.
2 Create an Application
4 Expressions
6 Sites
8 Interfaces 101
11 Reports
12 Task Report
Notice of Rights
This document was created by Appian Corporation, 7950 Jones Branch Dr, Tysons, Virginia 22102.
Copyright 2023 by Appian Corporation. All rights reserved. Information in this document is subject to
change. No part of this document may be reproduced or transmitted in any form by any means, without
prior written permission of Appian Corporation. For more information on obtaining permission for reprints
or excerpts, contact Appian Training at academyonline@appian.com.
Exercise 4: Expressions
In this exercise, you will create two types of rule objects: six constants and one expression rule.
Create Constants
A constant is a literal value that can be called from any expression, across objects in your
application. In this section, you will create constants that point to the groups and folders you
just created.
3. Click CREATE.
4. Follow steps 1–3 to create constants for the remaining four groups:
● AX Users
● AX Supervisors
● AX Registrars
● AX Mechanics
Next, you will create a constant that points to the AX Documents folder.
3. Click CREATE.
1. From within the AX Expressions folder, click New > Expression Rule.
3. Click CREATE.
4. In the Rule Inputs pane, click the New Rule Input icon.
a!match(
value: true(),
equals: isnull(ri!user),
then: "",
equals: isusernametaken(ri!user),
then: proper(
user(ri!user, "firstName") & " " & user(ri!user,
"lastName")
),
default: proper(joinarray(split(ri!user, "."), " "))
)
In this expression, a!match evaluates the input (a username) against multiple conditions
and returns a value (the formatted name) based on a match.
● First, this expression checks whether the user’s username is null. If the user’s
username is null, an empty string is returned.
● If the user’s username is not null, then the expression checks whether the user is
an active user. If the user is active, the first and last name associated with the
username is returned.
● If the username is not null and the user is not active, the default is returned.
● The process for formatting users and non-users is different. The last line in the
expression reformats the username input as First and Last Name for a non-user.
Visit Appian Documentation to learn more information about functions and expressions.
Troubleshooting Resources
Stuck on a step, or need help troubleshooting? Appian provides several support resources that
you can use as you build:
1. Acme Auto Solution Application - The Acme Auto Solution Application (AS) is the
solution you are working to build in the Step-by-Steps, so you can use it as a reference
tool. Review this application to see how specific objects are configured, or test the app
to see how the features work from a business user’s perspective. You can find this app
in your Appian Community Edition environment.
2. Community Discussions for New Users - Check out the New to Appian thread in
Community. Join our community of experts to ask questions and find answers from past
discussions.
2 Create an Application
4 Expressions
6 Sites
8 Interfaces 101
11 Reports
12 Task Report
Notice of Rights
Appian Step-by-Step 23.4
© Appian Corporation, 2022 2
This document was created by Appian Corporation, 7950 Jones Branch Dr, Tysons, Virginia 22102.
Copyright 2023 by Appian Corporation. All rights reserved. Information in this document is subject to
change. No part of this document may be reproduced or transmitted in any form by any means, without
prior written permission of Appian Corporation. For more information on obtaining permission for reprints
or excerpts, contact Appian Training at academyonline@appian.com.
1. In the Build view of your application, click New > Record Type.
3. Click CREATE.
2. In the Configure Data Source dialog, ensure that Database is selected. Click NEXT.
5. Under Configure Source Filters, click NEXT. You will not create source filters in this
exercise.
7. Click SAVE CHANGES to save the record type before you build additional features.
8. Next to the record type name, click View Record List to view the record type from the
business user perspective.
3. In the Configure Values section, under Create Groups From, select mileage.
5. Under Custom Field Value, configure the group names and values:
7. Click NEXT.
3. In the Generate Event Record Types dialog, include common event types by leaving
the Created Vehicle and Updated Vehicle checkbox selected.
4. Keep the default record type names for Event History and Event Type Lookup.
5. Click GENERATE.
3. In the Edit Record List dialog, review the list of fields. Keep only these fields: VIN,
Make, Model, Year, Next Maintenance Date, Added By, and Image. To delete all other
fields, click the in-line X next to those fields.
5. Click ADD COLUMN, and click the new Grid Column link to drill into the column.
7. Return to the grid-level settings, and move the Image column so that it is the last
column in the grid. Use the in-line arrow to move this column.
fv!row[AX Vehicle.vin]
● Click OK.
10. In the Record Link section, next to Record Type, click the Edit as Expression icon.
In the Expression Editor:
11. In the Record Link section, next to Identifier, click the Edit as Expression icon. In
the Expression Editor:
Follow the steps below to remove the link from the Make column.
2. Next to Display Value, click the Edit as Expression icon. You will call in the
expression rule you created in Exercise 4.
● In the Expression Editor, delete the text, and enter the following expression:
rule!AX_FormatDisplayName(fv!row[recordType!AX
Vehicle.fields.addedBy])
● In the Expression Editor, delete all text, and enter the following expression:
if(a!isNullOrEmpty(fv!row[recordType!AX
Vehicle.fields.image]), a!EXAMPLE_DOCUMENT_IMAGE(),
fv!row[recordType!AX Vehicle.fields.image])
This expression checks whether the image field is null. If it is null, it displays an
example document image.
● Click OK.
3. Next to the record type name, click View Record List to view the updated record list as
it appears to business users.
● In the same manner, create the Medium Mileage and High Mileage options.
5. Next to the record type name, click View Record List to test your user filter.
5. Under Security and Organization, click the Edit icon next to the AX Rules &
Constants folder. Replace this folder with AX Interfaces.
3. In the Expression Editor, delete the text, and enter the following expression:
The rv! domain allows you to reference a record's ID or a value within a record field.
5. Preview the vehicle summary view with the new dynamic title.
3. In the Choose Your Action dialog, deselect Update and Delete. For this exercise, you
will focus on the Create record action. Click CUSTOMIZE.
6. Click GENERATE. After Appian creates the record action and supporting objects, click
CLOSE, then SAVE CHANGES.
7. Next to the record type name, click View Record List to preview the new Add Vehicle
record action.
1. In the Build view of your application, click New > Record Type.
5. Click SAVE.
7. In the Configure Data Source dialog, ensure that Database is selected, and click
NEXT.
9. Under Choose Database Table, find and select AS_MAINTENANCE. Click NEXT.
10. Click NEXT. You will not create source filters for this exercise.
3. In the Generate Event Record Types dialog, deselect the Created Maintenance
and Updated Maintenance checkbox.
● Requested Maintenance
● Started Maintenance
● Completed Maintenance
NOTE: You can use the default "Created" and "Updated" events by leaving their
checkboxes selected. In this example, we want to use "Requested" instead of "Created"
and "In-Progress" and "Completed" instead of "Updated.”
5. Keep the default record type names for Event History and Event Type Lookup.
6. Click GENERATE.
5. Next to AX Rules & Constants folder, click the Edit icon. Replace this folder with AX
Interfaces.
You will add four relationships to the AX Vehicle record type: Maintenance, Category, Status,
and Condition. You will use the existing Category, Status, and Condition record types from the
Acme Automobile Reference Application (AA).
The Category, Status, and Condition record types are reference, or lookup, tables that contain
the unique vehicle category, status, and condition values. A reference table contains set,
categorical data, which are often used as static dropdown values. Think of it as a “cumulative
list” that uses an identifier, or ID number, (1) to look up a value, such as vehicle category
(sedan).
Follow the steps below to add the AX Maintenance record type relationship.
Follow the steps below to add three more relationships to the AX Vehicle record type.
2. In Related Record Type, enter and select AA Vehicle Category. Click NEXT.
5. Follow steps 1–4 to add two more relationships to the AX Vehicle record type: AA
Vehicle Status and AA Vehicle Condition. Use the following configurations:
● Go to the Filters page. For each of the AA Vehicle Category, AA Vehicle Status,
and AA Condition user filters:
○ Next to the filter name, click the Edit icon.
○ Change Label to “Category”, “Status”, or “Condition” as
applicable.
○ Click OK.
8. Next to the record type name, click View Record List to view and test these filters.
TIP: Use the Out-of-the-Box User Record Type to Easily Reference User
Data
● In your applications, you might need to reference user data, like name or email. You
can use the User record type, an out-of-the-box record type containing a directory of
users in an Appian environment.
● To set this up, first ensure data sync is enabled for the User record type.
● In your business record type, add a many-to-one relationship with the User record
type.
● Then, you can reference this relationship throughout your app to display user
information—like in queries, interfaces, and reports.
7. Follow steps 1–6 to create a custom record field that displays a count of all maintenance
requests for a vehicle. Use the following configurations:
3. Select Expression.
5. In Filter Expression, enter the expression below. This expression should be typed. If
you copy and paste it, you will need to edit the lines with recordType.
a!localVariables(
local!vehicleMakes: a!queryRecordType(
recordType: recordType!AX Vehicle,
fields: a!aggregationFields(
groupings: {
a!grouping(
field: recordType!AX Vehicle.make,
alias: "make"
)
},
measures: {
a!measure(
field: recordType!AX Vehicle.make,
function: "COUNT",
alias: "count"
)
}
),
pagingInfo: a!pagingInfo(
startIndex: 1,
batchSize: 5000
)
),
a!recordFilterList(
name: "Make",
options: a!forEach(
items: local!vehicleMakes.data,
expression: a!recordFilterListOption(
First, this expression creates a local variable for the record type query, so that it can be
referenced later in the expression. In this case, a!queryRecordType() executes a
query on the AX Vehicle record type and returns the vehicle makes. Instead of manually
creating an option for each make, the a!forEach() function writes these options for
you. It takes the array of vehicle makes returned in the query and passes them to an
expression one at a time, creating the a!recordFilterListOption function for each
item in the array.
7. Next to the record type name, click VIEW RECORD LIST. At the top of the record list,
you will see the Make filter. Test that it works as expected.
Troubleshooting Resources
Stuck on a step, or need help troubleshooting? Appian provides several support resources that
you can use as you build:
1. Acme Auto Solution Application - The Acme Auto Solution Application (AS) is the
solution you are working to build in the Step-by-Steps, so you can use it as a reference
2. Community Discussions for New Users - Check out the New to Appian thread in
Community. Join our community of experts to ask questions and find answers from past
discussions.
2 Create an Application
4 Expressions
6 Sites
8 Interfaces 101
11 Reports
12 Task Report
Notice of Rights
This document was created by Appian Corporation, 7950 Jones Branch Dr, Tysons, Virginia 22102.
Copyright 2023 by Appian Corporation. All rights reserved. Information in this document is subject to
change. No part of this document may be reproduced or transmitted in any form by any means, without
prior written permission of Appian Corporation. For more information on obtaining permission for reprints
or excerpts, contact Appian Training at academyonline@appian.com.
Exercise 6: Sites
In this exercise, you will start building a site for Acme Automobile business users—supervisors,
registrars, and mechanics—where they will access fleet-related information. This site will include
pages for:
3. Click CREATE.
1. Add the AX Vehicle record type. Click ADD PAGE, and configure the following
properties:
2. Add the Add Vehicle to Fleet action page. Click ADD PAGE, and configure the following
properties:
4. View your new site. Under Web Address, click the URL. You can also click Navigation
> Acme Auto Exercise Site.
1. Acme Auto Solution Application - The Acme Auto Solution Application (AS) is the
solution you are working to build in the Step-by-Steps, so you can use it as a reference
tool. Review this application to see how specific objects are configured, or test the app
to see how the features work from a business user’s perspective. You can find this app
in your Appian Community Edition environment.
2. Community Discussions for New Users - Check out the New to Appian thread in
Community. Join our community of experts to ask questions and find answers from past
discussions.
2 Create an Application
4 Expressions
6 Sites
8 Interfaces 101
11 Reports
12 Task Report
Notice of Rights
This document was created by Appian Corporation, 7950 Jones Branch Dr, Tysons, Virginia 22102.
Copyright 2023 by Appian Corporation. All rights reserved. Information in this document is subject to
change. No part of this document may be reproduced or transmitted in any form by any means, without
prior written permission of Appian Corporation. For more information on obtaining permission for reprints
or excerpts, contact Appian Training at academyonline@appian.com.
1. In the Build view of your application, click New > Expression Rule.
3. Click CREATE.
10. Click FILTER. Click Add Filter, and configure the following properties:
11. Click SORT AND LIMIT. In the Data Limit field, enter 50.
13. To test this query, under Test Inputs, in Value, enter any vehicle ID. For example,
enter 1, and click TEST RULE. You will see the entire data subset in the Test Output.
Troubleshooting Resources
Stuck on a step, or need help troubleshooting? Appian provides several support resources that
you can use as you build:
1. Acme Auto Solution Application - The Acme Auto Solution Application (AS) is the
solution you are working to build in the Step-by-Steps, so you can use it as a reference
tool. Review this application to see how specific objects are configured, or test the app
to see how the features work from a business user’s perspective. You can find this app
in your Appian Community Edition environment.
2. Community Discussions for New Users - Check out the New to Appian thread in
Community. Join our community of experts to ask questions and find answers from past
discussions.
2 Create an Application
4 Expressions
6 Sites
8 Interfaces 101
11 Reports
12 Task Report
Notice of Rights
This document was created by Appian Corporation, 7950 Jones Branch Dr, Tysons, Virginia 22102.
Copyright 2023 by Appian Corporation. All rights reserved. Information in this document is subject to
change. No part of this document may be reproduced or transmitted in any form by any means, without
prior written permission of Appian Corporation. For more information on obtaining permission for reprints
or excerpts, contact Appian Training at academyonline@appian.com.
Exercise 8: Interfaces
In this exercise, you will modify or create the following interfaces:
1. AX_VehicleSummary
2. AX_AddVehicle
3. AX_SupervisorForm
AX_AddVehicle is used to start the AX Add Vehicle process model to add a new vehicle to the
fleet.
AX_SupervisorForm is used by supervisors in the Add Vehicle process model to review a new
vehicle.
To create efficient, intuitive, and attractive interfaces, it is important to follow UX design best
practices and recommendations. Visit the SAIL Design System in Appian Documentation to learn
more.
4. Click SAVE CHANGES to check for dependencies. One object requires a manual update.
1. Return to AX_VehicleSummary.
2. Double-click the Section Layout title, and delete the Vehicle text.
4. In the Components tab of the Palette, find the CARD layout. Drag and drop it above
vehicle details, outside of the section layout.
5. Drag and drop the Section Layout with the vehicle details into the Card Layout.
● Delete the following fields: Last Maintenance Date, Modified On, Added By,
Image, and Modified By.
8. Update the Category field. Currently, this field displays a numeric ID. You will use the
record type relationship to replace it with the user-friendly value in the associated lookup
table.
● Click Category.
● Under Display Value, click the expression.
● In the bracket, replace the record field with:
[recordType!AX
Vehicle.relationships.toCategoryRecord.fields.value]
● Click OK.
9. Repeat this step with the Condition and Status fields. When selecting the relationship,
for Status, select toStatusRecord. For Condition, select toConditionRecord.
ri!vehicle[recordType!AX Vehicle.fields.image]
5. Click OK.
7. Configure the image’s visibility. You only want the image to display when the image field
is neither null nor empty. If there is no image to display, there will be an error.
a!isNotNullorEmpty(ri!vehicle[recordType!AX
Vehicle.fields.image])
● Click OK.
8. Click TEST to review the test data used to populate the interface.
9. The expression in the Expression Editor uses a!queryRecordType to query the vehicle
record type and return a row of vehicle data. Update the expression to use the query
rule you created in a previous exercise. Delete the expression, and enter:
rule!AX_QR_GetVehicleById(vehicleId: 1)
2. Click the Read-only Grid, and make the following changes in the Component
Configuration pane:
● For Data Source, select Record Type, and search for the AX Maintenance
record type.
● Click FILTER RECORDS. To display the maintenance requests for the selected
vehicle, filter the record based on vehicleId.
● In the Filter Records dialog, click Add Filter. For Field, select vehicleId. For
Condition, select =.
● For Value, change 123 to Expression.
● Click the null link. In the Expression Editor, enter:
ri!vehicle[recordType!AX Vehicle.fields.vehicleId]
● Click OK. You will see that the read-only grid now only displays the maintenance
requests that are associated with the vehicle record’s vehicle ID.
NOTE: The Maintenance Requests grid is based on the current configuration of the AX
Maintenance record list. If you want, you can adjust the record list. Refer to Exercise 5:
Design Record Types to review configuring a record list. If you do make changes, re-add
this read-only grid to see your changes.
4. Go to the AX Vehicle record type, and next to the record type name, click View Record
List. Click on a VIN to view the updated summary view interface.
2. In the Rule Inputs pane, click the record rule input. Configure the following
properties:
3. Click SAVE CHANGES to check for dependencies after changing the rule input name. A
manual change is required in the AX Add Vehicle process model. You will make this
change in the next exercise.
5. Delete the following text components: Status Id, Added By, Modified By, Condition Id,
Category Id, Image, and Modified On.
6. Remove the word date from the Last Maintenance and Next Maintenance field labels.
7. Drag and drop a SIDE BY SIDE layout inside of and at the top of the first column.
Move the Year, Make, and Model fields inside of the Side By Side layout. The Side By
Side layout will keep these fields next to each other on a narrower screen. For reference,
use the image at the beginning of this section.
NOTE: On mobile devices, columns layouts are flattened into a single column. If you
need certain fields to stay together, use side by side layouts.
9. Next, add a validation to the Next Maintenance field so that the next maintenance date
entered must be after the last maintenance date.
if(todate(ri!vehicle[recordType!AX
Vehicle.fields.nextMaintenanceDate]) <
todate(ri!vehicle[recordType!AX
Vehicle.fields.lastMaintenanceDate]), “The next maintenance
date must be after the last maintenance date.”, null)
This expression checks whether the next maintenance date is before the last
maintenance date. If it is, the field is invalid and displays an error message.
1. Drag and drop a FILE UPLOAD component into the second column. Change the Label
to Image.
1. Drag and drop two DROPDOWN components into the second column. Change the
Labels to Category and Condition.
3. Repeat step 2 for the Condition dropdown, using AA Vehicle Condition as the record
type.
4. Check that the dropdown selections display the correct choices. Click SAVE CHANGES.
1. Click the Added On field. In the Component Configuration pane, configure the
following properties:
● Display Value: Delete the text, and click the Edit as Expression icon. Enter
today() to return the current date.
2. Click the CREATE button. In the Component Configuration pane, configure the
following properties:
{
a!save(ri!vehicle[recordType!AX Vehicle.fields.addedOn,
today()), a!save(ri!vehicle[recordType!AX
Vehicle.fields.addedBy],loggedInUser())
}
4. In the Rule Inputs pane, click the New Rule Input icon. Configure the following
properties for the new rule input:
5. Click the cancel rule input, and configure the following properties:
2. Delete the top Section Layout. To delete it, click this section, then click the dropdown
arrow > Delete.
3. For the bottom section layout, delete the blue Section label.
4. Drag and drop three TEXT and two INTEGER input components into the first
column.
5. For the text fields, change the labels to Make, Model, VIN. For the integer fields,
change the labels to Year and Mileage. For each of these fields, make the following
changes in the Components Configuration pane:
6. Drag and drop an IMAGE component into the second column. Delete the label Image,
and click + in the Image field. Select DOCUMENT IMAGE.
ri!vehicle[recordType!AX Vehicle.fields.image]
You will see an error message. This error appears because the value for the document
cannot be null.
● Click TEST, and enter the following expression into the vehicle row:
rule!AX_QR_GetVehicleByID(vehicleId: 1)
● Click SET AS DEFAULTS AND TEST. You will see the error disappear, and the
interface will display the sample data.
10. In the Component Configuration pane, under Value, click the link, and change it to
false. Under Save Value To, keep ri!approvalDecision.
12. Configure the Approve button to save values for the following fields: Modified By,
Modified On, and Status.
{
a!save(ri!vehicle[recordType!AX
Vehicle.fields.modifiedBy], loggedInUser()),
a!save(ri!vehicle[recordType!AX
Vehicle.fields.modifiedOn], today()),
a!save(ri!vehicle[recordType!{AX
Vehicle.fields.statusId], 1),
a!save(ri!approvalDecision, true())
6. In AX_VehicleDetailsView, in the top right corner, click the Gear icon > Properties.
7. Select the Include in the design library checkbox. Name the interface
AX_VehicleDetailsView.
9. Go to the AX_SupervisorForm. You will notice the reusable interface has been added in
place of the section layout and mapped to the appropriate rule input. Later, you will be
able to reference this reusable interface anytime you want to display read-only vehicle
details.
TIP: Creating reusable interfaces is useful for reporting interfaces. You can create each
chart or grid as its own interface, and then combine them into different larger reporting
interfaces for your business users.
1. Acme Auto Solution Application - The Acme Auto Solution Application (AS) is the
solution you are working to build in the Step-by-Steps, so you can use it as a reference
tool. Review this application to see how specific objects are configured, or test the app
to see how the features work from a business user’s perspective. You can find this app
in your Appian Community Edition environment.
2. Community Discussions for New Users - Check out the New to Appian thread in
Community. Join our community of experts to ask questions and find answers from past
discussions.
2 Create an Application
4 Expressions
6 Sites
8 Interfaces 101
11 Reports
12 Task Report
2 Create an Application
4 Expressions
6 Sites
8 Interfaces 101
12 Task Report
Notice of Rights
This document was created by Appian Corporation, 7950 Jones Branch Dr, Tysons, Virginia 22102.
Copyright 2023 by Appian Corporation. All rights reserved. Information in this document is subject to
change. No part of this document may be reproduced or transmitted in any form by any means, without
prior written permission of Appian Corporation. For more information on obtaining permission for reprints
or excerpts, contact Appian Training at academyonline@appian.com.
● The process allows supervisors, registrars, and mechanics to fill out the Request
Maintenance form.
● The process writes all vehicle details to the database.
2. Select the One-Column Form template, and update the form label to New
Maintenance Request.
3. In the Rule Inputs pane in the top right corner, click the New Rule Input icon. Add
two rule inputs:
● Name the first rule input vehicle, add a description, and select the AX Vehicle
record type as the Type.
● Name the second rule input maintenance, add a description, and select the AX
Maintenance record type as the Type.
4. On the canvas, select the first section, and change the label to Vehicle Details.
5. Next, add the read-only vehicle details. In the Palette, click the Design Library tab.
6. Drag and drop the reusable interface you created, AX_VehicleDetailsView, into the
Vehicle Details section.
7. In the Configure Inputs dialog, you will define the data that flows into the interface.
In the Expression box, enter ri!vehicle. Click OK.
rule!AX_QR_GetVehicleById(1)
● Click SET AS DEFAULTS AND TEST. The interface will be populated with
vehicle values.
2. From the Palette, drag and drop a COLUMNS layout into the Maintenance Details
section. Delete one column.
3. Drag and drop a DATE component into the first column. Configure the following
properties:
4. Drag and drop a RADIO BUTTONS component into the first column under Request
Date. Configure the following properties:
5. Drag and drop a PARAGRAPH component into the second column. Configure the
following properties:
3. In the Process Modeler, add a swimlane for the process initiators (supervisors, registrars,
or mechanics). In the toolbar, click Add Horizontal Lane. Rename it Initiator.
2. Go to the Process Start Form tab. Enter and select the AX_MaintenanceRequest
interface. Click OK, then YES to automatically create process parameters.
● If a warning appears or your rule inputs don’t have values mapped, try clearing
the interface and adding it again.
3. Go to the General tab, and next to Process Display Name, click the Open the
Expression Editor icon.
● To update the display name to show the vehicle VIN for each maintenance
request, enter:
Remember to type the expression rather than copying and pasting it.
4. Go to the Alerts tab. Select the Use custom error alert settings radio button. Also,
select the Send alerts to the following users & groups checkbox, and enter AX
Administrators into the adjoining field.
5. Go to the Data Management tab. Select Archive processes, and change it to 3 days.
rule!AX_QR_GetVehicleById(1)
4. Complete the form, and click SUBMIT. A new process instance has started on a new
tab in the Process Modeler and in the Monitor View.
5. In the toolbar, click Refresh to update the process flow. The process will advance to the
End Node:
6. In the toolbar, click Process Details, and go to the Variables tab to verify that the
data you entered into the form was captured by the process model.
7. Close the process monitoring tab, but keep the process model open.
As you continue working on your process model, test frequently to ensure that the nodes are
configured correctly, and all data is captured as expected.
1. Drag and drop an XOR Gateway into the swimlane to the right of Request
Maintenance. Rename it Cancel?.
2. Drag and drop an End Event into the swimlane above Cancel?. Rename it End -
Cancel. Connect the Cancel? and End - Cancel nodes.
5. For the first condition, in the Result column, select End - Cancel. In the Path Label
column, enter Yes.
6. For the Else if no rules are TRUE condition, in the Result column, select End -
Node.
7. Click OK.
8. To the connector leading from Cancel? to End - Cancel, add the label Yes. To the
connector leading from Cancel? to End Node, add the label No.
1. Drag and drop a Script Task into the swimlane to the right of the Cancel? gateway.
Rename it Store Additional Values.
2. Double-click Store Additional Values, and go to the Data tab. Click the Outputs tab.
3. Click New Custom Output. You will set Modified On as the current date.
● Click the Open the Expression Editor icon, and enter the function today().
Click SAVE AND CLOSE.
● For the Target, click the inline arrow, and hold your cursor over
maintenance. Select maintenance > modifiedOn.
4. Click New Custom Output. You will set Created By as the initiator of the process
model.
● Click the Open the Expression Editor icon, and enter the function
pp!initiator. Click SAVE AND CLOSE.
● For the Target, select maintenance > createdBy.
5. Repeat step 4 for maintenance Modified By. For the Target, select maintenance >
modifiedBy.
6. Click New Custom Output. You will set the maintenance status as scheduled.
● Click the Open the Expression Editor icon, and enter “Scheduled”. Click
SAVE AND CLOSE.
7. Click New Custom Output. You will create a connection between the vehicle and the
maintenance request by saving the vehicle ID associated with the maintenance request.
1. Drag and drop a Write Records node into the Initiator swimlane, to the right of Store
Additional Values. Rename it Write Maintenance Record.
2. Double-click Write Maintenance Record. Go to the Setup tab, and then to the
Records Input dropdown. Choose maintenance, and confirm the AX Maintenance
Record Type will be updated.
3. In the Write Events section, leave the Always radio button selected. Confirm the
following values:
4. In the toolbar, click Process Details. Go to the Variables tab to verify that the data
you entered into the form was captured by the process model.
5. After you finish testing, close the monitoring tab to return to your process model.
3. In the Create New Related Action dialog, configure the following properties:
4. Configure the Context. The Context passes record information into the process model
that backs the related action. Note that the context variables have been generated
based on the process variables from AX Request Maintenance that are parameters.
rv!record allows you to reference a record or the data within a specific record field. In
this case, because you are in the AX Vehicle record type, rv!record will pass the vehicle
information needed into the process model.
5. Click OK.
7. To test this feature from the business user perspective, next to the record type name,
click View Record List. Select any vehicle. In the summary view, the Request
Maintenance related action button will be in the upper right corner.
● At the top, go to the Process Activity tab to view and access all process activity
in your application.
1. In the Build view of your application, click New > Process Model.
2. In the Create Process Model dialog, keep Create from scratch selected and
configure the following properties:
7. Add a second process variable. In the New Process Variable dialog, configure the
following properties:
8. In the Automation Smart Services palette, drag and drop a Write Records smart
service directly after the Start Node.
9. Double click the Write Records smart service on the process model canvas.
10. Click Setup. In the Write Records section, update the Records Input value to
maintenance.
11. In the Write Events section, keep Always selected for when to write events.
Follow the steps below to create the first of two related actions.
3. In the Create New Related Action dialog, configure the following properties:
recordType!AX Maintenance(
recordType!AX Maintenance.requestId: rv!identifier,
recordType!AX Maintenance.status: "In-Progress",
recordType!AX Maintenance.startDate: today()
)
NOTE: For this related action, instead of using rv!record, which would pass in the
existing maintenance request data, you will pass specific values into the process model
to update the maintenance request.
EventTypeId references the event type you created when configuring record events. 2 is
the primary key for the “[name]” event. Typically, you would use a constant that
contains this value.
Follow the steps below to create the second of two related actions.
3. In the Create New Related Action dialog, configure the following properties:
recordType!AX Maintenance(
recordType!AX Maintenance.requestId: rv!identifier,
recordType!AX Maintenance.status: "Completed",
recordType!AX Maintenance.endDate: today()
)
NOTE: while you are not configuring security in this exercise for views or actions, it is
important to consider them. For example, in this scenario you would not want both
related actions to show at the same time. You would only want the Completed related
action button to show if a maintenance request is in process.
Troubleshooting Resources
Stuck on a step, or need help troubleshooting? Appian provides several support resources that
you can use as you build:
1. Acme Auto Solution Application - The Acme Auto Solution Application (AS) is the
solution you are working to build in the Step-by-Steps, so you can use it as a reference
tool. Review this application to see how specific objects are configured, or test the app
to see how the features work from a business user’s perspective. You can find this app
in your Appian Community Edition environment.
2. Community Discussions for New Users - Check out the New to Appian thread in
Community. Join our community of experts to ask questions and find answers from past
discussions.
Notice of Rights
This document was created by Appian Corporation, 7950 Jones Branch Dr, Tysons, Virginia 22102.
Copyright 2023 by Appian Corporation. All rights reserved. Information in this document is subject to
change. No part of this document may be reproduced or transmitted in any form by any means, without
prior written permission of Appian Corporation. For more information on obtaining permission for reprints
or excerpts, contact Appian Training at academyonline@appian.com.
Appian Step-by-Step 23.4
© Appian Corporation, 2023 2
This exercise was developed for Appian 23.4. If you are using a
different version, please see Appian Community for information
about updating your environment to the current version.
● The process allows registrars to fill out the Add Vehicle form.
● The process allows supervisors to approve or reject the vehicle.
● If the vehicle is approved, the process writes all vehicle data to the database.
At the end of this exercise, your process model will look like the image below.
2. If you are in Analyst View, click DESIGNER VIEW in the upper right corner to go to
Designer View.
5. Click the record variable, and change Name to vehicle. Click OK.
6. You need to add a new process variable, approvalDecision, that you will use to configure
the Approved? XOR node later. Click Add Variable, and change Name to
approvalDecision. In the Type field, enter and select Boolean. Click OK.
9. Go to the Process Start Form tab to review the interface that starts the process.
Ensure the rule inputs and values for this interface are vehicle and cancel. If not,
update it.
10. Go to the Alerts tab to review the alert settings. Ensure that the AX Administrators
group is selected to receive alert notifications. If not, update the group.
11. Go to the Data Management tab to update the timeline for process archiving. The
system default is to delete processes 7 days after completion. Change this setting to
Archive processes 3 days after completion or cancellation to improve utilization
of server resources. This setting will archive process history, metrics, and variables from
memory after three days.
1. In the first swim lane, click System in the first swim lane. Rename it to Registrars.
2. Add a swimlane for Supervisors. In the toolbar, click Add Horizontal Lane .
Rename the new swimlane to Supervisors.
4. In the palette, use the folders or search bar to find the End Event node. Drag and drop
it above the Cancel? XOR gateway in the Registrars swimlane. Rename it to End -
Cancel.
5. Delete the line connecting the Cancel? XOR gateway and the End Node.
6. Connect the Cancel? XOR gateway and End - Cancel nodes. To toggle your pointer
to the connector tool, hold down SHIFT on your keyboard. Then, click from one node to
9. For the Else if none are TRUE condition, leave Write Records in the Result column.
3. Double-click Write Vehicle Record. Go to the Setup tab, and then to the Records
Input dropdown. Check to see that vehicle is selected, and confirm that the AX
Vehicle record type will be updated.
4. In the Write Events section, leave the Always radio button selected. Update or
confirm the remaining values:
5. Click OK.
2. Complete the Add Vehicle form, and click ADD VEHICLE. Because these are test
values, you can make up vehicle details to enter into the form.
3. When you submit, a new process instance starts on a new tab in the Process Modeler
and in the Monitor View of your application.
4. In the toolbar, click Refresh to update the process flow. The process will advance
Appian Step-by-Step 23.4
© Appian Corporation, 2023 9
to the End Node node:
6. Close the process monitoring tab to return to your process model. Keep the process
model open.
1. Drag a new User Input Task node to the Supervisor swimlane, to the left of Write
Vehicle Record. Rename it Review Vehicle.
2. Double-click Cancel?, and go to the Decision tab. For the Else if no rules are TRUE
condition, ensure that Review Vehicle is now selected in the Result column. Click OK.
● Click the Expression Editor icon, delete all text, and enter the expression
below. You can also use the Data tab to select the process variables.
5. Go to the Assignment tab. For Assign to the following, enter and select AX
Supervisors.
6. Go to the Data tab. You will configure the inputs to ensure that all existing vehicle data
flows into the form, and the new data, entered by the supervisor, is also captured.
○ Next to Value, click the dropdown menu, and select vehicle. This will
pass vehicle data from the process into the form.
○ Next to Save into, click the dropdown menu, and select vehicle. This
will pass vehicle information captured on the form back into the process.
○ Next to Save into, click the dropdown menu, and select the
approvalDecision process variable. If the supervisor clicks Reject on the
form, this will save the approvalDecision value as false in the process.
3. In the toolbar, click Refresh to update the process flow. The process will advance
to the Review Vehicle node.
5. Click Refresh again to update the process flow. The process will advance to the
End Node node:
6. In the toolbar, click Process Details. Go to the Variables tab to verify that the data
you entered into the form was captured by the process model.
1. Drag and drop a XOR node to the right of Review Vehicle. Rename it Approved?.
2. Drag and drop an End Event node above Approved? Rename it End - Reject.
6. In the Results column, for the first condition, select Write Vehicle Record.
7. For the Else if no rules are TRUE condition, in the Results column, select End -
Reject.
6. Connect the Timer icon to the Write Vehicle Record node. The exception flow should
be red.
3. In the toolbar, click Refresh to update the process flow. The process will advance to the
Review Vehicle node.
4. Right-click the Review Vehicle node, and select View Form. Click Accept to accept
the task, and then click APPROVE.
5. Click Refresh again to update the process flow. The process will advance to the End
Node node:
8. Debug the process model again, but this time for the Reject flow. Verify that the
process arrives at the End - Reject node.
1. To the connectors leading from Cancel?, add the labels Yes and No. To add labels,
right-click each connector, and select Add Label. Rename the labels to Yes and No.
2. To the connectors leading from Approved?, add the labels Yes and No. Refer to the
image above to see the labels.
1. Acme Auto Solution Application - The Acme Auto Solution Application (AS) is the
solution you are working to build in the Step-by-Steps, so you can use it as a reference
tool. Review this application to see how specific objects are configured, or test the app
to see how the features work from a business user’s perspective. You can find this app
in your Appian Community Edition environment.
2. Community Discussions for New Users - Check out the New to Appian thread in
Community. Join our community of experts to ask questions and find answers from past
discussions.
2 Create an Application
4 Expressions
6 Sites
8 Interfaces 101
11 Reports
12 Task Report
Notice of Rights
This document was created by Appian Corporation, 7950 Jones Branch Dr, Tysons, Virginia 22102.
Copyright 2023 by Appian Corporation. All rights reserved. Information in this document is subject to
change. No part of this document may be reproduced or transmitted in any form by any means, without
prior written permission of Appian Corporation. For more information on obtaining permission for reprints
or excerpts, contact Appian Training at academyonline@appian.com.
You will create each chart as a separate interface. Then, you will combine them into a single
interface and add the interface as a new page on the Acme Auto Exercise Site.
1. In the Build view of your application, click New > Interface. In the Create Interface
dialog, configure the following properties:
2. Drag and drop a COLUMN CHART component onto the canvas. Change the Label to
Vehicles by Make and Category.
3. In the Component Configuration pane, as the Data Source, select Record Type.
In Search record types, enter and select AX Vehicle.
Once you select AX Vehicle, the primary grouping and measure properties populate. The
primary grouping should be by make.
4. Configure the Secondary Grouping property. Click Add Grouping, and under
Secondary Grouping, click the arrow for the dropdown. Select toCategoryRecord >
value.
5. Next is Measure. This field was correctly populated with the count of vehicle IDs. Keep
this value.
8. Click SAVE CHANGES. Your final column chart will look like the image below.
2. Drag and drop a PIE CHART component onto the canvas. Change the Label to
Vehicles by Make.
3. In the Component Configuration pane, as the Data Source, select Record Type.
In Search record types, enter and select AX Vehicle.
Once you select AX Vehicle, the primary grouping and measure properties populate. The
primary grouping should be by make.
4. Sort your chart from largest to smallest percentage. In the Component Configuration
pane, under Sort, click ADD SORT.
5. Under Series, select the checkboxes for Show data labels and Show as
percentage.
7. Click SAVE CHANGES. Your final pie chart will look like the image below.
2. Drag and drop a BAR CHART component onto the canvas. Change the Label to
Vehicles by Make.
Once you select AX Vehicle, the primary grouping and measure properties populate. The
primary grouping should be make.
2. In the Component Configuration pane, as the Data Source, select Record Type.
In Search record types, enter and select AX Vehicle.
4. Clear the checkboxes for Show refresh button and Show search box.
6. Add the make rule input. You will need this rule input to add a record filter to display
the vehicles by make. In Rule Inputs, click the New Rule Input icon. Configure the
following properties:
fv!selection.make_primaryGrouping
● Click OK.
● Under Save Value To, select ri!make.
9. Hide the grid when no make is selected. Click the Read-only Grid component. In the
Component Configuration pane, expand the Layout menu.
a!isNotNullOrEmpty(ri!make)
This expression will only show the grid if a vehicle make is selected.
● Click OK.
10. Click SAVE CHANGES. To test the chart, click any bar in the bar chart and see the list
of vehicles in the grid update to the selected make.
2. Drag and drop a SECTION layout onto the canvas. Update the section Label to Fleet
Data.
3. Next, drag and drop a COLUMNS layout into the Section layout.
6. In the Expression Editor, click inside of the curly brackets, and enter
rule!AX_VehiclePieChart. Click OK.
Alternatively, you could use the design library to drag and drop reusable interfaces. To
include these charts in your design library, return to the three chart interfaces you just
created. In the interface properties, select Include in the design library.
8. Drag and drop another SECTION layout below the first section layout. Delete the label.
Next, add a local variable. You will need a local variable to hold the temporary make
selection that you configured in the drillable bar chart. You can add local variables in
Design or Expression Mode. For this exercise, you will add local variables in Expression
Mode.
Local variables are added to the very beginning of the interface expression,
encapsulating the entire expression within parentheses. You will use the
a!localVariables function to declare the local variable local!make.
10. Click before the curly bracket for the expression, and press Enter.
rule!AX_VehicleDrillableChart(make: local!make)
Troubleshooting Resources
Stuck on a step, or need help troubleshooting? Appian provides several support resources that
you can use as you build:
1. Acme Auto Solution Application - The Acme Auto Solution Application (AS) is the
solution you are working to build in the Step-by-Steps, so you can use it as a reference
tool. Review this application to see how specific objects are configured, or test the app
to see how the features work from a business user’s perspective. You can find this app
in your Appian Community Edition environment.
2. Community Discussions for New Users - Check out the New to Appian thread in
Community. Join our community of experts to ask questions and find answers from past
discussions.
2 Create an Application
4 Expressions
6 Sites
8 Interfaces 101
11 Reports
12 Task Report
Notice of Rights
This document was created by Appian Corporation, 7950 Jones Branch Dr, Tysons, Virginia 22102.
Copyright 2023 by Appian Corporation. All rights reserved. Information in this document is subject to
change. No part of this document may be reproduced or transmitted in any form by any means, without
prior written permission of Appian Corporation. For more information on obtaining permission for reprints
or excerpts, contact Appian Training at academyonline@appian.com.
1. From within the AX Constants folder, click New > Constant. Configure the following
properties:
2. Click CREATE.
1. From within the AX Interfaces folder, click New > Interface. Configure the following
properties:
● Go to docs.appian.com.
● In the search bar, search for Task Report Pattern.
● Scroll down to the Pattern expression section.
● Copy and paste this pattern expression into the interface expression.
8. Collapse line 35 (local!taskReportData). Highlight the entire line, and delete it.
Add the Task Report Page to the Acme Auto Exercise Site
Finally, add the AX Task Report interface to the Acme Auto Exercise Site.
1. Open the Acme Auto Exercise Site, and click ADD PAGE. In the Add Page dialog,
configure the following properties:
a!isUserMemberOfGroup(loggedInUser(),
cons!AX_SUPERVISORS_POINTER)
● Click OK.
Appian Step-by-Step 23.4
© Appian Corporation, 2023 6
2. Click SAVE CHANGES.
3. To preview the new My Tasks page, click the site URL, and go to the new My Tasks
page. From here, supervisors can access all of their tasks in a single place.
NOTE: The task report will display all tasks for the logged in user. You might see tasks
assigned to other groups because your user account is part of those groups.