Sunteți pe pagina 1din 33

ACADEMIA DE STUDII ECONOMICE

Facultatea: Cibernetic, Statistic i Informatic Economic


Specializarea: Informatic economic

Proiect de practic
Tema proiectului :Dezvoltarea unei aplicaii folosind tehnologia APPIAN

Cadrul didactic coordonator:


Lect.Univ.Dr Silvestru Ctlin
Student:
Florescu Roxana-Elena

Bucureti
2016

CUPRINS
1.
2.
3.
4.
5.
6.

Introducere..........................................................................................................................3
Prezentarea activitii desfurate n cadrul companiei.......................................................4
Prezentarea tehnologiei Appian .........................................................................................4
Proiectarea aplicaiei de Cereri de concediu n tehnologia Appian...................................10
Concluzii............................................................................................................................31
Bibliografie........................................................................................................................31

Introducere
Principalul scop al acestui proiect este de a reliefa att aspectele descriptive ale companiei
Crystal-System ct i de a surprinde aptitudinile deprinse n urma stagiului de practic.
Unul dintre obiectivele stagiului de practic este acela de a oferi practicantului un prim
mediu de utilizare concret a cunotinelor acumulate n perioada aniilor de studiu. De asemenea,
acesta are posibilitatea de a-i testa abilitile de comunicare i de integrare ntr-un colectiv nou.
Avantajele ndeplinirii stagiului de practic sunt multiple. n funcie de companie, studentul
are oportunitatea de a face parte dintr-un mediu de lucru profesionist, cu valori morale i
profesionale bine stabilite, aflate deja la un nivel nalt. Posibilitatea de a interaciona cu mai
multe departamente din cadrul companiei ofer o perspectiv ampl ce va ajuta n luarea unei
decizii asupra unui viitor loc de munc. nsa, integrarea ntr-un mediu de lucru concret faciliteaz
surprinderea att a aspectelor pozitive ct i a aspectelor negative a sarcinilor ce trebuie
ndeplinite n departamentul respectiv.
Studentul nu este impactat numai la nivel tehnic i teoretic, ci i la un nivel psihologic,
deoarece i este testat capacitatea de adaptabilitate. Acesta trebuie s fac fa unui program
stabil i s ndeplineasc anumite sarcini. Deci trebuie s se supun unei conjucturi pe care n-a
mai ntlnit-o nainte.
Aceast perioad de practic are rolul de a iniia sau de a mbogaii experiena profesional a
practicantului.
O alt parte a proiectului este reprezentat de descrierea principalei aplica ii dezvoltat pe
parcursul perioadei de practic . Aplicaia reprezint automatizarea procesului de cereri de
concediu ntr-o companie i a fost dezvoltat cu ajutorul platformei APPIAN.

1. Prezentarea general a firmei Crystal-Systems:


Fondat n 2001, Crystal System este un grup specializat n furnizarea de soluii informatice
i servicii la nivel internaional.
Crystal Systems desfoar activiti de consultan, proiectare i implementare i ntreinere
a sistemelor informatice pentru organizaiile mari i mijlocii.

Lucreaz ca integratori de sistem cu cele mai populare ERP, CRM, SRM, pachete de
management al documentelor precum SAP, Oracle, Microsoft.
Asistarea clienilor pentru a menine software-ul de operat la cel mai nalt nivel de
performan i funcionalitate
Definirea i proiectare adaptrii continue solicitate de schimbrile din afacerile clienilor .
Crystal System este gata de schimbare, de adaptare la inovaia tehnologic continu
3

Punctele forte distinctive ale companiei includ:


