Uploaded by Victor Tran

Appian Tips and Tricks (version 1)

advertisement
Appian Training
TIPS & TRICKS
This document contains tips and tricks for Designers. Refer to these resources when building
applications.
AGILE DEVELOPMENT
Appian uses and recommends an Agile delivery methodology as it is the best way to ensure speedy
delivery of value. Agile is an umbrella term that describes a growing list of methodologies that all
support the same principles and goals of speed, quality, adaptability, and transparency.
Agile methodologies are based on incremental and iterative delivery. Value is delivered throughout
the project as opposed to only at the end. This reduces risk by creating more feedback loops at
every stage of development. At the end of each increment, also known as a “sprint,” a finished
product (even if minimally capable) is delivered. Designers prioritize work in a backlog, and organize
the backlog by highest value first. Each item is scored with a relative difficulty rating, known as
“sizing,” and that helps designers choose which items to accomplish from the backlog in each sprint.
It is important to remember that the goal of each sprint is to deliver a functioning product, not to
complete a phase of traditional project management methods. Each sprint includes the planning,
development, testing, and delivery of a function or feature. Agile practitioners aim to produce the
items with the highest business value first. Once a viable product is delivered, improvements are
taken off the backlog to increase functionality of already delivered products. Again, this is done in
order of highest business value first.
2
AGILE DEVELOPMENT
Methodology in Class
While a typical Agile sprint is anywhere from two to eight weeks, the condensed timeline of Appian
training courses call for daily cycles. Students should use their experience in class to prioritize each
feature of their project, estimate the difficulty, and select work to be done on each day. Appian
Training suggests focusing on delivering a minimum viable product (MVP) that meets the minimum
requirements of the project first, and then prioritize “nice to have” features on the backlog to be
worked on as available.
To help with this prioritization, Appian utilizes story mapping. A story map helps designers visualize
key deliverables and arrange them. Major capabilities, or goals, are listed across the top. Supporting
functions are listed below those, known as the “spine.” Below each item in the spine is the
supporting subtasks that enable the supporting function. The further downward a task, the less
important it is for the release. In this way, designers can prioritize the most important features and
functions first, and visualize what they can save for later when there is time. The example below
shows an example story map for an email application.
Necessity
Organize
Email
Manage
Email
Manage
Calendar
Time
Search Email
File Emails
Compose
Email
Read Email
Delete Email
View
Calendar
Create Appt
Update Appt
Search by
Keyword
Move Emails
Create and
Send Basic
Email
Open Basic
Email
Delete Email
View a List
of Appts
Create basic
appt
Update
Location
Create
sub-folders
Send RTF
email
Open RTF
e-mail
View
monthly
formats
Create RTF
appt
An initial release may include a subset of key functions from the spine and subtasks, but not all. As
time goes on, and more tasks are completed, designers and planners may find that improved
functionality is not needed or desired. At that point, designers have wasted no time developing
features that do not have value, and can move on to other important elements.
3
APPLICATIONS
An application is a collection of objects that represents a business solution. An application
functionally groups design objects together to form the user interfaces, logic, processes, and data
your users will interact with while doing work in Appian. This container can also be shared or
moved from one environment to another.
Each application has several properties associated with it. Of particular interest is the name of the
application, a short description, its associated actions, and whether or not it is published.
Name
The name of the application that will be visible to users in Tempo
Description
A description of the application visible to other designers
Published
Determines whether or not an application’s news feed items and
actions are visible in Tempo, does not affect record or report
visibility
Actions
A list of designated processes that users can initiate from the Actions
tab when the application is published, processes are not
automatically considered application actions unless assigned as such.
Application
Objects
Objects are bits of
self-contained logic that can
be referenced from 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 an
application (which itself is a
type of object). The
following image illustrates
the relationship of objects
to one another.
4
APPIAN DATA INTERACTION
This diagram explains the flow of data within Appian
5
APPLICATION CHECKLIST
This checklist serves as a notional path a Designer can take when building an application. There are
numerous ways to effectively build applications, but the way outlined below follows the sequence
used in class.
Application Creation
1. Log in to the Appian Designer environment.
2.
Click New Application.
3.
In the Name field, type the name of your Application.
4.
In the Description field, add a short description.
5.
Click Create.
Application Setup
1.
2.
3.
4.
5.
Administrator Console - click Users and create your individual users.
In 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; set the Administrators group as the role of Administrators for the All Users group.
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).
Create any Expression Rules you know will need.
Process Modeling
1.
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.
2.
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.
3.
Create your Data Store Object. Once created, click Add Entity to connect your CDT to the
Data Store. Click Verify and Save and Publish.
4.
In your process model, add a Write to Data Store Entity node and configure it to match your
newly created Data Store.
5. Thoroughly debug your process model to ensure all data is effectively captured from the
interface and successfully stored in your Data Store.
6.
With your Data Store structure in place, create your Query Rules. Generally it is good to
have a query to retrieve all the items and another to retrieve a single item by id.
6
APPLICATION CHECKLIST
Document Management
1.
If your application will require file uploads or documents, create your Knowledge Center.
2.
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.
Entity-Backed Record
1.
Create a new Record Type. Set appropriate security.
2.
Identify the source of your Data (your Data Store and CDT table)
3.
4.
5.
6.
7.
Set your Default Filters and User Filters.
Select Edit Record 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)
Add a Summary View. You will need to create a new Interface with read-only components to
serve as the summary view.
Related Actions. Create at least one related action. For example an update the Record
action is common.
Main Process Model
With your first process and related action created, design your main process model. This will
involve the creation of new interfaces and decisions around how you wish to use and manipulate
data. Debugging after the addition of each new node in your process is strongly recommended.
Reports
The way your data is structured will determine 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 SAIL recipes. Information that exists outside of
a nested CDT can be used by the Report Builder wizard. SAIL recipes (such as a pie chart drilldown
to a grid) are strongly recommended in order to enhance the effectiveness of your reports.
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.
7
SECURITY SUMMARY
Each object in Appian requires security to provide the correct user access. This table lists all design
objects and the associated security roles.
Appian Object
Security Details
Applications
●
●
●
Administrator – update security, import
Editor – add/remove objects from an application
Viewer – view properties of an application, export
Rules and
Constants
(inherited
from folder)
●
●
●
●
Administrator – update security, create sub-folders
Editor – make changes to or delete rules/constants, view security
Viewer – view rules and constants and view the folder in the hierarchy
Deny – no privileges
Note: Even if a user is denied access to a rules folder, they will still be able to use rules and
constants in other objects
Data Stores
●
●
●
Administrator – update security, delete, publish
Editor – add entities, save, verify mappings
Viewer – view definition, select via designer, read/write from RDBMS
Note: Any users that query the database must have at least viewer access
Data Type
Knowledge
Centers and
Folders
Feeds
Groups
No security defined for data types. Only System Administrators can delete them.
●
●
●
Administrator – view content, add/delete files and folders, add/remove users
Editor – upload and download files, view user access levels
Viewer – view and download files (cannot upload files)
●
●
Administrator – modify security
Editor – view security, save, edit, and delete feeds
●
Administrator – can define security for the group
Note: Only System Administrators can create users
8
SECURITY SUMMARY
Appian Object
Security Details
Process
Models
●
●
●
●
●
●
Administrator – publish, delete a lock, delete model, change security
Editor – edit, save, view documentation
Manager – override task assignment, add note
Viewer – view the process model, use process model data
Initiator – start the process model
Deny – no privileges
Record Types
●
●
●
●
Administrator – update security, delete
Editor – update properties, view security
Auditor – view security
Viewer – view properties, view in tempo
Note: security can also be defined for related actions, views, and default filters to determine
user access
Reports
●
●
●
●
Administrator – delete, update security
Editor – update properties, view security
Auditor – view the report configuration
Viewer – view in tempo
Sites
●
●
●
●
Administrator – delete, update security
Editor – update properties, view security
Auditor – view the site configuration
Viewer – view as end user
9
STANDARD OBJECT NAMES
We recommend the following naming conventions for Appian objects. Adapt these standards to
your environment as needed.
Appian
Object
Recommended Naming Standard
●
Applications
●
Published applications. These applications contain the navigation items and their
names are used to group together Actions.
○ Use a short descriptive name that is meaningful to the end users.
All other applications. These applications are not published and are commonly used
to promote artifacts between environments.
○ Use a short unique prefix to identify your application such as HRO for an HR
Onboarding application. This prefix is used for naming all objects related to
the application.
○ Use a short descriptive name.
○ Include the type of the application e.g. CDTs and Data Stores or All
Contents.
○ Suffix the name with a version number such as v1.0.
Example: For the first release of an HR Onboarding application, the published application is
named HR Onboarding and the application bundle used to promote the remaining
artifacts is named HRO HR Onboarding All Contents v1.0..
●
Record
Types
●
Use a short descriptive name that is meaningful to the end users. Do not use the
application prefix as record types are designed to be enterprise-wide entities.
For record type views, use a short name that best describes the subset of the record
data that is represented in the view.
Example: For an HR Onboarding application, the onboarding data and milestones are
displayed in the Onboarding view of the enterprise Employee record type.
●
Tempo
Reports
●
●
Use a short descriptive name that is meaningful to the end users. Because a Tempo
Report is composed of several graphical elements (grids and charts) as well as
editable fields used to filter and sort the report data, the Tempo Report name should
not be narrowed down to a specific timeframe or subset of the data.
Do not preface the report name with the application specific prefix.
Do not suffix the report name with Report.
Example: For an HR Onboarding application, the Tempo Report HR Onboarding
Department contains several charts with dynamic filters to show the number of
10
onboarded employees by month and department
STANDARD OBJECT NAMES
●
Actions
Use a short descriptive name that is meaningful to the end users. Actions are
grouped by applications' name using filters so using the application prefix is not
preferred.
Example: For an HR Onboarding application, the HR department has access to the action
Start new employee onboarding within the filter Human Resources.
Custom Data
Types
●
●
●
Provide descriptive names for your custom data types (CDTs).
Preface the name with the application specific prefix.
Use a custom namespace for yours CDT to group them and associate them with a
specific application. Changing the namespace requires editing the XSD for the CDT.
Example: The CDT representing a new employee in an HR Onboarding application is
named HRO_Employee. Its namespace is defined as urn:appian:hro
Changing a CDT namespace results in the creation of a new CDT unrelated to the original
CDT. All references to the original CDT in process models, rules, reports, etc... must be
manually updated to the new CDT.
Variables
●
●
Use camel case for defining variables.
Use the suffix List to indicate that the variable is a multiple.
Examples:
●
●
●
firstName
salaryAdvanceAmount
generalExpenseList
Using camel case helps differentiate words without adding clumsy underscores.
Rules and
Constants
●
●
●
●
Preface the name with the application specific prefix.
Optionally, use an additional prefix to group related rules and constants.
For Constants, use uppercase for all letters.
For Rules, use pascal case.
Examples: In an HR Onboarding application, rules and constants are named as follow:
●
●
●
HRO_ComputeBaseSalary for the business rule that computes the base salary of
an employee.
HRO_IMG_CAREER_HISTORY_ICON for the constant containing the career icon.
HRO_GetEmployeeOnboardingTasksStatus for the query rule that retrieved the
status of the onboarding tasks for an employee.
11
STANDARD OBJECT NAMES
●
Groups
●
●
●
●
If the group is not intended to be seen directly by the end users, preface 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
If the group is intended to be seen directly by the end users such as a Tempo
audience group, use a short descriptive name.
Create a parent group named for each application.
Name child groups according to their security role.
Each application should include the following child groups at a minimum.
○ Application Administrators
○ Application Users
Examples: An HR Onboarding application has the following groups:
●
●
●
●
●
Process
Models
●
HRO HR Onboarding is the parent group of the application.
HRO Administrators is the group containing the application specific administrator.
HRO All Users is the group containing all users that have access to the HR
Onboarding application.
HRO Human Resources is the group containing the Human Resources employees
that handle task assignments for the HR Onboarding application.
Preface the name of the process model and the process model folder with the
application specific prefix, except for models that will be used as Related Actions
since the model name is used as the related action label.
For running process instances, preface the name with the application specific prefix
and include key data points that help identify the process instances in a Process
Report.
Examples: In an HR Onboarding application, the main process model is named HRO
Onboard New Employee and a running instance of this process model is named HRO
Onboard John Doe - 2014 01 01.
●
Knowledge
Preface the name of the knowledge center and the community with the application
specific prefix.
Centers and
Communitie
s
Examples: In an HR Onboarding application, the application's community is named HRO
Community and each onboarded employee has a dedicated knowledge center named
HRO Employee Name Documents.
12
DOMAIN PREFIXES
Domai Name
n
Details
ac!
Activity Class Parameter
Designer-configured inputs within each node. Used in activities
within a Process Model
pv!
Process Variable
Designer-configured variables. Used anywhere in Process
Models
pp!
Process Property
Default system properties that define information about each
instance (e.g. pp!initiator). Used in Process Models
pm!
Process Model Property
Default system properties that define information about the
model (e.g. pm!version) Used in Process Models
tp!
Task Property
Default system properties that define information about each
activity (e.g. tp!starttime). Used in each activity within a
Process Model
rule!
Rules
References designer-created interfaces, expressions, queries,
decisions, and integrations in any expression in Appian. Allows
keyword syntax.
cons!
Constants
References designer-created Constants in any expression.
fn!
Functions (default prefix)
Call basic functions in any expression. Does not allow keyword
syntax.
ri!
Rule Inputs
Designer-created inputs for all rule types (interfaces,
expressions, queries, decisions, and integrations). Used in any
rule designer.
rf!
Record Field
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
rp!
Record Property
System defined record properties. Used in the record type
designer.
type!
Type Constructors
Returns a value where the output type is a Custom Data Type.
Used in any expression and allows keyword syntax.
a!
Appian Function
Call certain functions (especially SAIL functions) in any
expression. Allows keyword syntax.
local!
Local Variable
Define or call a variable that can be used in load() or with()
functions. Used in any expression.
fv!
Function Variable
System-defined properties of certain functions (e.g. fv!index).
Used in certain functions and identified in the documentation
of the function.
13
Download