Appian 20.3 Developer Coursebook
Appian 20.3 Developer Coursebook
3
Fundamentals Course on the Appian Platform.
DEVELOPER COURSEBOOK
SYLLABUS
WELCOME
OBJECTIVES
2
COURSE
AGENDA
DAY 5 DEVOPS
Exporting & Importing | Administration Console
3
Understanding Appian
End users can interact with Appian in several ways: Tempo, Sites and
Embedded. When deciding which option to provide your users, you should
think about what applications or objects they will be interacting with. Even with
three different options, most users will use Sites over Tempo and Embedded.
To understand the best option for you, continue reading below.
Tempo Sites
The Tempo interface enables users to Sites are a way to provide users with a
have a complete picture of many customized user experience focused on a
applications in Appian. It is designed specific set of functionality. With Sites,
for knowledge workers who need to users are presented with a business-
access all components of multiple orientated navigation experience that is
applications quickly. Tempo users get inline with what they are used to. Similar
a holistic perspective of past, present, to Tempo, Sites can be branded to match
and future business activities as well the organization identity and give a
as fast access to the tools they need familiar look that carries through the
to get work done. application.
Embedded
Some businesses need more control over site navigation or look and feel. They
may cater to external users and therefore want to have consistent branding
across the application. Or they may be integrating with an existing intranet portal
and want to keep the interface employees are familiar with while introducing
new capabilities. With Embedded Interfaces, companies can embed Appian
objects into their web page or portal.
4
Understanding Appian
Planning is an important first step as you begin your Appian build. During the
planning phase, your goal is understanding the purpose of the application, the
needs of your users, and how you want to handle data. Here are some key
steps.
Item 1
Reports - Graphs display aggregated data from multiple sources
Item 2
into a single view to aid in organizational decisions. Reports
Item 3
includes Pie Charts, Line Charts, Bar/Column Charts and Grids.
Users should be able to Filter, Drill-down and click on Links that
dive deeper into the data to give users more information.
Item 4
0 10 20 30 40
5
Understanding Appian
SUMMARY
Many of our students are tempted to shortchange the planning process in favor
of getting into the tools and building as soon as possible. We caution you
against this approach.
The more time you provide yourself to plan and think through the data and
processes you plan to work with, the faster your development efforts will
proceed.
Work closely with your
product owners,
stakeholders, and business
analysts to make sure you
properly prioritize the
features functions of your
application.
6
Application Structure
Objects are bits of self-contained logic that may be referenced and reused from
within another object. Individually, they may be an Interface, a static value (or
list of values), a business rule, or others. Think of them as building blocks used
to construct your application (which itself is a type of object).
7
Magnifying glasses are
Object Management links to documentation
Groups
Users within Appian are managed through the use of Groups. Groups allow
developers to designate what users can SEE and DO certain application objects
through the use of Object Security as you build, create, and develop components.
There are 2 schools of thought when creating Groups: System vs User Groups.
As objects are created and placed in their appropriate folder, they will
automatically inherit the security of the folder unless designated otherwise.
There are 4 primary types of Folders in Appian each used for different
purposes:
8
Magnifying glasses are
Reusability in Appian links to documentation
Constants
Constants are developer-configured values that can be used throughout your
applications. They are useful because they provide consistency across many
application objects. For example, if all tasks should send a reminder email after
24 hours of inactivity, the value “24” can be saved and reused in each task within
the application.
8
Reusability in Appian
Expression Rules
Expression rules are reusable, designer-configured functions
used to manipulate data. They can have a combination of
literal values, operators, variable data, functions, and other
rules and constants.
"New Ticket " & ri!ticketId & " by " & user(ri!username, "firstName")
New Ticket AN-1097 by John
Literal values include text values, integers, decimals, and special literals such as
true, false, and null. In the image above, “New Ticket” and “by” are literal values
that return text. Make sure to use quotations when referencing literal text values
in an expression
To call variable data in an expression, create a rule input and define the data
type. Call the variable data rule input in your expression by using the ri! domain.
To test the expression, enter test values in the Test Inputs View. In the example
above, ticketId and username are inputs for this expression. It’s also possible to
use other domains depending on where the expression is used. For a list of all
domains, view the Domain Prefixes section.
9
Reusability in Appian
Decisions
A Decision is a grouping of business rules that determines
output values based on a set of inputs. Unlike expression
rules, which primarily calculate or manipulate data, Decisions
are best used to encapsulate complex, business-specific logic.
Decisions are configured in the decision designer, which
enables fast, intuitive implementation of business logic
without using expressions by way of decision tables.
Decisions can be called from any expression using rule!, so they can be reused
across multiple objects throughout the system.
For inputs, decision tables can accept text, numbers, dates, and booleans. The
possible outputs for decisions include booleans, dates, documents, folders,
groups, numbers, process models, text, and users.
Interfaces
10
Creating Workflows
Process Models
Process Models allow Developers to create executable
workflows through a drag-and-drop interface. Process Models
drive Actions and Related Actions in Appian and are made up
of nodes representing each of the activities within a workflow.
Each workflow is made up of activities performed by a user or
the system to complete the process. The three shapes you’ll
generally see in Process Models are rectangles (activities),
diamonds (decisions), and circles (start/end).
Once you create a new process model, set basic process properties. The
Properties window governs all of the properties for the process model and has
important settings for variables, alerts, and data management. While not part of
the properties tab, you should also set security on a process model as it’s
created. For example, you’ll want to set Administrators so your admin group has
access to everything within the process model.
Application Actions
Once you create a Process Model, an Action is required to expose the process
to users in Tempo. Then, users can trigger the process through the Actions tab.
If a Start Form is configured for the process, users can complete the form prior
to starting the process.
Actions will only show in Tempo if the security is defined correctly. To view an
Action, users must be granted at least View privileges on the application and
Initiator privileges on the Process Model.
11
Creating Workflows
Start Forms
To account for tasks that are regularly abandoned, Developers can configure a
Start Form to display to a user when first selecting an Action. The process
instance won’t actually begin until the start form is submitted, thus limiting the
number of abandoned processes. Start forms are also required when using
sites, as the start form is always displayed in the site tab.
Any node input that is created for a User Input Task is known as an Activity
Class Parameter, which uses the prefix ac! in expressions. Activity class
parameters are required if collecting information that a user enters on the form.
12
Creating Workflows
Data Stores
Data stores connect Appian to external relational databases in order to store
and retrieve application data. Learn how to create data stores, run DDL scripts
and retrieve external data in your application.
Data stores allow you to insert, update, query, and delete data in the format
needed by your applications without writing structured queries (SQL). You must
have a business data source configured to use this feature.
You must create a node input with the same custom data type (CDT) as the
entity in the data store that you select. The way you define your custom data
type determines whether you can update existing records in the data store. You
must also designate a field in the CDT as your record ID (primary key) and
specify an existing value, or the data written is always inserted as a new record.
13
Working with Data
Records
Records are a visual representation of a collection of
business data on something that has importance to an
organization. They are designed to merge information for
users so that they can make better and more effective
decisions. Records can draw data from three sources:
datastore entities (Entity-Backed), process models (Process-
Backed), and external services (Expression-Backed).
Entity-Backed records are derived from a datastore entity, which is a table in
a relational database. One record represents one row of that table. When
constructing a record, you will have access to all fields within that row.
Expression-Backed records are less defined. Since they are built using an
expression rule, whatever one record represents will depend on the source
of the data and how it has been brought brought into Appian. Often,
Expression-Backed records use an integration as the source of the data.
14
Working with Data
Queries
Queries allow Developers to return data from a relational database and reuse
meaningful data throughout Appian. Queries are configured in expression rules
using the Visual Query Editor. With 20.3, if a Record Type already has the
needed information, you can simply use the new rv! and recordtype! syntax to
query a record versus building a new query.
Reports
Reports are an aggregation of data from multiple sources displayed in a single
dashboard. The data can come from processes, process analytics, relational
databases, web services, and integrations. To build a report, you must first build
an interface to display in the report.
The most common objects to display in reports are grids and
charts.
Grids can be used to display tabular data. Each grid can use
its own source, and can be configured to include text, links,
images, and more. Grids are interactive too, so you can
browse between multiple pages and sort columns in the
grid if necessary.
15
Integrations
Web API's
Web APIs provide a way to expose Appian data and services to outside
systems. Each Web API is an association between a URL/HTTP method
combination and an expression. When a client makes an HTTP request to the
given URL, the associated expression is executed and the result is returned to
the client. This means that any data or service that is available inside an
expression can be exposed to an external system via a Web API.
Web API's
Systems Calling Appian
16
DEVOPS
Application Deployment
Typical development in Appian requires three environments: Development,
Test, and Production.
Development Environment
Used to design applications. Usually only developers have access to this
environment, and it provides access to create all application objects.
Test Environment
Used to ensure the application meets all requirements and behaves as
expected. All applications should be fully tested before end users are granted
access. Types of testing include unit testing, user acceptance testing,
integration testing, performance testing, and more.
Production Environment
Used for all end user access. Only applications that have passed all testing
should be promoted to Production.
Security Summary
This feature provides an overview of all objects and the security role associated
with each object.
Missing Precedents
This feature Lists any required supporting objects that do not exist in the
application.
This course does not teach Appian's delivery philosophy, but it is important to
note that Appian recommends and uses an Agile delivery methodology as it is
the best way to ensure speedy delivery of value. Agile is an umbrella term
describing a growing list of methodologies supporting the principles and goals
of speed, quality, adaptability, and transparency.
18
Application Checklist
This checklist serves as a notional path a Developer may take when building an
application. There are numerous ways to effectively build applications, but the
way outlined below follows the sequence used in class with corresponding
helpful links.
Click Create ---> Set Security > Gear > Application Security
Folder Creation
Folders allow Developers to organize and assign access rights to the
application objects you create. Specific Folders are needed for Rules
(Constants, Decisions,Integrations), Documents and Process Models.
Documents or rules contained in a folder can automatically inherit user-
rights from the folder (Process Model folders do not provide security
inheritance).
Document Management
If your application requires file uploads or documents, create your
Knowledge Center.
Create at least one Document Folder to hold your uploaded files. Set
applicable security on your Knowledge Center. If required for different
types of files, create multiple folders.
19
Application Checklist
Group Creation
Within the Application Designer, create your Groups. All applications should
have at least two groups (Administrators and All Users). Make All Users the
parent-level group for all other groups and set the Administrators group as the
role of Administrators for the All Users group.
Additional Objects
Create your Custom Data Type(s) (CDT), ensure you use an auto generated
primary key.
Create any Constants you know you will need (you will create more Constants
as needed during the application building process).
Build your first interface to fit within your first process model. Generally this is
the add new item or object as per the Process Model.
Create your first Process Model. Generally this is the process to create the base
record of objects or items such as customers, vehicles, positions, etc. Remember
to set applicable security - Admin group serving as Administrators, the group(s)
performing the action as Viewers or above. Remember to set your Data
Management policy, Alerts, and Process Variables in the Process Model
Properties tab.
Create your Data Store Object. Once created, click Add Entity to connect your
CDT to the Data Store. Click Verify and Save and Publish.
In your process model, add a Write to Data Store Entity node and configure it to
match your newly created Data Store.
20
Application Checklist
Thoroughly debug (File > Start Process for Debugging) your process model to
ensure all data is effectively captured from the interface and successfully stored
in your Data Store via Cloud Database (Navigation Icon > Cloud Database)
With your Data Store structure in place, create your Queries. Generally it is good
to have a query to retrieve all the items and another to retrieve a single item by
ID.
Select Edit List and configure the record columns and data
displayed.
Enter a value for Record Title (this will be essential if you plan
to use News posts with Record Tags).
21
Application Checklist
Reports
The way your data is structured determines how you create
different types of reports. If you use a nested CDT, you will not
be able to use the Report Builder wizard in the interface
designer and will need to build your reports from scratch or
using Interface Patterns (found on Appian Documentation).
Sites
Once your Records, Reports, and Processes are established,
unite them logically in building a Site. According to the groups
used by your application, consider how many Sites would be
appropriate to build.
Security Summary
With the major aspects of your application complete, select
Security Summary from the main menu in the Appian Designer
screen. Modify or add security to any objects you may have
missed in accordance with Appian Documentation
recommendations.
22
Standard Object Names
Object Naming
While Appian does not enforce any particular naming convention, it is helpful
for development teams to agree on a consistent method of naming objects
based on their type. This makes it much easier to locate and sort through
objects using pickers and type ahead fields. Below you will find suggested
examples of naming conventions used by the Appian training team.
Actions
Use a short descriptive name that is meaningful to the end users.
Example: For an HR Onboarding application, the HR department has access to
the action Start New Employee Onboarding within the filter Human Resources.
Variables
Use camel case for defining variables. Using camel case helps differentiate
words without adding clumsy underscores. Use the suffix List to indicate that
the variable is a multiple.
Examples: firstName or categoryList
23
Standard Object Names
Examples:
Business Rule > HRO_ComputeBaseSalary
Constant > HRO_IMG_CAREER_HISTORY_ICON
Query Rule > HRO_GetEmployeeOnboardingTasksStatus
Process Models
Prefix the name of the process model and the process model
folder with the application specific prefix. For running process
instances, prefix the name with the application specific prefix
and include key data points that help identify the process
instances in a Process Report.
24
Standard Object Names
Groups
If the group is not intended to be seen directly by the end
users, prefix the name with the application specific prefix. For
example, the administrator group of the Employee record type
is never used by the end users and is named HRO Employee
Record Administrators.
Examples:
Parent Group > HRO HR Onboarding
Admin Group > HRO Administrators
All Users Group > HRO All Users
Organization vs Function
When creating groups, consider creating groups that are for organizational and
functional purposes. Depending on the size or your team, you may want to
create a group specifically for those who will be editing process models or
another specific type of object/component.
25
Domain Prefixes
Data Domains
There many areas in Appian where you can call upon stored data, functions,
and user-created reusable objects. To reference these items, you must use a
prefix to identify where Appian should look. This is a list of prefixes you can
use to find and utilize these components.
Process Variable
pv!
Developer-configured variables. Stores information and can be
referenced throughout the process model.
Process Property
pp! Default system properties that define information about each
instance (e.g. pp!initiator). Used in Process Models.
Task Property
Default system properties that define information about each
tp!
activity (e.g. tp!starttime). Used in each activity within a Process
Model.
Rules
References developer-created interfaces, expressions, queries,
rule!
decisions, and integrations in any expression in Appian. Allows
keyword syntax.
Constants
cons!
References developer-created Constants in any expression.
26
Domain Prefixes
Functions
fn! Call basic functions in any expression. Does not allow keyword
syntax.
Rule Inputs
ri! Developer-created inputs for all rule types (interfaces, expressions,
queries, decisions, and integrations). Used in any rule designer.
Record Variable
rv! References all fields available in the record source (i.e. columns in a
database for an entity-backed record). Used in the record type
designer.
recordtype!
References a specific Record Type. Can be used to create a Record
View on an Interface.
Type Constructors
type! Returns a value where the output type is a Custom Data Type. Used
in any expression and allows keyword syntax.
Appian Function
a! Call certain functions (especially SAIL functions) in any expression.
Allows keyword syntax.
Local Variable
local! Define or call a variable that can be used in a!LocalVariables()
function. Used in any expression.
Function Variable
fv! System-defined properties of certain functions (e.g. fv!index). Used
in certain functions and identified in the documentation of the
fn! function.
27
Click the magnifying glass
Additional Resources for all available resources
Academy Online
For users looking for a self-paced learning experience or for users who wish to
continue their education beyond the classroom, Appian provides free, online
training and exercises at Academy Online.
Documentation
Learn more with instruction, guidance, reference, and a plethora of examples and
recipes to suit almost any situation. You can find them at docs.appian.com
Community
The Appian Community acts as an information hub for Appian's supporting
resources as well as providing a valuable one of its own: Discussion Forums.
Playbook
Created and maintained by expert practitioners in our Professional Services
department, The Appian Playbook offers checklists, tools, techniques, examples,
and best practices for managing project delivery.
Credentials
Put your knowledge to the test by becoming Appian Certified. Level 1, 2, and 3
certifications can be attained through Academy and will be recorded as part of
your Appian skill set.
28