Sistemul de recrutare care se bazeaz pe un parteneriat puternic cu unele dintre cele
mai bune universiti (n Romnia, Academia de Studii Economice, i n Rep Moldova,
Academia de Studii Economice din Moldova)
Produse i procese de know-how, care s ne permit s traducem nevoile de afaceri ale
clienilor notri n soluii software
Flexibilitate, cultura organizaional i transnaionale, ceea ce ne permite de s
gestionm proiecte complexe la nivel internaional
Specializare, integrare pe vertical i precizia ofertei noastre.
Valorificarea competenelor i a experienei acumulate n lucrul cu societile
internaionale de top .
Parteneriate cu cei mai importani furnizori de software, cum ar fi SAP, Microsoft,
Oracle, IBM.
Crystal System are cea mai mare "Fabrica de ABAP" a Europei de Sud-Est, cu o echipa de
mai mult de 120 de SAP NetWeaver, ABAP Programator i are ani de experienta in dezvoltarea
de software-ul ntr-un concept de tip "Fabric de Software".
Din 2005 centrul de formare Crystal System funcioneaz n cadrul ASE Bucureti, i
permite astfel studenilor s ia contact cu tehnologiile utilizate de ctre companie. De asemenea
compania Crystal System sponsorizeaz masteratul SIMPRE, acesta fiind cel mai important
program de master legat de ERP din Romnia.
Strategie de succes
Pentru a putea oferi servicii de calitate, Crystal System folosete un program integrat de
formare a consultanilor si prin metode moderne de knowledge management. Oferirea de
servicii de calitate clienilor este o condiie obligatorie pentru a avea succes n domeniul
consultanei. Crystal System a nteles s rspund acestei exigene prin implementarea unor
procese de knowledge management i knowledge sharing moderne i deosebit de eficiente.
Cretere anual de 50%
n ultimii ani volumul activitilor Crystal System s-a dezvoltat puternic crescnd anual cu
aproximativ 50%, cifr care depaete cu mult creterea medie a companiilor similare. Calitatea
serviciilor i seriozitatea n relaia cu clienii au permis atragerea constant de noi beneficiari ai
serviciilor de consultan oferite de Crystal System.
Expansiune geografic
Ca urmare a extinderii bazei sale de clieni, Crystal System are reprezentane n Europa de
Vest n Italia la Torino, n Belgia la Bruxelles i n Elveia la Lugano. La acestea se adaug i
biroul central al companiei din Bucureti alturi de punctele de lucru din Galai i Baia Mare.
Reprezentana din Chiinu, Republica Moldova, a cunoscut o dezvoltare considerabil n
ultimul an. Cele 7 birouri ale companiei gzduiesc peste 120 de angajai ce deservesc mari
4

companii din Europa de Vest, SUA i Rusia. Echipa acoper peste 12 limbi de mare circulaie.
Toi consultanii vorbesc limba englez.
Orientare pe calitate
Asigurarea calitii prin folosirea complet a unei metodologii de lucru este una din valorile
fundamentale ale companiei Crystal System. Simpl i eficient metodologia Crystal System
susine calitatea.
Clieni internaionali
Crystal System deservete preponderent mari companii internaionale precum IBM,
Accenture, Capgemini, Atos-Origin, SAP, Oracle, Pirelli, FIAT, DeLonghi, Metro, Deautsche
Bank, Northdoor (Irlanda), Acctus (Austria) i alii. Serviciile oferite sunt de consultan
informatic n ariile de competen ale Crystal System:
SAP-ABAP, Business Intelligence (Hyperion i SAP BW), Java/.Net i Microsoft
Dynamics(CRM i Nav).
Diversificarea gamei de servicii
Extinderea gamei de servicii de consultan oferite clienilor reprezint una din preocuprile
constante ale companiei Crystal System. Pe lng tehnologiile SAP, Oracle (Hyperion) i
Microsoft, Crystal System i extinde la ora actual n mod susinut echipa de programatori Java.
Serviciile de training sunt o alt zon n care compania Crystal System a fost activ i pe care
echipa de management intenioneaz s o consolideze n viitor.

Planuri de cretere
n urmtorii doi ani compania Crystal System intenioneaz s i extind echipa la 300 de
consultani. Planul de cretere are n vedere cererea ridicat de pe pieele occidentale dar i
consolidarea pieelor emergente. O mare parte din aceste persoane vor fi recrutate prin
programele academice pe care Crystal System le desfoar n cooperare cu ASE Bucureti i
ASEM Moldova. Compania intenioneaz s i continue expansiunea geografic att spre ri
din Occident ct i spre Rsrit.
Rusia, noua frontier
Piaa ruseasc este o zon n care Crystal System depune eforturi importante pentru a
dezvolta parteneriate n spaiul rusesc avnd n vedere faptul c echipa Crystal System deine un
numr considerabil de consultani vorbitori de rus. Crystal System a reuit recent s semneze un
contract cu una din cele mai mari societi de asigurri din Rusia creia i furnizeaz consultan
informatic.

2.Prezentarea activitii desfurate n cadrul companiei


