Appian BestPractices and Standards Updated
Appian BestPractices and Standards Updated
act
icesf
orAppi
andev
eloper
s
BestPr
act
ices-Appi
an
Tabl
eofCont
ent
s
APPI
ANBESTPRACTI
CES 4
1. Appl
i
cat
ion 4
2. CDT&Dat
aSt
ore 4
2.
1. CDT 4
2.
2. DATASTORE 5
3. Gr
oup 5
4. Knowl
edgeCent
er 5
5. Document
s 5
6. Pr
ocessModel 6
7. Rul
es&Const
ant
s 7
7.
1. Const
ant
s 7
7.
2. Expr
essi
onRul
es 7
7.
3. I
nter
faces 8
7.
4. Deci
sion 8
8. Recor
ds 8
9. Repor
ts 8
10. Si
tes 9
11. SAI
L 9
12. Pr
ocessRepor
ts 10
13. Connect
edSy
stems 10
14. I
ntegr
ati
on 10
15. WebAPI
s 11
16. Appl
i
cat
ionPer
for
manceandScal
abi
l
itySt
andar
ds 11
17. Dat
abaseManagementSt
andar
ds 12
18. Appl
i
cat
ionI
mpor
t/Expor
t 12
18.
1. ChangeManagement 12
18.
2. TheDependencyChecker 14
19. Secur
it
y 14
APPI
ANBESTPRACTI
CES
1.Appl
icat
ion
1.Appl
i
cat
ionmusthav
eUNI
QUEandi
ntui
ti
venames.
2.Al
ltheobj
ect
sandt
heappl
i
cat
ionmusthav
esecur
it
ydef
ined.
3.Cr
eat
eobj
ect
sfr
om t
hecont
extoft
heappl
i
cat
iont
hatusesi
t.
4.Remove unused r
ules,const
ant
s oranyot
herobj
ect
sfr
om appl
i
cat
ion bef
ore
expor
ti
ngtootherenvi
ronment
s.
5.Avoi
dsecur
ingobj
ect
stouser
s.Bui
l
dpat
chesi
ncr
ement
all
yforqui
cki
dent
if
icat
ion
ofobj
ect
s.
6. Al
way
sinspectbef
orei
mpor
ti
ngy
ourappl
i
cat
ioni
ntoot
herenv
ironment
s.
7.Mai
ntai
nCDT’
sandDat
aSt
oreasasepar
atepackage.
8.Mai
ntai
nGr
oupsasasepar
atepackage.
9.I
dent
if
yandpr
epar
eDDLscr
ipt
sonneedbasi
s.
10.Checkf
orMi
ssi
ngdependent
sbef
oreexpor
ti
ngpackage/
pat
ch.
11.Donoti
mpor
tthepackagewi
thoutsuccessf
uli
nspect
ion.
12.Val
i
dat
eenv
ironmentspeci
fi
cobj
ectchangesi
nther
espect
iveenv
ironment
s.
2.CDT&Dat
aSt
ore
2.
1.CDT
1.Foll
ow t he nami
ng conv
ent
ion as AppPREFI
X_camel
Case (
Exampl
e: <APP
Pref
ix>_
nameCDT)
2.Pr
ovi
depr
operdescr
ipt
ionf
oraCDT
3.CDTs shoul
d use appl
i
cat
ion-
speci
fi
c namespace.(
Exampl
e:
ur
n:com:
appian:
types:
<AppPref
ix>)
4.TheCDTnameshouldclosel
ymat
cht
heunder
lyi
ngdat
abaset
abl
e/v
iewnamewi
th
theappr
opr
iat
efor
mat.
5.Al
lCDTsshoul
dcont
ainnomor
ethan50f
iel
ds.
6.Speci
fycol
umnnamesnotmor
ethan27char
act
ers.
7.Al
lCDTsst
oredi
ndat
ast
oreshoul
dexposeapr
imar
ykey
.
8.CDTsshoul
dnothav
emor
ethan1l
evel
ofnest
edCDTs
9.CDTshouldhavepropercol
umndef
ini
ti
ons(
def
inei
nXSD)i
naccor
dancewi
tht
he
under
lyi
ngdat
abasetabl
e.
10.Av
oidr
ename,
del
eteorchanget
het
ypeofexi
sti
ngCDTf
iel
ds.
11.I
ncl
udenul
l
abl
east
rueannot
ati
onwher
everappl
i
cabl
e.
12.Whenaddingnewf
iel
dstoCDTal r
eadyinuse,ensurethatt
hepr
ocessmodel
sand
r
ulesusi
ngthi
sCDTcanproper
lyhandl
enul
lvaluesinthenewCDTfi
elds.
13.CreateCDTwit
hpar
entchi
l
drel
ati
onshi
pbyspeci
fyi
ngt
hepr
imar
ykeyel
ementi
nal
l
chil
dtabl
es.
14.Iff
latCDTshav ef
ieldst
hatst
oreIDsofotherr
ecor
ds,
theCDTsshoul
dhav
efor
eign
keyconstr
aint
sdefinedi
nthedatabaseschema
15.Desi
gner
sshoul
dnotr
euseCDTsacr
ossappl
i
cat
ions.
2.
2.DATASTORE
1.Alldata st
ores shoul
dfol
l
ow t
he nami
ng conv
ent
ion wi
th Appl
i
cat
ion Pr
efi
x.
(Exampl
e:<APP>MyDS)
2.Prov
idepropersecur
it
yt ot
heDat
astor
etoaccesst
heDBent
it
ies.(
Admi
ngr
oupas
admini
str
atorsandAllUser
sgr
oupasEdit
or)
.
3.Hav
esepar
atedat
ast
oref
orCDTsoft
abl
esandv
iews.
4.Ent
it
iesi
nsi
det
hedat
ast
oreshoul
dfol
l
owcamel
casenami
ngconv
ent
ion.
3.Gr
oup
1.Keepgr
oupnamesshortbutdescr
ipt
iveanduset
heappl
i
cat
ionpr
efi
x.(
Exampl
e.
<APPPr
efi
x>Admi
nist
rator
)
2.Keepgr
oupnamesuni
queandpr
ovi
deav
ali
ddescr
ipt
ion.
3.Av
oidcr
eat
ingcust
om gr
oupt
ypesunl
esst
her
eisast
rongneed/
requi
rement
4.Onl
ycr
eat
ethegr
oupsnecessar
yfort
askassi
gnmentorsecur
it
y
5.DONOTdel
etegr
oupsoncedepl
oyedt
oot
herenv
ironment
s.
6.Al
lgr
oupsmusthav
eanadmi
nist
rat
orgr
oupdef
ined.
7.DONOTadduser
sasadmi
nist
rat
orst
oagr
oup.
8.Uset
hesamepr
efi
xforal
lgr
oupsofaspeci
fi
cappl
i
cat
ion.
4.Knowl
edgeCent
er
1.Pr
ovi
depr
opernamewi
thdescr
ipt
ion.
2.DONOTusedupl
i
cat
enameswhi
l
ecr
eat
ingKnowl
edgeCent
er.
3.Conf
igur
eappr
opr
iat
eSecur
it
yandi
nher
itt
hesamef
orf
older
scr
eat
edi
nsi
deKC.
4.Creat
et he knowledge cent
erwi
thr
equi
red f
olderst
ruct
uret
o st
oret
he
appli
cat
ionspeci
fi
cdocuments
5.Whenmodify
ingtheKnowledgeCenter
'sexpi
rat
iondat
e,ent
ert
henumberof
day
sunt
ili
texpi
res,
notanactual
dat
e.
5.Document
s
Linkst
odocument sshouldal
waysbel i
nkedthr
oughconstants,nottot
hedocumentdirect
ly.If
thedocumentisthenchanged,oranewv ersi
onisuploaded,thenthepr
ocessorchanneldoes
notneedtobeupdat ed;onl
ythesingleconstantneedstobeupdat edforallt
hel i
nkst hat
documentmighthaveintheappli
cat
ion.
Refer
encedocumentsshoul
dallbekepti
nthesamef
olderwi
thacor
respondi
ngf
olderof
const
antswi
thwhichtor
efer
encet
hem.
6.Pr
ocessModel
1.Al
lprocessmodel
sshouldf
oll
owthenami
ngconv
enti
onusingt
hefor
m“Ver
bNoun”
pr
efi
xedbyappli
cat
ionname.(
Exampl
e<APPPr
efi
x>Creat
eUser)
2.Allpr
ocessmodel
sshoul
dhav
esecur
it
ydef
inedatt
hel
owestsecur
it
ylev
elas
possi
ble.
3.Al
lpr
ocessmodel
sshoul
dhav
edy
nami
cdi
spl
aynames.
4.Al
lpr
ocessmodel
sshoul
ddef
ineshor
testar
chi
vi
ngper
iodasmuchaspossi
ble.
5.Al
lpr
ocessmodel
sshoul
dhav
eal
ertconf
igur
edt
otheappl
i
cat
ionadmi
nist
rat
oror
pr
ocessdesi
gnergr
oups.DONOTconf
igur
eal
ertt
oindi
vi
dual
user
s.
6.Pr
ocessmodel
sshoul
dhav
epr
operSwi
mlanesandAnnot
ati
ons.
7.Swimlanest
askassi
gnment
stobeusedonl
yifal
lthet
asksar
etobeact
ionedbya
si
ngl
egroup
8.Pr
ocessmodel
sshoul
dnothav
emor
ethan30pr
ocessnodes.
9.Processnodesshoul
dfol
l
ow t
he“
Ver
bNoun”nami
ngconv
ent
ion(
Exampl
e:Get
TaskList
)
10.Unatt
endedprocessnodesshoul
dbeassi
gnedt
oexecut
eincont
extofdesi
gner
i
nsteadofi
nit
iat
or
11.Pr
ocessmodel
sshoul
dnothav
emor
ethan50pr
ocessv
ari
abl
es.
12.Process Var
iabl
es shoul
dfol
l
ow camelcase nami
ng conv
ent
ion.(
Exampl
e:
l
istRecor
ds)
.
13.Al
lthepr
ocessmodel
sneedst
ocr
eat
einaspeci
fi
cfol
derr
elat
edt
otheappl
i
cat
ion.
14.Pr
ovi
deFol
derandpr
ocessmodel
secur
it
ytoaccesst
hepr
ocessmodel
s
15.Pr
ovi
dedi
spl
aynameandt
hedescr
ipt
ionf
orev
erynodepr
esenti
nthePM
16.Sett
hepr
ior
it
yasnor
mal
foral
lnodes
17.Processnodesshoul
dbev isi
blewi
thi
nthecanv
asofpr
ocessmodeldesi
gnerand
thenodeconnect
orsshoul
dnotover
lap.
18.Shoul
dlabel
all
gat
ewaynodesi
nthepr
ocessmodel
int
hef
orm ofquest
ions.
19.Label
all
theout
goi
ngf
lowsf
rom gat
eway
.
20.XOR/
ORgat
eway
sshoul
dhav
esi
ngl
eincomi
ngf
low.
21.XORgat
eway
sar
epr
efer
redov
erORgat
eway
sasmuchaspossi
ble.
22.Twogatewaysshoul
dnotconnectt
oget
her
.Ascr
iptt
askoradummynodecanbe
usedi
nbetweentwogat
eways
23.Scr
ipt
staskt
obeconf
igur
edonl
ywi
thDat
aOut
putandnotDat
aInput
s
24.Conf
igur
eal
lthet
askdi
spl
aynamesi
ntheUIbymeansofexpr
essi
onr
ules.
25.Conf
igur
eAssi
gnment
sint
heUInodebyassi
gni
nggr
oupsorapr
ocessv
ari
abl
e
cont
aini
ngt
heassi
gnee.DONOTconf
igur
etaskassi
gnmentt
oauserdi
rect
ly.
26.Av
oidusi
ngDepr
ecat
edf
unct
ions.
27.UseQueryEnti
ti
es/Wr
it
etoDat
ast
orenodesi
nst
eadofQuer
yRul
esandQuer
y
Dat
abasenode.
28.NoCDTsshoul
dbeconf
igur
edas"
Passbyr
efer
ence"i
nthei
nput
soft
hesub
pr
ocess
29.Sav
eUt
il
it
ypr
ocessmodel
sint
hesepar
atef
older
.
30.Except
ionpat
hhast
obesetusi
ngexpr
essi
onr
ulesandconst
ant
sforUseri
nput
Task.
31.Timerval
uesshoul
dbest or
edi
nConst
ant
sanduset
heconst
ant
sforal
lti
mer
confi
gur
ati
onsi
nthepr
ocess.
32.UseSAI
Lwi
zar
dinst
eadofact
ivi
tychai
ningwi
thmul
ti
pleuseri
nputt
asks.
33.Enable“Del
etethepr
evi
ousl
ycompl
eted/
Cancel
l
edi
nst
ances”f
ornodest
hatwi
l
lbe
executedi
nloops
34.Desi
gner
sshoul
dnotr
eusepr
ocessmodel
sacr
ossappl
i
cat
ions.
35.I
faPVi spassedint
oasubpr ocess,t
hesubprocessandtheparentprocessshould
havet
hesamePVname.I ftheydonothavethesamePVname, taskreportswil
lnot
beabl
et oshowthedatacorrect
lybecauset
asksinthesubprocesscannotseePV
namesinthepar
entprocess.
7.Rul
es&Const
ant
s
Rul
esandconstant
sshar
ethesamenamespace,
all
namesmustbeuni
quei
ntheenv
ironment
,
nott
heappl
icat
ion.
7.
1.Const
ant
s
1.Fol
low t
henamingconvent
ionf
orConst
antasAPPPREFI
X_ALL_
CAPS.(
Exampl
e:
APP_CONSTANT_VALUE)
2.DONOTnameconst
antwi
thexi
sti
ngAppi
anf
unct
ions.
3.Al
lConst
ant
sshoul
dhav
epr
operdescr
ipt
ions.
4.Al
lConst
ant
sar
eor
gani
zedi
ntoappl
i
cat
ionspeci
fi
cfol
der
s
5.Ment
ionenv
ironmentspeci
fi
cconst
ant
swhi
l
ecr
eat
ingConst
ant
s
6.Al
lConst
ant
sshoul
dinher
itsecur
it
yfr
om t
hef
older
s.
7.
2.Expr
essi
onRul
es
7.Fol
low t
henamingconventi
onforExpr
essi
onRulesasAPPPREFI
X_camel
Case(
)
al
ongwithv
ali
ddescr
ipt
ion.(
Exampl
e:<APP>_f
ormAppl
i
cat
ionI
d)
8.DONOTnameExpr
essi
onRul
eswi
thexi
sti
ngAppi
anf
unct
ions.
9.Or
gani
zet
her
ulesi
ntoappl
i
cat
ionspeci
fi
cfol
der
s.
10.Usecomment
s/*
*/t
odescr
ibet
her
ulesl
ogi
c.
11.Conf
igur
eTestcasesf
oral
lexpr
essi
onr
ules
12.Av
oidusi
ngt
he‘
and(
)‘f
unct
iont
ogr
oupasser
ti
onst
oget
herf
oreasydebuggi
ng
13.Updat
etestcasesev
eryt
imet
heexpr
essi
onr
ulechanges.
14.Anal
yzet
heper
for
mancev
iewoft
heExpr
essi
onr
ulest
oopt
imi
zet
hecode.
15.UseQueryEnt
it
ytof
etcht
hespeci
fi
ccol
umnswi
thnecessar
ysel
ect
ion/
aggr
egat
ion
fr
om DB
16.Quer
yfi
l
ter
sinquer
yEnt
it
yshoul
dhav
enul
lcheckbef
oreexecut
ing.
7.
3.I
nter
faces
17.Saveusef
uldef
aul
ttesti
nput
sforeachi
nter
face;
Sav
eatl
east2t
estcasesf
oreach
expr
essi
onrul
e
18.Foreveryrul
et hatis edit
ed/cr
eat
ed,use dependencycheckert
o ensur
ethat
ever
ywheret
herulei
scalled,al
li
nput
sarespeci
fi
ed
19.Al
lrul
esar
epr
oper
lyf
ormat
tedandr
eadabl
e
20.Leav
ecomment
sint
heSAI
Lforev
erymaj
orcodechangemade
7.
4.Deci
sion
21.Speci
fyt
hev
aluesf
oral
lthei
nput
sindeci
sion
22.DONOTdel
eteDeci
sionObj
ect
s
23.Out
putObj
ect
soft
hedeci
si
onsshoul
dpr
esenti
ntheeachenv
ironment
.
24.Usedeci
sionsf
orCompl
exorBusi
nessspeci
fi
cLogi
cimpl
ement
ati
on.
8.Recor
ds
1.Pref
ixSi
ngularRecor
dTy
peNamewi
thappl
i
cat
ionname.(
Exampl
e:<APPPREFI
X>
RecordManagement)
2.Plur
alRecor
dTypeNameanddescr
ipt
ionshoul
dbeUNI
QUEandnamedpr
oper
lyf
or
theenduser
storead.
3.Al
lRecor
dTy
pesshoul
dhav
esecur
it
ydef
inedf
orAdmi
nist
rat
orsandVi
ewer
s
4.Defineallt
heLi
stVi
ewsandDashboar
dsi
nrul
es(
andnotdi
rect
lyi
ntheExpr
essi
on
fi
elds).
5.Useaddi
ti
onal
viewsort
abst
odi
spl
aymor
edet
ail
sinanef
fect
ivemanner
6.Al
ldashboar
dsusethefunct
ionl
oad(
)ora!
local
var
iabl
es(
)whendi
spl
ayi
ngpagi
ng
gr
idsanddynami
cbehav
iors.
7.Av
oidUsi
ngCompl
exExpr
essi
onsf
orRecor
dTi
tl
es
8.Av
oidusi
ngsl
owexpr
essi
ons.
9.Pr
ovi
deHi
gh-
Resol
uti
onI
magesf
orRecor
dIcons
10.UseDi
sti
nctI
magesf
orRecor
ds.
11.Conf
igur
erel
atedact
ionswi
thoutpr
ocessst
artf
orms.
9.Repor
ts
1.KeepRepor
tNamesSi
mpl
eandConci
se.
2.Conf
igur
epr
opersecur
it
yfort
empor
epor
ts.
3.Li
mitt
heNumberofSer
iesVal
uesandCat
egor
ies.
4.Li
mitt
heNumberofChar
tSAI
LComponent
sont
heUI
.
5.Li
mitQueri
estoExt
ernalDat
abases(
notmor
ethan3)asi
taf
fect
stheper
for
mance
oft
hereport
s.
6.UseQuer
yent
it
iesf
orquer
yingext
ernal
DB.
7.UseAppr
opr
iat
eCol
umnLay
out
sforRepor
tCont
ent
.
8.KeepChar
tLabel
sShor
t.
9.Mi
nimi
zet
heNumberofChar
tSer
iesandCat
egor
ies.
10.Li
mitt
heNumberofGr
idCol
umnsandKeepTextShor
t.
11.Accessi
bleRepor
tsMustPr
ovi
deaPl
ain-
TextRepr
esent
ati
onofDat
a.
12.Confi
gur
erel
evantconst
ant
s,i
nter
facesand expr
essi
on r
ulesf
ort
empo r
epor
t
desi
gn
10. Si
tes
1.Si
tenameshoul
dbeUNI
QUEandmeani
ngf
ul.
2.Confi
gurepr
opersecur
it
yforsi
tes.User
smusthav
eatl
eastv
iewerconf
igur
edf
or
thesi
te.
3.Webaddr
essi
dent
if
iermustbeuni
queacr
osssi
tesi
nyoursy
stem.
4.Sel
ectt
heappr
opr
iat
epagewi
dthf
ort
hecont
ent
.
5.Si
tel
ogomustbel
esst
han100KB.
6.Si
tel
ogoshoul
dbeaJPG,
PNG,
BMP,
JPEGorGI
Ffi
l
ewi
that
ranspar
entbackgr
ound.
7.Usef
avi
conandbr
andi
ngt
ohav
eInt
uit
ive,
andBeaut
if
ulSi
tepages.
8.Si
teFaviconshoul
dbeanI
CO f
il
ewi
thsi
zes16x16and32x32t
hati
slesst
han
100KB.
9.Ev
erysi
teshoul
dcont
ainr
elev
antt
abs/
menudef
inedf
orspeci
fi
cusergr
oup.
10.Pages/
Int
erf
acest
obeconf
igur
edwi
thr
ightsecur
it
yandv
isi
bil
i
ty
11.Confi
guri
ngasi t
epageforwebuser s,consi
derupdati
ngthepagewi dthtomatch
thecontent
.Forexampl
e,actionsmayhav eonlyaf ew fi
eldsandbenefitfr
om a
narr
ow pagewidthtoavoi
dhav ingt
hef ormlookstret
ched.Anotherexampleisa
densereportt
hatcanbenefi
tfrom awi depagewidthor,i
fusershav eextr
awide
monitor
s,aful
l
-pagewi
dth.
12.Useasi t
elogowithat
ranspar
entbackgr
oundandsuf
fi
cientcont
rastagai
nstt
he
nav
igat
ionbarcol
or.
13.Av
oidt
heuseofnewsent
ryl
i
nksi
nsi
tes.
14.Showonl
yther
equi
redi
nfor
mat
ioni
ntheSi
teFor
ms.
11. SAI
L
1.For
matal
ltheSAI
Lcodeexpr
essi
ons.
2.Commentstobepresenti
nev
erySAI
Lrul
eindi
cat
ingt
hepur
pose/
funct
ionoft
he
maj
orcomponent
s.
3.I
dent
if
yandDesi
gnr
eusabl
eSAI
Lint
erf
aces
4.I
dent
if
yandmov
ecommoni
nter
facesorsect
ionsi
ntor
eusabl
erul
es.
5.Uselocalvar
iabl
esinst
eadofrul
ei nput(
ri
)forsav
ingmani
pul
ati
ons,unl
essy
ou
needtopasstheval
uetopar
entr
ules.
6.Usesmar
tser
vicef
unct
ionsonbut
tonact
ionswher
everpossi
ble.
7.Cr
eat
ereusabl
ecust
om component
s.
8.Al
way
ssetdef
aul
ttestv
aluesf
orI
nter
facer
ules,
sot
hatt
heLi
veVi
ewi
svi
sibl
e.
9.UseDeci
sionsi
nst
eadofnest
ed/
mul
ti
plei
fcondi
ti
onal
val
i
dat
ions.
10.DONOTcal lSAI
Lexpr
essiondi
rect
lyi
nexpr
essi
onedi
tor
s,i
nst
eadcr
eat
esepar
ate
i
nter
facer
ulesandmapthesame.
11.SAI
Lint
erf
acesshoul
dnotcont
ainmor
ethan20i
nput
s
12.DONOTusedy namicbehavi
orforoffl
inefor ms.
13.Use form vali
dat
ion messages forprobl ems thatare notspeci
ficto a si
ngle
component.
14.DO NOThav edatabasecall
sin‘ wi
th()
’f uncti
onori nsi
dealoopingfunct
ionlike
a!
forEach.
15.Eit
herabil
lboardl
ayoutmayhav eabarov erlayoracolumnover
lay.
16.Use‘showWhen’par amet
ersinsteadofcompl exif,el
secondi
ti
ont ohi
deorshow
components.
17.UseDeci
sioncomponent
sinst
eadofcompl
exexpr
essi
onr
ules.
18.Usepagi
nat
ioni
ngr
idst
oav
oidal
lthedat
adi
spl
ayedi
nasi
ngl
epage.
19.Usev
ali
dat
iongr
oupsf
ormul
ti
pler
ulev
ali
dat
ions.
20.Av
oidmi
xi
ngboxl
ayout
sandsect
ionheadi
ngs.
21.Al
way
slef
tal
i
gngr
idcol
umnsf
orbet
terr
eadabi
l
ity
.
12. Pr
ocessRepor
ts
1.Makesureal
ltheprocessmodelsi
ncl
udi
ngt
hesubprocesshast
hesamenamef
or
t
heprocessv
ariabl
es,whichusedt
odi
spl
ayi
nther
eport
.
2.Useonl ythepr
ocessv
ari
abl
esf
rom t
hesub pr
ocess,whi
ch used aspassby
ref
erence.
3.Al
way
susenumer
iccompar
isonr
athert
hant
extf
ort
hel
ogi
cimpl
ement
ati
on.
4.Tr
ytousef
unct
ionssuchasexacti
nst
eadofequal
tooper
ator
.
5.Pr
ovi
det
hemeani
ngf
uldi
spl
aynamef
oral
lthecol
umnsi
nther
epor
t.
6.Todispl
ay“Myt asks”repor
t,useTaskreportbycontextbyuseri
nst
eadofPr
ocess
repor
twhichagainneedstofil
terbasedontheloggedinuser
13. Connect
edSy
stems
1.Namemustbeuni
que
2.Ensur
ethatpr
opersecur
it
yisconf
igur
ed
3.Ensur
etheaut
hent
icat
ioni
sconf
igur
ed
14. I
ntegr
ati
on
1.Mai
ntai
npasswor
dsi
nimpor
tcust
omi
zat
ionpr
oper
ti
esf
il
es
2.Checkwhet
hert
heconnect
edsy
stem i
susedt
oshar
ecr
edent
ial
sacr
ossmul
ti
ple
i
ntegr
ati
ons
3.Handl
eint
egr
ati
oner
ror
sbasedont
heer
rorcodesr
etur
nedbyt
heI
ntegr
ati
onobj
ect
4.Ensuret
hatcustom l
ogici
sbuil
ttocaptur
ethei
ntegr
ationer
ror
sandaler
tthe
adminsaboutthefai
l
uresl
ikeassi
gningataskt
oadmi norsendmai
ltoadmin
5.Combi
nedsi
zeoft
hef
il
esi
nther
equestbodyofasi
ngl
eint
egr
ati
oncannotexceed
75MB
6.Requestbodiesover5MBcannotbeprocessedandwi
l
lcausethei
ntegr
ati
onto
ret
urnanerror.However
,thef
il
esi
zeofdocumentsbei
ngsentdonotcounttowar
ds
thi
sli
mit.
7.Ensur
ethatpr
opersecur
it
yhasconf
igur
ed
8.UseI
ntegr
ati
onobj
ectwhenREST/
HTTPpr
otocol
isused
15. WebAPI
s
1.Ensur
ethatpr
opersecur
it
yisconf
igur
ed
2.Expr
essi
onmaynotbel
ongert
han4,
000char
act
ers.
3.Custom Stat
us Code can be defi
ned i
nt he r
esponse t
o handl
ethe cust
om
val
idat
ionsmessagebasedontheret
urnedst
atuscode
4.Al
lWebAPI
smustr
etur
nanHTTPResponse.
5.UseWEBAPIwhenREST/
HTTPpr
otocol
isused
6.Ensur
ethatendpoi
nti
sincl
udedsot
hatcanbecal
l
edbyot
hersy
stems
7.Val
idat
et herequestbodybef
orepr
ocessi
ngt
her equest
.Ifther
equesti
sJSON,
val
i
datethejsonstr
uctur
eanddat
ausi
ngJSONschemav al
idat
or
8.Ensur
eto mai
ntai
nthepr
operAPIspeci
fi
cat
ion(
Eg:
APIspeccanbedef
ined i
n
Swagger
)
9.I
ti srecommended t
o creat
e a ser
vice accountf
oreach sy
stem t
hatwi
l
lbe
i
nter
acti
ngwit
hWebAPI s.
10.I
tisnolongerr
ecommendedt opubl
ishprocessmodelsasawebser vi
ce.Inst
ead
useaWebAPIwitha!st
artPr
ocesstostar
taprocessf
rom anext
ernal
system.
16. Appl
icat
ionPer
for
manceandScal
abi
li
tySt
andar
ds
Useuti
li
tyandtaskprocessmodelsasmuchaspossi
bleandkeept
hemai
n(l
ong-
runni
ng)
pr
ocessmodelsl
ight
weightandsi
mple.
Uti
li
tyandt askprocessmodelsal
lowthebulkofthewor kt
obedoneout
sidet
hemai
nmodel.
Ther esul
tisl essmemoryusagef ort
helongest
-runni
ngmodel
ssincet
heyhavef
ewerPVs,
fewernodes, andashort
erpr
ocesshist
ory
.
Aggr
essi
vel
yar
chi
veut
il
it
yandt
askpr
ocessmodel
s.
Mostutilit
yandt askprocessmodelscanbearchivedshortl
yaft
ercompleti
on. Ifataskmodel
i
sr equi
redf orreporti
ng,consi
dercreat
ingataskhi stor
yprocessmodelt hatstor
esonl ythe
datarequiredfort hereport
s.Thetaskhistor
ypr ocessmodelwoul dconsistofast ar
tevent
connectedt oanendev ent
.Thi
ssimpletaskhist
orymodelwi l
lconsumelessmemor ythenthe
ori
ginaltaskmodel .
Av
oidact
ivi
tychai
ningt
hroughl
ongr
unni
ngnodes,
orl
argenumberofr
unni
ngnodes.
Useexact
()f
unct
ion
Especiall
ywhencompar i
ngpredef
inedstri
ngs.exact
()isthr
eetimesfast
erbutwi
l
lbecase
sensit
ive.=oper at
ori
snotcasesensit
ivebuttakel
onger.Bestusecasei
stouseconstants
forbuttonlabel
sanduseexactf
uncti
oninsi
deXORgatewaytodetermi
newit
hbutt
oni
sclicked.
Donotov
erusei
f(condi
ti
on,
true,
fal
se)l
ogi
c.
I
fsamel
ogi
cisusedmor
ethant
wice,
star
tusi
ngr
ulei
nst
ead.
Bef
orequeryi
ngadat abasefordat
a,makesuret
hesamedat
aisnotav
ail
abl
einpr
ocess
var
iabl
esofcur
rentpr
ocessorpar
entpr
ocess.
17. Dat
abaseManagementSt
andar
ds
Whenev
erpossibl
e,tablesshouldbecreat edbyAppianwhenpubli
shingadatast
orevs.wri
ti
ng
aSQLscri
pttocreat
et hem manually
.I ftheappli
cat
ioni
srefer
encinganexi
sti
ngtabl
ethenthi
s
i
snotpossi
ble,
other
wi se,t
hisisthepreferredappr
oach(l
esserror
-pr
one)
.
Tabl
esandv iewsshouldbepr ef
ixedwit
ht heshortnameoracronym oftheappl
i
cati
on.For
exampl
e,SalesContractManagementtablesareallpref
ixedwi
th“SCM_”.Viewsshoul
dhave
SCM_V_toindicat
etheref
erencedtabl
eisactual
lyaview.
TheSQLt ocreat
eorr epl
aceadatabaseview shoul
dbecont ai
nedinaDDLorSQLfil
eand
stor
edinfol
derwithi
nAppian.Thi
swillal
l
owf orv er
sioncont
rolandpr
ovi
deasi
ngl
elocat
ion
foral
loft
heappli
cati
on’sSQL.
Addan“ act
ive”bitcol
umnshoul dbeusedt odenoteact
ivevs.i
nact
ivedata.Toprev
entdata
rel
ati
onshi
pandi ntegr
it
yissues,avoi
dthedelet
ionofr
ows.Useanact iv
ef l
agt
odenoteact
ive
vs.i
nacti
vedata.Quer i
escant henfi
l
teront
hatcolumntoret
urnthedesir
eddata.
18. Appl
icat
ionI
mpor
t/Expor
t
18.
1. ChangeManagement
Whi
leAppianversi
onsmostindi
vi
dualcomponent
s,i
tisst
il
limpor
tantt
o hav
eachange
managementpr
ocessi
npl
ace.
Stor
eappl i
cat
ion-
rel
atedscri
pts,code,document
s,etc.i
nfolderswit
hint
hemai nappli
cat
ion’
s
fol
der.HousingthiscodeinAppi anfol
dersprov
idesversi
oningandshoul
dbei ncl
udedinthe
appl
icati
onpackage. Forexampl e,aVendorManagementappl i
cat
ionf
olderstr
uctur
ecould
consistoft
hefoll
owinghi
erarchy:
VendorManagement
o VM Appli
cati
on
VM CSS
VM Icons
VM Images
VM Ref er
enceDocs
VM Repor t
s
VM SQL
VM Templ ates
VM XSDs
o VM Requests
VM- 0001
VM- 002
…
Notealsothatt
hesecuri
tyneedsoft hesefolder
sar edif
fer
ent:v
eryfew peopl
eshoul
dbe
all
owedtochangethesystem documentsinVM Appl i
cati
on,buttheent
ir
eusercommunit
y
requi
resr
ead/wr
it
eaccesst
ot heproj
ectfol
der
si nVM Request
s.
Documentwhi chpl
ugins,i
ncl
udingtheversi
on,ar
eusedbytheappl
icati
on.Thisl
istshoul
dbe
ref
erenced when st
anding up a new envir
onment
,upgradi
ng an exi
sti
ng env
ironment
,or
att
empt i
ngtouseanewerv ersi
onofaplugin.
Appl
icat
ionsshoul
dnotbeimport
edasnamedusers.Processmodel
simport
edorpubl
ished
asnameduserswillst
opf
uncti
oningi
fthenameduseri
sdeacti
vat
ed.Gener
alAppl
i
cati
on
Desi
gn
Whencr eat
ingrul
esitisimpor
tanttosegr
egater
ulesthatareconsistentacrossenv i
ronments
andr ulesthatwi l
lchangebasedonwhi chenvi
ronmentt heyar ei n,andt henupdat ethe
envi
ronment all
ydependentrul
esoni mporttoanew env i
ronment . Forexampl e:dropdown
constantswi l
lalwaysbet hesame,butemailfi
eldsinthedev elopmentenv i
ronmentwillbe
assi
gnedt othedev el
opersandwhent heappli
cati
onisi mportedt ot hetestorpr oducti
on
envi
ronmentt hoseassignment
swi l
lhavet
obechangedt otestoract ualusers.Tomakesuch
rul
eseasyt ofind,theyshouldal lbeinanenv i
ronmentdependentf
older
,andwhenthe
appli
cati
oni
simpor t
edallther
ulesinthatf
olderwil
lbeeasytofi
ndandupdatesot
heyar
enot
overwri
tt
enwit
ht hedevel
opment-envi
ronmentver
sions.
18.
2. TheDependencyChecker
Thedependencycheckerdoesnotcheckf
orever
ythi
ng,soi
tisimport
anttoaddcert
aini
tems
tot
heapplicationastheyarecr
eat
ed.Thefol
l
owingtypesofobj
ectsshoul
dalwaysbeadded
manual
lyast heyarecreat
ed:
Rul
es,
const
ant
s,andt
hei
rfol
der
sthatar
eusedonl
yondashboar
dchannel
s
Const
ant
sorr
ulesut
il
iz
edi
ntheassi
gnmentexpr
essi
onf
orswi
mlanes.
19. Secur
it
y
Thedesiredsecur
itysett
ingswillhavetober emadei nthenewenv i
ronment.Acommoner ror
tothi
seffectwoul
dbeabasi cuserbeingunabletouseaquer yrul
eduet oapriv
il
egeexcepti
on,
despi
tethequeryrulehavingtheproperpri
vi
leges.Ifthiser
rori
sreceived,
checkthesecur
it
yof
thedatastorei
ntheenv i
ronmentwher etheerroroccurs.
Allobj
ectsmusthav epropersecur
it
ydef i
ned.CDTs,DataStores,Pr
ocessModels,Pr
ocess
ModelFolders,ProcessInst
anceSecuri
ty,Recor
dTypes,Report
s,Communi t
y,KC,Document
Folder
s,Feeds,Appli
cat
ions.
Alwaysuseanor malenduserf
oruni
ttesti
ng.Donotusesy
stem admi
n(ev
ery
thi
ngwor
ksf
ine
fordevel
operandnothi
ngworksfort
ester
).