Programul de practic s-a desfurat pe parcursul a 3 sptmni, cu un program zilnic de 6
ore, 4 ore erau destinate dezvoltrii unei aplicaii cu ajutorul platformei tempo, iar 2 ore erau
destinate studiului individual i automatizarea unui proces individual de bussiness care a fost
analizat i punctat de membrii echipei Crystal-System la final.
3. Prezentarea tehnologiei APPIAN BPM
APPIAN BPM reprezint un produs software care permite companiilor s-i automatizeze
i s managerieze procesele de bussiness pentru a crete eficiena afacerii. APPIAN este lider n
categoria de produse BPM datorit caracteristicilor sale unice. Este o tehnologie n totatlitate
web, permind utilizatorilor s interacioneze direct, prin intermediul unui browser, cu toate
componentele de BPM, cum ar fi: managementul documentelor, analize, rapoarte, interfaa de
modelare a procesului, interfaa de completare a taskurilor.
Appian BPM permite utilizatorilor :
Construirea modelul procesului de la zero ntr-un mediu de lucru u or de
folosit(interfaa designer)
Refolosirea proceselor construite i optimizarea lor fr modificri ale versiunilor
anterioare.
Crearea de reguli de business(Business rules) pentru a defini politica i procedurile
companie
Folosirea interfeei de creare a formularelor pentru taskurile dorite
Analiza procesului
Urmrirea proceselor
Generarea de rapoarte i analize orientate pe un anumit proces
Exportarea aplicatie pe platforma tempo specific Appian
Portabilitatea pe platforma web i mobile fr modificri ulterioare
Appian records, adun toate datele specifice unui proces ntr-o singur locatie n
tempo
Managementul taskurilor i urmrirea lor
Optimzeaz modul de lucru ntre departamente
Asigur delegarea taskurilor n functie de profilul angajailor astfel taskurile sunt
asumate candidailor potrivii.
APPIAN BPM ofer 2 interfee n funcie de specificul utilizatorilor
Interfaa TEMPO- pltaforma online unde sunt toate procesele i utilizatorii. Conine 5
tab-uri pentru aciunile permise: rezolvarea taskurilor asumate, postarea i comentarea
informaiilor de pe peretele principal, trimitere de mesaje ctre anumi i utilizatori,
urmrirea unui proces.

Interfaa designer care este folosit n generala de administratori i de utilizatorii


avansai. Interfata este folosit pentru a crea i a optimia procesele de business,
recordurile i rapoartele folosite de organizatie. Interfaa designer include urmtoarele
instrumente :
o Process Modeler: permite dezvolatatorilor s creeze procesul ntr-o schem logic
usor de urmrit.
o Record Designer: permite crearea de nregistrari bazate pe o baz de date, pe un
proces sau pe un serviciu web prin includerea sursei , a unei liste i a unui template
de record.
o Tempo Report Designer: permite crearea rapoartelor pentru interfaa tempo
o Forms Designer: permite utilizatorului s construiasc formulare personalizate
procesului.
o Rules Manager: Folder n care se construiesc regulile de proces i constantele care
vor fi folosite n dezvoltarea procesului.
o Document management: o baz de date care se stocheaz documentele necesare
dezvoltrii procesului cum ar fi imagini sau cereri tipizate.
o User management: reprezint un mediu n care se manageriaz dependenele dinte
utilizatori si departamente, preferine si atribute.
o Notifications- reprezint primirea de alerte atunci cnd exista erori n procese sau
anumite taskuri au fost assignate utilizatorului.
o Application Builder- permite crearea aplicatiilor care includ un model de proces ,
grupuri de utilizatori, pagini, rapoarte , formulare i exportarea lor n platforma
TEMPO.

3.1 Interfaa TEMPO

1. Bara de meniu:
News: Tabul de News reprezint locul n care poi colabora cu ceilali utilizatori, s primeti
mesaje de sistem i de la evenimentele de business alea proceselor, postari, i taskuri. Tabul este
selectat by default atunci cnd te autentifici n Appian.
Tasks:Tabul de taskuri va afia o list a tuturor taskurilor repartizate ie sau grupurilor de care
aparii. Atunci cnd apei click pe unul din taskuri Appian va deschide formularul pe care trebuie
s-l completezi.
Records: Tabul de recorduri va stoca date legate de procesul de business, de la clieni la locaii
de stocare. Tabul de recorduri ii permite sa accesezi i s lucrezi cu toate tipurile de recorduri la
care ai acces ca i utilizator .
Reports: Tabul de reports i ofer accesul la orice tip de raport creat de designerii Appian.
Rapoartele Tempo includ grafice care arat statusul curent sau trendurile istorice ale companiei,
pentru a le izualiza i a le analiza.
Actions: Tabul de aciuni i ofer posibilitatea de a lansa o aciune , spre exemplu completarea
unui formular.
2. Search
Permite s caui anumite date n tabul n care te afli, spre exemplu dac tastezi mobile n tabul
de News, vor fi afiate toate mesajele sau comentariile coninnd cuvntul mobile.
3. Filter Options
Tabul de filtre permite o navigare mai uoar n functie de filtrarea rezultatelor dup anumite
criterii:
All- conine toate datele pentru tabul selectat
Starred-conine toate datele pe care le-ai marcat cu stea anterior.
4.Account Information:
Dnd click pe username-ul tau vei putea selecta una din urmtoarele opiuni
Profile-deschide profilul de utilizator pentru vizualizare i modificare de informaii.
Settings- deschide pagina de setri pentu a te putea abona la unu anumit feed al unui
grup sau pentru a-i modifica parola.
Sign out- deconectarea de la Appian.
5. Main Content
Coninutul principal, datele vizualizate n functie de tabul selectat, spre exemplu n news feed
vom vedea mesajele postate i taskurile completate.

3.2 Prezentare interfa designer

n aceast interfa apar taburi specifice construirii unui proces de business.


1. Processes:
n acest tab se gsesc toate procesele dezvoltate de grupul de utilizatori din care facem parte. Tot
aici se creaz procesele noi n terfaa de Process Modeler
2. Rules:
Tab n care se gsesc i se definesc regulile procesului. Aceste reguli se definesc pentru a aduce
un suport logicii din spatele procesului i pentru a avita hardcodarea datelor.
n Rules vom putea crea toate constantele , interfeele, query-rules i expession-rules de care
vom avea nevoie pe parcursul dezvoltrii proiectului.
3. Reports
n acest tab putem crea rapoartele pe care s le importm n aplicaie. Rapoartele sunt dinamice
i se creaz cu ajutorul interfeelor SAIL.
4. Documents
n tabul de documente vom gsi toate documentele i resursele necesare aplicatie, dar si
documentele generate de aplicatie.
5. Feeds

n acest tab putem crea un entry feed prin care aplicatia noastr va posta n tabul de news din
interfaa Tempo.
6. Applications
n tabul de applications vom gsi toate aplicaiile create si publicate de utilizatorii din grupul din
care facem parte, dar i aplicatiile nepublicate.
7. System
Tabul de system permite crearea de baze de date i de inputuri personalizate numite si Custom
Data Type(CDT) care vor permite scrierea optimizat n bazele de date folosite.
Tot n aces tab se pot crea i tipurile de record(Record Type).
8. Operaiile predefinite:
n partea stqng exist un subset de operatii predefinite care sunt meinite s faciliteze navigarea
utilizatorului.
4. Dezvoltarea unei aplicaii de cerereri de concediu n Appian

Pentru inceput, inainte de crearea flow-ului, best practice-ul spune ca trebuie sa cream
foldere speciale pentru proces, pentru reguli, grupuri pentru aplicatie, necesare pentru a securiza
procesul in Appian.
Vom intra in tab-ul Processes->Process Models-> New Folder. Vom denumi folderul
TOR Nume Prenume, iar la descriere vom pune Folder containing all process model for TOR
Nume Prenume.
Vom merge in tab-ul Rules->New Folder, si vom denumi folderul TOR Rules and
Constants Nume Prenume iar la descriere vom scrie Rules and Constants for TOR Nume
Prenume.
In interiorul acestui folder, vom crea alte 4 foldere: TOR_Prenume_Constants,
TOR_ Prenume_Interfaces, TOR_ Prenume_QueryRules, TOR_ Prenume_ExpressionRules.
Vom intra in tab-ul Documents->Communities->New Community si vom scrie la nume
TOR_Community_Nume_Prenume. In interiorul acesteia vom crea doua Knowledge Center, unul
cu numele Application Data si inca unul cu numele Business Data. In Application Data vom crea
un folder numit Templates unde vom salva template-urile create pe parcursul aplicatiei, iar in
Business Data , vom crea un folder numit Documents, unde vom salva documentele create prin
rularea procesului.
Dupa ce cream toate aceste foldere, putem incepe aplicatia.
10

Vom crea un flow n process designer. Acest flow va descrie logica din spatele ntregului proces,
nivelurile de responsabilitate implicate.
Aplicatia trebuie s permit completarea unui formular de cerere de concediu pentru o anumit
dat, completat de un angajat. Acest formular va fi revizuit apoi de un supervizor i aprobat sau
respins n final de manager.
Evenimentele i nodurile decizionale se vor selecta din partea stng a consolei i vor fi legate n
proces.
Logica procesului este redata n schema de mai jos. Se poate observa c pentru completarea
acestui proces vom avea nevoie de 3 formulare.

n appian formularele se pot construi folosind Form Designer sau folosindu-ne de limbajul SAIL
care ne permite crearea unor interfee dinamice .
4.2 Construirea unui formular folosind form Designer
Pentru inceput, modificam numele formului, devenind TimeOff Request. Ca instructiuni de
completare a acestuia, vom lasa Please complete the form below.
Vom adauga o Sectiune noua, pe care o gasim in tab-ul Layout & Info. O vom adauga in formul
nostru prin Drag&Drop. Vom redenumi aceasta sectiune cu numele de Requestor Data, si
vom selecta ca aceasta sa aibe 2 coloane, nu una, cum era setata implicit.
In aceasta sectiune, vom adauga campurile care dorim sa fie completate de utilizator. Ne vom
intoarce in tab-ul de Standard Inputs, de unde vom selecta Text Label, pe care il vom denumi
11

Requestor First Name. Vom selecta pentru acesta sa fie Required. Pentru acest label, vom crea
un Activity Class Parameter in care se va salva valoarea introdusa de utilizator
Apasand butonul Create, valoarea introdusa de utilizator la rularea procesului va fi
salvata in variabila denumita de noi : requestorFirstName.
Procedand la fel, vom crea si celelalte label-uri, schimbandu-se doar, la unele campuri,
tipul label-ului introdus. Pentru Requestor Last Name vom adauga un Text label, pentru Email
vom adauga tot un Text label, pentru Telefon vom adauga un Number label ,pentru manager
vom adauga tot un Text label, pentru TimeOff Type vom adauga un DropDown label, pentru
Start Date respective End Date vom adauga Date & Time label, si pentru Comments vom
adauga un Paragraph label.
Pentru fiecare dintre aceste campuri, trebuie construita cate o variabila in care sa se
salveze valorile introduse de utilizator.
Vom salva formul prin apasarea butonului Save and Close.
Pentru a salva variabilele din formular trebuie sa creem variabile de proces n care vor fi
salvate valorile cu care a fost completat formularul. Pentru a realiza acest lucru n tabul de date a
nodului de formular vom da click pe fiecare variabil creat din formular i i vom aduga o
variabil de proces.
Formularul final va arta ca n figura de mai jos.

Se procedeaz la fel i pentru formularul de aprobare al supervizorului i cel de aprobare al


managerului. Pentru Aceste dou formulare vom pstra structura primului formular la care vom
aduga sectiuni noi destinate aprobrii. Pentru a nu permite supervizorilor sa modifice datele
introduse de angajat, vom marca toate cmpurile cu date referitoare la angajat ca ReadOnly. Iar
valoarea lor default va fi reprezentat de variabilele de porces create anterior.
Formularul final va arta ca cel prezentat n figura de mai jos:
12

Pentru formularul managerului procedam la fel. Vom marca readOnly cmpurile supervizorului,
si vom aduga 2 butoane, de respingere sau aprobare i un paragraf pentru anumite comentarii
ale managerului.

n acest moment avem cele 3 formulare construite. Pentru a optimiza procesul vom aduga
noduri de decizie, XOR.

13

Vom adauga un nod XOR , gasit in partea stanga a designer-ului, in subfolderul Gateways, pe
care il pozitionam imediat langa primul form.
Vom sterge legatura intre primul form si End Event, si vom crea noi legaturi: intre acest
prim form si XOR, intre XOR si cel de-al doilea form, intre XOR si End Event, precum si intre
cel de-al doilea form si End Event.
Pentru a putea salva procesul si a nu aparea erori, va trebui sa customizam nodul XOR,
punandu-i conditii . In cazul in care, utilizatorul trimite o cerere din cauza faptului ca este
bolnav, cererea trebuie sa se aprobe fara a mai trece prin alte verificari. Daca motivul cererii este
vacanta, sau zi fara plata, aceasta va trebui sa treaca prin mai multe level-uri de aprobare. Pentru
a putea selecta tipul cererii, avem nevoie de crearea unei noi constante, n folderul de constante
creat la nceput. Vom defini tipul text al constantei, i vom defini 3 tipuri de
cerere:SICK,UNPAID,HOLIDAY. Folosirea constantelor evit hardcodarea datelor i
optimizeaz procesul. Folosim o constant i pentru decizia de aprobare sau respingere.

Vom modifica valorile din formulare cu valorile constantelor create.


Acum, vom putea configura nodul XOR. Vom da dublu-click pe acesta, si ni se va
deschide casuta de proprietati a acestuia. In tab-ul Setup vom apasa pe New Condition pentru a
putea insera o conditie noua. Vom deschide Express Editor-ul si vom seta ca si conditie
urmatoarea regula: =pv!timeOffType=cons!PRACTICA_TOR_TIMEOFFTYPE[1], ceea ce
inseamna ca daca tipul cererii este SICK, cererea va fi aprobata, asa cum am spus si anterior.

14

Pentru a imbunatati procesul, vom continua cu adaugarea unor noi noduri. Dorim ca in cazul in
care cererea este urgenta,adica Start Date-ul este in urmatoarele 3 zile lucratoare, requestor-ul sa
primeasca un mail in care sa fie anuntat ca cererea este aprobata sau rejectata. Pentru acest lucru,
trebuie sa adaugam un nod de Send E-mail. Putem adauga acest nod atat individual, cat si in
interiorul unui Subproces.
In acest caz, il vom adauga in interiorul subprocesului denumit de catre noi Send E-mail. Intre
nodul XOR denumit Approval Decision si End Event, vom adauga prin Drag&Drop un nod
pe care il vom redenumi dupa cum am precizat Send E-mail. Pentru a putea face legatura intre
un process si un subproces, trebuie creat un nou process, salvat, urmand ca, in tab-ul de Setup al
subprocesului, sa inseram procesul nou creat.
Pentru a crea un nou proces , mergem in bara de meniu, dam click pe File, New Process
Model. Ni se va deschide o pagina care are doua noduri, cel de Start Event si cel de End Event.
Din partea stanga a Designer-ului, din folderele de Palette, vom selecta subfolderul
Appian Smart Services, apoi Communication. Aici gasim nodul cautat, Send E-mail. Vom
face legatura intre nodul de Start Event si nodul de Send E-mail, precum si intre nodul de Send
E-mail si nodul de End Event.
Acum, pentru ca am configurat deja nodul de trimitere E-mail, trebuie sa gasim o conditie
care sa calculeze numarul de zile lucratoare existente pana la Start Date.
Pentru inceput, trebuie creata o constanta noua care sa ia valoarea URGENCY, precum si
un Expression Rule care sa calculeze numarul de zile lucratoare.
Sa incepem prin crearea Constantei. Vom merge in tab-ul de Rules , gasim folderul nostru
de CONSTANTS unde, cream o noua constanta. In acest moment trebuie sa cream, in
folderul nostru, EXPRESSION RULES o functie care sa calculeze numarul de zile
lucratoare. Vom apasa butonul de Create an Expression Rule .
Acum, avand create atat constanta cat si Expression rule-ul, putem continua modificarea
procesului. Vom adauga in nodul Approval Decision o noua conditie. In cazul in care zilele
lucratoare pana in momentul in care requestorul a stabilit Start Date-ul sunt 3,sau mai putin de 3,
requestorul va primi o notificare in care este anuntat ca se poate bucura de concediu. Aceasta
conditie arata in felul urmator:

Configurm toate nodurile de decizie n funcie de valorile constantelor de aprobare sau


respingere.
4.3 Interfee SAIL

15

Interfeele SAIL nu sunt cu mult diferite grafic fa de form designer, ns acestea sunt dinamice.
Pentru a crea aceasta interfata este nevoie de doua sectiuni, una pentru Requestor Details si una
pentru Approver Notes, sectiune care nu trebuie sa apara la pornirea procesului, ci doar in
momentul in care exista approvalDecision completat (din al doilea form).
Folosind limbajul SAIL construin interfaa grafic. In firstColumnContext, trebuie sa cream
cele doua sectiuni.
In prima sectiune, vom gasi 4 textField-uri (Requestor First Name, Requestor Last Name, Email,
Manager), un integerField (Telephone), un dropdownField (Time Off Type), doua dateField-uri
(Start date respectiv end date), si un paragraphField pentru comentarii. Pentru fiecare dintre
aceste field-uri, trebuie creat cate un rule input, care sa fie de tipul corespunzator. Rule input-ul
se creaza din partea dreapta a ecranului, apasand butonul +, ca in imaginea urmatoare:

Pentru a ascunde sectine cu comentariile superviziorului vom folosi un if de forma:


16

if(not(isnull(ri!approvalDecision)),
a!sectionLayout(...)

Dup ce am creat interfaa vom merge n procesul nostru pentru a mapa rule input-urile cu
activity class parameter corespunzator. Mergem la proprietatile user input task-ului denumit
Enter TimeOff Request Details , in tab-ul Forms si vom selecta Use an existing form. Vom
apasa pe Expression Editor, si vom selecta de acolo Rules & Constants. Vom selecta numele
interfetei creata de noi, si vor aparea in partea dreapta a editorului, la Syntax, toate rule inputurile interfetei, care trebuie mapate corespunzator.

Pentru a evita Hardcodarea datelor putem folosi un CDT creat de noi. Astfel vom avea toi
parametri la un loc. Acest CDT va fi transmis procesului i formularelor fr a mai fi nevoie s
creem variabile de proces i rull-inputuri
Vom intra in tab-ul System, vom intra in aplicatia noastra, si vom selecta Data Management>Data Types->Create a Data Type

17

Se va deschide un tab in care trebuie sa completam numele CDT-ului si sa adaugam


Field-uri.

Vom apasa butonul Download XSD, pentru a modifica campul Requestor ID. Acesta trebuie sa
fie primaryKey, iar in versiunea 7.7 a Appian-ului poate fi facut acest lucru doar modificand
manual XSD-ul.
Elementul requestorID trebuie sa contina urmatorul cod:
<xsd:element name="requestorID" nillable="true" type="xsd:int">
<xsd:annotation>
<xsd:appinfo source="appian.jpa">@Id @GeneratedValue</xsd:appinfo>
</xsd:annotation>
</xsd:element>
Vom salva modificarile aduse XSD-ului si il vom importa. Acum avem un CDT pe care l vom
introduce n procesul nostru i n interfee.
Acum vom crea un Data Store din aplicatie (System->Data Management-> Data Store>Create a Data Store), in care vom adauga CDT-ul creat.

18

Vom adauga in noul Data Store entitatea TOR_timeOffDetails.

19

Vom selecta Automatically update database schema, pentru a se crea in baza de date
tabelul.

Vom apasa butonul Verify pentru a verifica daca exista sau nu tabelul in BD si ne va
aparea un mesaj care spune ca nu exista. Vom lasa bifat Create Tables automatically si vom
apasa butonul Save & Publish.

Acum, ca baza de date este creata, trebuie sa adaugam cdt-ul in proces, sa salvam fiecare valoare
a field-urilor din formuri in campurile corespunzatoare din cdt, ulterior urmand sa mapam ca si
activity class parameter, cdt-ul, iar pe baza acestui CDT, sa cream recordul.
Vom intra in fiecare interfata in parte, vom adauga ca si rule input cdt-ul nostru de
tipul TOR_timeOffDetails si vom sterge toate celelalte variabile create pentru salvarea valorilor

20

scrise in form.

Pentru fiecare label, pentru proprietatile value si saveInto, vom pune ri!
TOR_timeOffDetails.campulCorespunzator, ca in exemplul:

Dupa ce salvam toate interfetele cu modificarile corespunzatoare, vom merge in


designer, pentru a mapa corespunzator CDT-ul. Vom merge pe primul user input task numit
Enter TimeOff Request Details, in tab-ul Data pentru a adauga ca input cdt-ul creat si ulterior in
tab-ul Forms unde vom edita expresia care defineste formul, folosind Expression Editor, ca in
urmatoarea imagine:

21

Vom proceda similar si la urmatoarele doua user input task-uri.


In acest moment, este necesar sa adaugam niste noduri Write to Data Store Entity pentru a scrie
informatiile completate in baza de date. Acest nod il configuram astfel: in tab-ul Data, la inputs
vom seta la value CDT-ul nostru, si vom crea un nou input, de tipul cdt-ului, cu value CDT-ul si
Save into tot CDT-ul .

22

La output, la StoredValues vom seta la Target cdt-ul creat in proces.

Putem testa procesul.

23

In final, avand mapat CDT-ul in proces, vom putea crea Record-ul. Pentru a realiza acest lucru,
vom crea din aplicatie, doua interfete noi, una cu numele TOR_SummaryView si inca una
TOR_ListView.
In prima interfata, TOR_SummaryView, utilizatorul trebuie sa vada toate campurile completate
de requestor. Interfata va arata in felul urmator:

In aceasta interfata, nu vor exista rule input-uri. Toate valorile vor fi locale si vor
veni din baza de date. Pentru a citi din baza de date, e nevoie sa cream o regula pe care ulterior,
in interfata, o vom chema.
Pentru inceput, vom crea regula. Vom merge in aplicatie (Appian Designer), vom
apasa New->Query Rules si aici vom configura in felul urmator:

24

Ne vom intoarce in noua interfata, pentru a o dezvolta.


Codul acesteia va fi urmatorul:
=load(
local!requestorDetails_CDT:rule!TOR_GetDetails(id:ri!requestorID),
a!formLayout(
firstColumnContents: {
}
)
)
In interiorul firstColumnContents vom adauga cele 3 sectiuni: Requestor Details,
Approver Decision si Second Level Approval Decision.
In fiecare dintre aceste sectiuni vom pune aceleasi campuri pe care requestorul le-a
completat deja.
. Putem trece la dezvoltarea interfetei TOR_ListView.
Aceasta interfata este destul de simpla, va avea doar titlu, detalii si startDate. Va fii folosita
pentru a vizualiza toate recordurile. Codul acesteia este urmatorul:
a!listViewItem(
title: "TimeOff requested by " &rf!requestorFirstName,
details: "Requestor phone: "&rf!telephone,
timestamp: rf!startDate
)

25

Avand create cele doua interfete, vom intra in aplicatie, si vom apasa New->Record Type.

Vom configura acest record astfel:

26

La Record List vom selecta Feed si vom chema ListView-ul : rule!TOR_ListView()


La Summary Interface, vom chema interfata creata pentru record: rule!TOR_ SummaryView
(requestorID:rp!id)
Pentru a putea vedea recordul trebuie mai nti s exportm aplicaia n Tempo.
Vom selecta Create an Application cu numele TimeOff Request Nume Prenume si vom scrie la
27

descriere App for TimeOff.


In aceasta aplicatie creata, vom adauga folderele deja create si ulterior vom adauga si
reguli, procese, actiuni, record-uri, report-uri. Vom selecta tab-ul de Process Models si selecta
cele doua procese create. Vom merge in tab-ul General si vom selecta

Va aparea o fereastra cu toate obiectele care lipsesc, le selectam si apasam butonul Add to
Application. Vom proceda similar pana in momentul in care mesajul returnat va fi: Found 0
missing precedents.

Mai sunt doar cateva aspecte practice de lamurit.


Pentru ca o aplicatie sa poata fi rulata si din tempo, in aplicatie, trebuie sa mergem in tabul de Actions, sa cream o noua actiune, si sa o configuram.

28

In acest moment, aplicatia poate fi rulata si din tempo.

Pentru a accesa direct primul form , la accesarea din form a aplicatiei, trebuie sa adaugam
legaturilor dintre noduri o proprietate. Daca apasam click-dreapta pe fiecare legatura, ne vor
aparea urmatoarele proprietati:
. Pentru noi, in

acest caz, este necesar sa alegem Enable Activity Chaining.

29

In acest moment, aplicatia arata astfel:

Vom crea un Feed. Acesta se creaza in designer adaugandu-se in aplicatie. Vom intra in tab-ul de
New si vom selecta Feed. Trebuie completate urmatoarele:

Apasand butonul Create, feedul va fi creat. In pagina de Appian Process Modeler va trebui
adaugat un nod Post Event to Feed. In aplicatia noastra, il vom adauga intre nodul de Approver
si nodul Update Request to finished. In tab-ul de Data se vor completa urmatoarele variabile:
pentru Feed trebuie in campul Value trebuie adaugat feed-ul creat in etapa precedenta,dupa cum

30

urmeaza:

Pentru campul Message trebuie completat in campul Value, folosind Expression Editor,
urmatoarea conditie: ="Hello "&user(loggedInUser(),"firstName")&" Your time off request
for"&pv!endDate-pv!startDate&"Days has been received" , fiind un mesaj care va aparea in
momentul in care nodul este rulat. Putem completa si campul Viewers, adaugand un user sau un
grup, dupa cum dorim sa fie vizualizat feed-ul.

31

In acest moment, putem merge in Tempo pentru a vedea record-ul.

Export Application
Pentru a exporta aceasta aplicatie, trebuie mai intai sa avem adaugate toate obiectele
create pentru aceasta. Vom apasa butonul Check for missing dependencies pentru a le adauga in
aplicatie. Ulterior, vom selecta aplicatia si e suficient sa apasam butonul Export

La apasarea butonului Export apare o noua fereastra:

32

Pentru a salva aplicatia, e necesar sa downloadam i s salvam tot ceea ce contine, printr-un click
pe Download package i s salvm aplicaia n laptopul personal.
n acest moment avem o apllicaie funcional online, pe care utilizatorii o pot folosi.
Concluzii
n cele 3 sptmni petrecute n interiorul companiei am interacionat cu membrii echipei Appian
i am dezvoltat de la nceput pn la final o aplicaie. Am reuit s-mi formez o prere despre
noua tehnologie. Cred c o mbunttire considerabil a companiei ar fi investirea n servere mai
performante care s permit dezvoltatorilor de Appian s lucreze mai bine. n timpul practicii din
cauza prezenei a mai multor dezvoltatori simultan pe platform a produs ncetinirea
considerabil a ritmului de lucru.
Crystal System rmne n opinia mea o companie apropiat studenilor din ASE care ofer
oportuniti de dezvoltare i o nou viziune asupra viitorului.
Bibliografie:
Referine online:
http://www.appian.com
https://forum.appian.com
http://www2.crystal-system.ro
http://www.bptrends.com/publicationfiles/07-09-Appian%20BPMSuite%20Ver.%205.7%20_3_Malcolm1.pdf

33