Alfresco'da Özel Gelişmiş İş Akışları Oluşturma

Genel Kanal / Alfresco

52 views
0 Beğeniler
0 0
Alfresco'da Özel Gelişmiş İş Akışları Oluşturma.
ECM Mimarisi, Alfresco Geliştirici Dersleri. Jeff Potts, Metaversant Grubu

Sosyal Ağlarda Paylaş

Bağlantı Paylaş

Use permanent link to share in social media

Bir arkadaşına paylaş

Lütfen giriş bunu göndermek için document Email ile !

Web sitenize yerleştirme

Başlamak için bir sayfa seçin

23. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 23 / 39 İ ş a k ı ş ı n ı p a y l a ş l i s t e s i ö z e l i ş a k ı ş l a r ı n ı g ö s t e r i r 3 . H e l l o W o r l d U I iş a k ış ın ı s e ç in . A l f r e s c o S h a r e , t e b r ik a l a n ın ı iç e r e n b ir f o r m g ö s t e r m e l id ir : H e l l o W o r l d U I : İ ş a k ı ş ı f o r m u n u b a ş l a t 4 . A d a l a n ın d a b ir a d b e l ir t in v e a r d ın d a n iş a k ış ın ı b a ş l a t m a k iç in " İ ş A k ış ın ı B a ş l a t " ı t ık l a y ın . 5 . İ ş a k ış ı b a ş l a d ık t a n s o n r a g ü n l ü ğ ü s e l a m l a m a n ız g e r e k ir : M e r h a b a D ü n y a U I g ü n l ü ğ ü n e t e b r i k G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

6. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 6 / 39 b ir ö z e l l ik t ir : İ ş s ü r e ç l e r in i t a n ım l a m a k iç in s t a n d a r t b ir s ö z d iz im i. Ş a r t n a m e h e m in s a n l a r ı ( y a n i b ir iş s ü r e c in in g r a f ik g ö s t e r im in i) h e m d e m a k in e l e r i ( y a n i iş s ü r e c in i t a n ım l a y a n X M L s ö z d iz im in i) h e d e f l e m e k t e d ir . B P M N u y u m l u b ir iş a k ış ı m o t o r u k u l l a n m a n ın ik i t e m e l a v a n t a j ı ş u n l a r d ır : 1 . İ ş a n a l is t l e r i iş s ü r e c i p r o j e l e r i ü z e r in d e iş b ir l iğ i y a p t ığ ın d a , s o n u ç t a o n u u y g u l a m a k iç in k u l l a n ıl a n a r a ç n e o l u r s a o l s u n , s ü r e c i t a r t ış m a k iç in o r t a k b ir ş e m a v e d il k u l l a n a b il ir l e r . 2 . B P M N u y u m l u X M L ü r e t e n h e r h a n g i b ir a r a ç , b ir iş s ü r e c in i t a n ım l a m a k iç in k u l l a n ıl a b il ir v e o r t a y a ç ık a n X M L , h e r h a n g i b ir u y u m l u iş a k ış ı m o t o r u y l a t e o r ik o l a r a k ç a l ış m a l ıd ır . İ ş l e m t a n ı m l a r ı B ir iş s ü r e c i, b a ğ l ı d ü ğ ü m l e r in b ir g r a f iğ i o l a r a k t a n ım l a n a b il ir . A c t iv it i' d e ( v e g e r ç e k t e n , B P M N ' d e ) b u d ü ğ ü m l e r e s a s o l a r a k o l a y l a r ( b a ş l a t , d u r , z a m a n l a y ıc ı) , g ö r e v l e r v e a ğ g e ç it l e r id ir . B u d ü ğ ü m l e r " d iz i a k ış l a r ı" il e b a ğ l a n ır . B ir ş e m a ü z e r in d e o l a y l a r , g ö r e v l e r , a ğ g e ç it l e r i v e d iz i a k ış l a r ın ı d ü z e n l e y e r e k d ü ş ü n e b il e c e ğ in iz t ü m iş s ü r e ç l e r in i m o d e l l e y e b il ir s in iz . O M G , ç e ş it l i iş s ü r e c i ş e m a l a r ı ö r n e k l e r i g ö s t e r e n v e d a h a s o n r a h e r b ir in d e n s iz e y o l g ö s t e r e n " Ö r n e k l e B P M N 2 . 0 " a d l ı h a r ik a b ir b e l g e y e s a h i p t ir . B u b e l g e n in s o n u n d a b ir b a ğ l a n t ı v a r . D iy a g r a m l a r , A c t iv it i' n in ş u a n k i s ü r ü m ü n e d a h il e d il e m e y e c e k ö z e l l ik l e r i iç e r iy o r , a n c a k B P M N 2 . 0 il e y a p a b il e c e ğ in iz ş e y l e r i g ö s t e r iy o r . Ö r n e ğ in , iş t e " T h e P iz z a C o l l a b o r a t io n " a d l ı b e l g e d e n b ir d iy a g r a m : O M G ' n i n P i z z a İ ş b i r l i ğ i Ö r n e ğ i Ö y l e y s e b ir s ü r e ç , d iz i a k ış l a r ıy l a b ir b ir in e b a ğ l a n m ış o l a y l a r , g ö r e v l e r ( b a z ıl a r ı o t o m a t ik , b a z ıl a r ı in s a n l a r t a r a f ın d a n g e r ç e k l e ş t ir il ir ) v e a ğ g e ç it l e r i t o p l u l u ğ u d u r . K u r m a k K o l l a r ın ı s ıy r m a n ın z a m a n ı g e l d i. İ h t iy a c ın ız o l a n a r a ç l a r ı s iz e a n l a t a y ım v e s o n r a s iz e p r o j e o r g a n iz a s y o n u n u n b ir t a n ım ın ı v e r e y im . A r a ç l a r İ ş t e b e n im m a k in e d e k u l l a n ıy o r u m n e : G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

13. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 13 / 39 İ ş a k ı ş ı k o n s o l u : T ü m t a n ı m l a r ı g ö s t e r H e l l o W o r l d v e h e l l o W o r l d F o r k iç in g ir iş l e r i g ö r m e l is in iz . H e l l o W o r l d k im l iğ in in " a c t iv it i $ h e l l o W o r l d : 1 : 1 0 4 " v e h e l l o W o r l d F o r k k im l iğ in in " a c t iv it i $ h e l l o W o r l d F o r k : 1 : 1 0 8 " o l d u ğ u n u u n u t m a y ın . K im l ik l e r in iz f a r k l ı o l a b il ir . 2 . " U s e a c t iv it i $ h e l l o W o r l d : 1 : 1 0 4 " y a z ıp Ç a l ış t ır ' a t ık l a y ın . B ir iş a k ış ı t a n ım l a m a s ıy l a il g il i o l a n s o n r a k i k o m u t l a r ş im d i v a r s a y ıl a n o l a r a k b u n u k u l l a n a c a k t ır . 3 . " S t a r t " y a z ıp Ç a l ış t ır ' ı t ık l a t a r a k h e l l o W o r l d iş a k ış ın ın b ir ö r n e ğ in i b a ş l a t ın . B ö y l e b ir ş e y g ö r m e l is in : İ ş a k ı ş ı k o n s o l u : İ ş a k ı ş ı n ı b a ş l a t V e s u n u c u g ü n l ü ğ ü n d e , l o g g e r ç ık ış ı g ö r ü n ü r : M e r h a b a d ü n y a l o g ç ı k t ı Ş im d i helloWorldFork iş l e m in b ir ö r n e ğ in i b a ş l a t m a k iç in a y n ı a d ım l a r ı iz l e y in . H e r ik i g ö r e v d e n d e g ü n l ü k m e s a j l a r ı g ö r m e l is in iz . M e r h a b a d ü n y a l o g ç ı k t ı H e l l o W o r l d F o r k ' u ç a l ış t ır d ık t a n s o n r a iş a k ış ı k o n s o l u n a g e r i d ö n ü n v e " t ü m iş a k ış l a r ın ı g ö s t e r " y a z ın v e Ç a l ış t ır ' a t ık l a y ın . B u k o m u t ç a l ış a n iş a k ış ı ö r n e k l e r in i g ö s t e r ir . H e l l o W o r l d F o r k iş a k ış ın ın h a l a ç a l ış t ığ ın ı f a r k e d e c e k s in iz . O n d a n k u r t u l m a n ın e n k o l a y y o l u " İ ş a k ış ın ı s il [ iş a k ış ı k im l iğ i] " k o m u t u n u k u l l a n m a k t ır ( t a m a m l a d ığ ın ız " iş a k ış l a r ın ı g ö s t e r " k o m u t u n d a n iş a k ış ın ın k im l iğ in e ih t iy a c ın ız o l a c a k t ır ) . İ ş a k ış l a r ın ın n a s ıl b a ş l a t ıl a c a ğ ı n ı v e iş a k ış ı k o n s o l u n u k u l l a n a r a k ç a l ış a n iş a k ış l a r ın ın n a s ıl l is t e l e n ip s il in d iğ in i g ö r d ü n ü z . A ş a ğ ıd a k i t a b l o d a d iğ e r b a z ı o r t a k k o m u t l a r v e n e y a p t ık l a r ı g ö s t e r il m e k t e d ir . G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

16. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 16 / 39 E t k i n l i k ö z e l l i k l e r i n i b a ş l a t 7 . İ ş l e m iç in ö z e l l ik l e r d ü z e n l e y ic is in i a ç m a k iç in t u v a l i t e k t ık l a t ın . K im l iğ i " h e l l o W o r l d U I " o l a r a k v e a d ın ı " H e l l o W o r l d U I " o l a r a k a y a r l a y ın . 8 . D iy a g r a m ı k a y d e d in v e k a p a t ın . G ö r e v l e r Y u k a r ıd a k i a d ım l a r d a , g ö r e v l e r in in s a n s a n a t ç ıl a r a v e r il e b il e c e ğ in i g ö r d ü n ü z . A c t iv it i, h e r k a t ıl ım c ıy a a t a n a n g ö r e v l e r in b ir l is t e s in i t u t a r . K u l l a n ıc ıl a r ın g ö r e v l is t e s iy l e e t k il e ş im i h e r u y g u l a m a y a b a ğ l ıd ır . A l f r e s c o ' d a b ir g ö s t e r g e p a n e l i, o a n d a o t u r u m a ç m ış o l a n k u l l a n ıc ı iç in y a p ıl a c a k l a r l is t e s in i g ö r ü n t ü l e r . K u l l a n ıc ıl a r g ö r e v l e r in i t a m a m l a d ık ç a g ö r e v l e r y a p ıl a c a k l a r l is t e s in d e n k a l d ır ıl ır . B o ş b ir y a p ıl a c a k l a r l is t e s i a ş a ğ ı d a g ö s t e r il m iş t ir . A l f r e s c o ' d a b o ş b i r g ö r e v l i s t e s i G ö r e v A t a m a G ö r e v l e r b ir in s a n ın g e r ç e k l e ş t i r d iğ i a d ım l a r is e , g ö r e v l e r o n l a r ı g e r ç e k l e ş t ir m e s i g e r e k e n k iş il e r e n a s ıl a t a n ır ? A c t iv it i, B P M N ' y i " a c t iv it i: a s s ig n e e " a d l ı k e n d i ö z n it e l iğ iy l e g e n iş l e t t i. Ö z e l l iğ in d e ğ e r i d e ğ iş m e z b ir k u l l a n ıc ı a d ı v e y a g r u p a d ı o l a b il ir v e y a b ir if a d e o l a b il ir . B u d u r u m d a , k u l l a n ıc ı g ö r e v in i $ { in it ia t o r . p r o p e r t ie s . u s e r N a m e } o l a r a k a t a d ın ız . B a ş l a t ıc ı, h e r z a m a n iş a k ış ın ı b a ş l a t a n k iş iy i t e m s il e d e n n e s n e y i iç e r e c e k ö z e l b ir n e s n e d ir . D iy a g r a m ş im d i t a m a m l a n d ı v e b a z ı s u n u c u t a r a f ı J a v a S c r ip t ' l e r in in e k l e n m e s i iç in h a z ır . İ ş l e m t a nı m ı na m a nt ı k e k l e m e D iy a g r a m y a p ıl d ı. B ir a z m a n t ık e k l e y e l im . D a h a ö n c e k i m e r h a b a d ü n y a ö r n e k l e r in e b e n z e r ş e k il d e , b ir t e b r ik y a z d ır m a k iç in b ir l o g g e r if a d e s i e k l e y e l im . A r a d a k i f a r k , b u ö r n e k t e , s e l a m l a m a , b a ş l a t ıc ı iş a k ış ın ı b a ş l a t t ığ ın d a b ir f o r m d a b e l ir t il e n b ir k iş in in a d ın ı iç e r m e s id ir . İ ş l e m D e ğ i ş k e n l e r i G e n e l l ik l e , iz l e n m e s i g e r e k e n b i r iş l e m h a k k ın d a m e t a v e r il e r v a r d ır . B u d u r u m d a , m e t a v e r il e r k iş in in a d ıd ır . K iş in in a d ı, iş a k ış ı a r a c ıl ığ ıy l a y ö n l e n d ir il e n iç e r iğ in b ir ö z e l l iğ i d e ğ il d ir ; iş l e m in k e n d is in in b ir ö z e l l iğ id ir . G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

39. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 39 / 39 A y r ıc a , b a s it H e l l o W o r l d ö r n e k l e r in d e n v e d a h a s o n r a b ir ç o k f a r k l ı d ü ğ ü m t ü r ü n ü v e iş m a n t ığ ı s e ç e n e k l e r in i k u l l a n a n d a h a k a r m a ş ık b ir ö r n e k d e n g e ç e r e k A l f r e s c o ' d a g e l iş m iş iş a k ış l a r ın ı u y g u l a m a s ü r e c in d e s iz e y o l g ö s t e r d im . İ ş s ü r e c in i w e b b e t iğ i ç e r ç e v e s in in y a r d ım ı il e S M T P v e H T T P ü z e r in d e n ü ç ü n c ü t a r a f l a r a if ş a e d e r e k iş l e r i b ir a z d a b ü y ü t t ü m . U m a r ım , b u , k e n d i p r o j e l e r in iz d e A l f r e s c o v e A c t iv it i' d e n n a s ıl y a r a r l a n a b il e c e ğ in iz e d a ir b a z ı f ik ir l e r e y o l a ç t ı v e il e r l e y e n k e n d i p r o j e l e r in iz d e k a l d ır a c a ğ ın ız k o n u s u n d a s o m u t ö r n e k l e r v e r d i. Dah a f a z l a b i l g i n e r e d e b u l u n u r B u ö r n e k l e r iç in e k s ik s iz k a y n a k k o d u G it H u b ' d a m e v c u t t u r . H e m E n t e r p r is e E d it io n h e m d e C o m m u n it y E d it io n iç in r e s m i b e l g e l e r d o c s . a l f r e s c o . c o m a d r e s in d e b u l u n a b il ir . A l f r e s c o T o p l u l u ğ u n d a A l f r e s c o ' y a g ö m ü l ü A c t iv it i h a k k ın d a s o r u l a r s o r u n . Y e n i b ir z e m in o l u ş t u r m a y a h a z ır s a n ız , A l f r e s c o G e l iş t ir ic i S e r is in d e b a ş k a b ir e c m a r c h it e c t . c o m ö ğ r e t ic is in i d e n e y in . A c t iv it i v e B P M N A c t iv it i a n a s a y f a s ı d o k ü m a n t a s y o n v e d e r s l e r v a r d ır . O M G , B P M N 2 . 0 ö z e l l ik l e r in in y a n ı s ır a Ö r n e k b e l g e y e g ö r e B P M N ' n in y a ş a d ığ ı b p m n . o r g ' u b a r ın d ır ıy o r . E C M M i m a r B u e s e r , C r e a t i v e C o m m o n s A t t r i b u t i o n - S h a r e A l i k e 3 . 0 U n p o r t e d L i c e n s e a l t ı n d a l i s a n s l a n m ı ş t ı r . G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

1. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 1 / 39 A l f r e s c o ' d a Ö z e l G e l i ş m i ş İ ş A k ı ş l a r ı O l u ş t u r m a J e ff P o t t s , M e t a v e r s a n t G r u b u N i s a n 2018 G ir iş İ ş a k ış ı n e d ir ? İ ş a k ış ın ı u y g u l a m a l a r ın ız a u y g u l a m a k iç in s e ç e n e k l e r K e n d in in k in i y u v a r l a B a ğ ım s ız m o t o r l a r G ö m ü l ü iş a k ış ı m o t o r l a r ı A l f r e s c o ' d a k u l l a n ım a h a z ır iş a k ış ı s e ç e n e k l e r i T e m e l iş a k ış l a r ı G e l iş m iş iş a k ış l a r ı A c t iv it i K a v r a m l a r ı A c t iv it i N e d ir ? N e d e n ik i g e l iş m iş iş a k ış ı m o t o r u ? B P M N 2 . 0 İ ş l e m t a n ım l a r ı K u r m a k A r a ç l a r P r o j e O r g a n iz a s y o n u M e r h a b a D ü n y a Ö r n e k l e r i H e l l o W o r l d s ü r e c i H e l l o W o r l d F o r k s ü r e c i D a ğ ıt ım iş l e m l e r i S p r in g il e iş a k ış l a r ın ı d a ğ ıt m a İ ş a k ış ı k o n s o l u n u k u l l a n m a A l f r e s c o S h a r e iç in iş a k ış ın ı y a p ıl a n d ır m a 1 . A d ım : h e l l o W o r l d U I iş l e m in i t a n ım l a y ın G ö r e v l e r G ö r e v A t a m a İ ş l e m t a n ım ın a m a n t ık e k l e m e A d ım 2 : İ ş a k ış ın a ö z g ü b ir iç e r ik m o d e l i t a n ım l a y ın İ ş a k ış ı iç e r ik m o d e l i X M L ' s in i o l u ş t u r u n A d ım 3 : A l f r e s c o P a y l a ş ım ın ı Y a p ıl a n d ır m a S h a r e - c o n f ig - c u s t o m . x m l d o s y a s ın ı d ü z e n l e y in D iz e l e r i d ış a a k t a r Y a y y a p ıl a n d ır m a s ın ı g ü n c e l l e D a ğ ıt v e T e s t E t U y g u l a m a ö z e t i S o m e C o W h it e p a p e r g ö n d e r im ö r n e ğ i İ ş g e r e k s in im l e r i Ü s t d ü z e y a d ım l a r A d ım 1 : T e m e l a k ış v e iş a k ış ı k u l l a n ıc ı a r a y ü z ü n ü u y g u l a y ın İ ş l e m i d iy a g r a m ı K u l l a n ıc ı g ö r e v l e r in i a t a m a l a r l a y a p ıl a n d ır m a K a r a r m a n t ığ ı e k l e A l f r e s c o S h a r e y a p ıl a n d ır m a s ın ı iç e r e n iş a k ış ı iç e r ik m o d e l i D a ğ ıt v e t e s t e t G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

12. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 12 / 39 " Y e n id e n k o n u ş l a n d ır m a n ın " y a n l ış o l a r a k a y a r l a n m a s ı, iş a k ış l a r ın ın A l f r e s c o h e r y e n id e n b a ş l a t ıl d ığ ın d a y e n id e n k o n u ş l a n d ır ıl m a s ın ı ö n l e r . B u iş s ü r e ç l e r in d e J a v a S c r ip t " l o g g e r " if a d e l e r i iç e r iy o r . B u n l a r ın k a y ıt l a r d a g ö r ü n m e s in i s a ğ l a m a k iç in , iş a k ış ı ö ğ r e t ic i- p l a t f o r m - j a r m o d ü l ü n d e y e r a l a n d e v - l o g 4 j . p r o p e r t ie s d o s y a s ın ı d ü z e n l e y in . İ ç in d e b u l u n u r : $TUTORIAL_HOME/workflow-tutorial-platform-jar/src/test/resources/alfresco/extension D e ğ iş im ScriptLogger b u s a t ır ı d e ğ iş t ir e r e k h a t a a y ık l a m a k iç in : log4j.logger.org.alfresco.repo.jscript.ScriptLogger=DEBUG Ş im d i h e r ş e y g it m e y e h a z ır . B u t e s t iç in , A l f r e s c o M a v e n S D K ' n ın s iz in iç in k u r d u ğ u y e r l e ş ik A l f r e s c o s u n u c u s u n u k u l l a n a b il ir s in iz . A M P ' n iz i k a t ış t ır ıl m ış A l f r e s c o s u n u c u s u n d a ç a l ış t ır m a k iç in b ir k o m u t s a t ır ı p e n c e r e s i a ç ın , $ T U T O R I A L _ H O M E s e ç e n e ğ in e g e ç in v e ç a l ış t ır ın run.sh ( v e y a run.bat iş l e t im s is t e m in iz e b a ğ l ı o l a r a k ) . A p a c h e M a v e n b a z ı b a ğ ım l ıl ık l a r ı in d ir e c e k , A M P ' l e r in iz i o l u ş t u r a c a k , o n l a r ı A l f r e s c o W A R d o s y a s ı v e S h a r e W A R d o s y a s ı il e b ir l e ş t ir e c e k , a r d ın d a n g ö m ü l ü b ir T o m c a t s u n u c u s u b a ş l a t a c a k . D a h a s o n r a ik i m e r h a b a d ü n y a s ı iş l e m t a n ım ın ı t e s t e t m e k iç in A l f r e s c o W o r k f l o w C o n s o l e ' u n a s ıl k u l l a n a c a ğ ın ız ı g ö r e c e k s in iz . İ ş a k ı ş ı k o n s o l u n u k u l l a n m a A l f r e s c o s u n u c u n u z ç a l ış ıy o r v e m e r h a b a d ü n y a s ı iş l e m t a n ım l a r ı, s u n u c u b a ş l a t ıl d ığ ın d a k o n u ş l a n d ır ıl m ış o l m a l ıy d ı. A l f r e s c o W o r k f l o w C o n s o l e , b a ş a r ıy l a y e r l e ş t ir il d ik l e r in i d o ğ r u l a m a k iç in k u l l a n ıl a b il ir . V e b u n l a r ı t e s t e t m e k iç in b u iş a k ış l a r ın ın ö r n e k l e r in i b a ş l a t m a k iç in k u l l a n a b il ir s in iz . A y n ı z a m a n d a k u l l a n ış l ı b ir iş a k ış ı h a t a a y ık l a m a a r a c ı o l a b il ir . A l f r e s c o E n t e r p r is e ' d a İ ş A k ış ı K o n s o l u l in k i: h t t p : / / l o c a l h o s t : 8 0 8 0 / a l f r e s k o / s / e n t e r p r is e / a d m in / a d m in - w o r k f l o w c o n s o l e A l f r e s c o T o p l u l u ğ u n d a , İ ş A k ış ı K o n s o l u b a ğ l a n t ıs ı: h t t p : / / l o c a l h o s t : 8 0 8 0 / a l f r e s k o / s / a d m in / a d m in - w o r k f l o w c o n s o l e D a h a ö n c e b ir y ö n e t ic i o l a r a k k i m l ik d o ğ r u l a m a s ı y a p m a d ıy s a n ız , s iz d e n b u U R L ' y e g id e r k e n y a p m a n ız is t e n e c e k t ir . İ ş a k ış ı k o n s o l u n d a ş u n u y a p ın : 1 . " T ü m t a n ım l a r ı g ö s t e r " y a z ıp a r d ın d a n h a n g i iş l e m t a n ım l a r ın ın u y g u l a n d ığ ın ı g ö r m e k iç in Ç a l ış t ır ' ı t ık l a t ın : G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

15. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 15 / 39 B u n u a k ıl d a t u t a r a k , b ir t a n e d a h a m e r h a b a d ü n y a ö r n e ğ i y a p a l ım . B u k e z , ö r n e k A l f r e s c o S h a r e f o r m y a p ıl a n d ır m a s ın ı k u l l a n a c a k . O n d a n s o n r a , ö n c e k i d e r s l e r d e b a ş l a y a n S o m e C o ç a l ış m a s ın a d a y a n a n d a h a g e r ç e k b ir d ü n y a ö r n e ğ i ü z e r in d e ç a l ış m a y a h a z ır o l a c a k s ın ız . 1 . A d ı m : h e l l o W o r l d U I i ş l e m i n i t a n ı m l a y ı n B u ö r n e ğ in a m a c ı, iş a k ış ı g ö n d e r il d iğ in d e b ir p a r ç a m e t a v e r i ( k a y d e d ic in in b ir s e l a m l a m a iç in k u l l a n m a s ı g e r e k e n b ir a d ) y a k a l a y a c a k b ir iş a k ış ı o l u ş t u r m a k v e a r d ın d a n s e l a m l a m a y ı g ü n l ü ğ e y a z m a k t ır . İ l k a d ım s ü r e c i t a n ım l a m a k t ır . 1 . E c l ip s e ' d e " iş a k ış l a r ı" k l a s ö r ü n e s a ğ t ık l a y ın v e " h e l l o W o r l d U I . b p m n " a d l ı y e n i b ir A c t iv it i D iy a g r a m ı o l u ş t u r u n . 2 . P a l e t t e n , b ir b a ş l a n g ıç o l a y ın ı, b ir b it iş o l a y ın ı, b ir A l f r e s c o K u l l a n ıc ı G ö r e v in i v e b ir A l f r e s c o K o m u t D o s y a s ı g ö r e v in i t u v a l e s ü r ü k l e y in . A l f r e s c o ' y a ö z e l K u l l a n ıc ı G ö r e v in i v e K o m u t D o s y a s ı G ö r e v in i k ıs a s ü r e k u l l a n m a n ın f a y d a s ın ı g ö r e c e k s in iz . 3 . P a l e t t e k i " D iz i A k ış ı" n ı t ık l a y ın v e d a h a s o n r a ş ö y l e g ö r ü n m e s i iç in iş l e m d e k i d ü ğ ü m l e r i b a ğ l a y ın : M e r h a b a D ü n y a U I B P M N D i y a g r a m ı 4 . Ş im d i ö z e l l ik l e r i A l f r e s c o K u l l a n ıc ı G ö r e v in d e a y a r l a y ın . S a n a t ç ı t ü r ü n ü " A s s ig n e e " v e if a d e y i " $ { in it ia t o r . p r o p e r t ie s . u s e r N a m e } " o l a r a k a y a r l a y ın . B u , il k ik i m e r h a b a d ü n y a ö r n e ğ in d e y a p t ığ ın ız l a e ş d e ğ e r d ir , s a d e c e b u p a n e l , s a n a t ç ı t ü r ü v e if a d e iç in ik i a y r ı a l a n k u l l a n ır . 5 . Ş im d i f o r m a n a h t a r ın ı a y a r l a y ın . A l f r e s c o ' d a , b ir f o r m a n a h t a r ı, i ş a k ış ın a ö z g ü b ir iç e r ik m o d e l in d e b ir t ü r ü n a d ıd ır . B u , g e n e l b ir K u l l a n ıc ı G ö r e v i y e r in e A l f r e s c o K u l l a n ıc ı G ö r e v i o l d u ğ u n d a n , k u l l a n ım a h a z ır f o r m a n a h t a r l a r ı iç in o l a s ı d e ğ e r l e r i z a t e n b il iy o r d u r . F o r m a n a h t a r ı " w f : a c t iv it iR e v ie w T a s k " o l a r a k a y a r l a y ın . K u t u d a n ç ık a n iş a k ış ı iç e r ik m o d e l i, b u a d a g ö r e b ir t ü r e s a h ip t ir v e k u t u d ış ı f o r m y a p ıl a n d ır m a s ı z a t e n b u t ü r ü n b ir p a r ç a s ı o l a r a k t a n ım l a n a n ö z e l l ik l e r iç in b ir f o r m o l u ş t u r m a k ü z e r e a y a r l a n m ış t ır . A l f r e s c o K u l l a n ı c ı G ö r e v i ö z e l l i k l e r i 6 . Ş a r t , iş a k ış ı b a ş l a t ıc ıs ın ın , k a y d e d ic in in s e l a m l a m a d a k u l l a n a c a ğ ı b ir a d b e l ir t m e s in i s a ğ l a m a k t ır . B u n e d e n l e , s t a r t o l a y ın ın ö z e l b ir f o r m a n a h t a r ın a iş a r e t e t m e s i g e r e k ir ( b u , k ıs a s ü r e iç in d e o l u ş t u r a c a ğ ın ız ö z e l b ir iç e r ik t ü r ü n ü t e m s il e d e r ) . S t a r t o l a y ın ı t e k t ık l a t t ık t a n s o n r a f o r m a n a h t a r ın ı " s c w f : d e l iv e r H e l l o W o r l d T a s k " o l a r a k a y a r l a y ın . G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

9. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 9 / 39 B u y a p ıl d ık t a n s o n r a ş u a d ım l a r ı iz l e y in : 1 . İ ş a k ış l a r ı k l a s ö r ü n ü s a ğ t ık l a y ın v e Y e n i, D iğ e r , A c t iv it i Ş e m a s ı' n ı s e ç in . İ ş l e m a d ı iç in " h e l l o W o r l d . b p m n " b e l ir t in v e S o n ' a t ık l a y ın . 2 . B ir b a ş l a n g ıç o l a y ın ı, b ir k u l l a n ıc ı g ö r e v in i v e b ir b it iş o l a y ın ı p a l e t t e n b o ş t u v a l in iz e s ü r ü k l e y ip b ır a k ın . 3 . P a l e t t e n g e l e n s ır a a k ış ın ı k u l l a n a r a k s t a r t o l a y ın ı k u l l a n ıc ı g ö r e v in e v e k u l l a n ıc ı g ö r e v in i e n d o l a y ın a b a ğ l a y ın . İ ş in iz b it t iğ in d e , ş e m a ş ö y l e g ö r ü n m e l id ir : M e r h a b a D ü n y a B P M N D i y a g r a m ı 4 . A ç ık d e ğ il s e , P e n c e r e , G ö r ü n ü m ü G ö s t e r , D iğ e r , G e n e l , Ö z e l l ik l e r ' e g id e r e k " Ö z e l l ik l e r " g ö r ü n ü m ü n ü a ç ın . 5 . P a l e t t e “ S e ç ” s e ç e n e ğ in in t ık l a n d ığ ın d a n e m in o l d u k t a n s o n r a “ K u l l a n ıc ı G ö r e v i” g ö r e v in i t e k t ık l a y ın . 6 . A s is t a n o l a r a k " $ { in it ia t o r . p r o p e r t ie s . u s e r N a m e } " ö ğ e s in i a ş a ğ ıd a g ö s t e r il d iğ i ş e k il d e b e l ir t in : M e r h a b a D ü n y a k u l l a n ı c ı g ö r e v ö z e l l i k l e r i 6 . T u v a l ü z e r in d e b ir y e r e t ık l a y ın . B u ö z e l l ik g ö r ü n t ü l e y ic id e " İ ş l e m " s e k m e s in i g ö s t e r m e l id ir . K im l ik o l a r a k " h e l l o W o r l d " v e A d o l a r a k " H e l l o W o r l d " s e ç e n e ğ in i b e l ir l e y in . M e r h a b a D ü n y a k u l l a n ı c ı g ö r e v ö z e l l i k l e r i 7 . D iy a g r a m ı k a y d e d in v e k a p a t ın . B ir iş l e m e n a s ıl k o d e k l e n e c e ğ in i g ö r m e k iç in iş l e m e k ü ç ü k b ir l o g g e r if a d e s i k o y a l ım . A c t iv it i b ir d e n f a z l a k o m u t d o s y a s ı d il in i d e s t e k l e r , a n c a k A l f r e s c o ' n u n y e r l e ş ik A c t iv it i' s in d e , J a v a S c r ip t e n p r a t ik o l a n ıd ır , ç ü n k ü s iz e t a m J a v a S c r ip t A P I ' s in e e r iş m e n iz i s a ğ l a r . İ ş l e m e k o d e k l e m e k iç in , " h e l l o W o r l d . b p m n " d o s y a s ın ı d iy a g r a m e d it ö r ü y e r in e X M L e d it ö r ü n d e t e k r a r a ç ın v e s t a r t o l a y ın ı k u l l a n ıc ı g ö r e v in e b a ğ l a y a n d iz i a k ış ın ı a r a y ın . B u n u n g ib i b ir ş e y e b e n z e m e l i: <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"></sequenceFlow> id D iz i a k ış ın ı h a n g i s ır a y l a y a r a t t ı ğ ın ız a b a ğ l ı o l a r a k ö z e l l ik d e ğ e r in iz in b e n im k in d e n f a r k l ı o l a b il e c e ğ in i u n u t m a y ın . A c t iv it i, ö z e l k o d iç in h e r t ü r l ü k a n c a n o k t a s ın a s a h ip t ir . B u d iz i a k ış ı b a ş l a d ığ ın d a b ir m e s a j ı g ü n l ü ğ e k a y d e t m e k iç in a k ış a a ş a ğ ıd a k i g ib i b ir y ü r ü t m e d in l e y ic is i e k l e y in : <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="usertask1"> <extensionElements> G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

22. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 22 / 39 İ ş a k ış ı ö ğ r e t ic i- p a y l a ş ım - j a r m o d ü l ü iç in Y a y k o n f ig ü r a s y o n u ş u n l a r d a b u l u n u r : $TUTORIAL_HOME/workflow-tutorial-share-jar/src/main/resources/alfresco/web-extension W e b u z a n t ıs ı d iz in in d e , S D K " w o r k f l o w - t u t o r ia l - s h a r e - s l in g s h o t - a p p l ic a t io n - c o n t e x t . x m l " a d l ı b ir d o s y a o l u ş t u r d u . B u d o s y a n ın iç e r iğ in i a ş a ğ ıd a k i iç e r ik l e d e ğ iş t ir in : D o s y a y ı k a y d e d in v e k a p a t ın . H e l l o W o r l d U I ö r n e ğ i ş im d i d a ğ ıt ım a h a z ır . D a ğ ı t v e T e s t E t M e r h a b a d ü n y a U I ö r n e ğ i, A l f r e s c o M a v e n S D K ' n ın b ir p a r ç a s ı o l a n y e r l e ş ik T o m c a t s u n u c u s u k u l l a n ıl a r a k t e s t e d il e b il ir . 1 . B ir k o m u t s a t ır ı p e n c e r e s i a ç ın v e $ T U T O R I A L _ H O M E k o n u m u n a g e ç in . 2 . K o ş run.sh ( v e y a run.bat ) . R e p o k a t m a n l ı A M P v e P a y l a ş ım A M P ' n iz o l u ş t u r u l a c a k , il g il i W A R ' l a r ın a k u r u l a c a k v e 8 0 8 0 p o r t u n d a ç a l ış a n T o m c a t ' t a b a ş l a t ıl a c a k t ır . H e r ş e y b a ş l a d ığ ın d a : 1 . H t t p : / / l o c a l h o s t : 8 0 8 0 / p a y l a ş ım ın a g id in v e a d m in o l a r a k o t u r u m a ç ın ( ş if r e : a d m in ) . 2 . " G ö r e v l e r im " g ö s t e r g e p a n e l in d e , b ir iş a k ış ı b a ş l a t m a k iç in " İ ş A k ış ın ı B a ş l a t " ı t ık l a y ın . H e l l o W o r l d U I iş a k ış ın ı iş a k ış l a r ı l is t e s in d e g ö r m e l is in iz : <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'> <beans> <!-- Add Someco Workflow messages --> <bean id="${project.artifactId}_resources" class="org.springframework.extensions.surf.util.ResourceBundleBootstrap <property name="resourceBundles"> <list> <value>alfresco.web-extension.messages.scWorkflow</value> </list> </property> </bean> </beans> G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

4. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 4 / 39 y a p m a d a n ö n c e d ü ş ü n d ü ğ ü n ü z s is t e m l e r in iç in e y e r l e ş t ir il m iş o l a n iş a k ış ı m o t o r u n u n ö z e l l ik l e r in i a n l a m a k ö n e m l id ir . G ö m ü l ü b ir iş a k ış ı m o t o r u n d a n y a r a r l a n m a n ın e n b ü y ü k a v a n t a j ı, k u l l a n ıc ıl a r v e g e l iş t ir ic il e r iç in s ık ı e n t e g r a s y o n d ü z e y id ir . K u l l a n ıc ıl a r , C M S is t e m c is in i t e r k e t m e d e n iş a k ış l a r ın ı b a ş l a t a b il ir v e e t k il e ş im e g ir e b il ir l e r . G e n e l o l a r a k , C M S ' y i ö z e l l e ş t ir e n v e y a g e n iş l e t e n g e l iş t ir ic il e r , ç e k ir d e k C M S A P I ' s in i k u l l a n a r a k iş a k ış l a r ıy l a ç a l ış a b il ir . A l f r e s c o ' d a k u l l a n ı m a h a zı r i ş a k ı ş ı s e ç e n e k l e r i A l f r e s c o , ü r ü n iç in d e iş a k ış l a r ın ı u y g u l a m a k iç in ik i s e ç e n e ğ e s a h ip t ir . Ç o k b a s it iş a k ış l a r ı iç in , t e k n ik o l m a y a n s o n k u l l a n ıc ıl a r A l f r e s c o ' n u n T e m e l İ ş A k ış ı iş l e v s e l l iğ in d e n y a r a r l a n a b il ir . D a h a k a r m a ş ık iht iy a ç l a r iç in , A l f r e s c o A d v a n c e d W o r k f l o w iş l e v s e l l iğ i n e s a h ip t ir . T e m e l i ş a k ı ş l a r ı T e m e l iş a k ış l a r ı g ü z e l b ir s o n k u l l a n ıc ı a r a c ıd ır . N a s ıl ç a l ış t ık l a r ın ı v e ö z e l l ik l e r i n v e s ın ır l a m a l a r ın n e o l d u ğ u n u b il m e l is in iz , b ö y l e c e n e z a m a n k u l l a n ıl a c a ğ ın a d a ir iy i k a r a r l a r v e r e b il ir s in iz . T e m e l iş a k ış l a r ı, s e r i iş l e m l e r i g e r ç e k l e ş t ir m e k iç in k l a s ö r l e r v e " il e r i a d ım / g e r i a d ım " m o d e l in i k u l l a n ır . B ir iç e r ik p a r ç a s ı b ir k l a s ö r e b ır a k ıl d ığ ın d a , " il e r i a d ım " v e " g e r i a d ım " ( iç e r ik l e r d e n b ir i v e y a d iğ e r i v e y a h e r ik is i) il e il iş k il e n d ir il e n b ir k u r a l t e t ik l e n ir . B u a d ım l a r , " B ir ö z e l l ik a y a r l a " v e y a " İ ç e r iğ i b e l ir t il e n b ir k l a s ö r e t a ş ı" g ib i A l f r e s c o e y l e m l e r iy l e il g il id ir . S o n k u l l a n ıc ıl a r , b e l ir l i b ir iç e r i k p a r ç a s ı iç in u y g u n a d ım a t ık l a y a b il ir . Ö r n e ğ in , S o m e C o ’ n u n iç e r iğ in g ö n d e r il d iğ i, a r d ın d a n g ö z d e n g e ç ir il d iğ in i, s o n r a o n a y l a n d ığ ın ı v e y a r e d d e d il d iğ in i g ö s t e r e n b a s it b ir in c e l e m e - o n a y - o n a y s ü r e c i o l d u ğ u n u v a r s a y a l ım . B u n u t e m e l iş a k ış l a r ıy l a u y g u l a m a n ın b ir y o l u , ü ç k l a s ö r k u l l a n m a k t ır - d iy e l im k i " T e m e l T a s l a k " , " İ n c e l e m e " v e " O n a y l a n d ı" o l a r a k a d l a n d ır ıl ır l a r . B u n l a r ın h e r b ir i t e m e l b ir iş a k ış ı u y g u l a y a n b ir k u r a l s e t in e s a h ip t ir . T a s l a k k l a s ö r ü n d e k i iç e r ik iç in iş a k ış ın ın , " G ö n d e r " e t ik e t l i t e k b ir il e r i a d ım ı o l a c a k t ı v e e y l e m i iç e r iğ i " İ n c e l e n d i" k l a s ö r ü n e t a ş ıy a c a k v e o n a y l a y a n g r u b a b ir e - p o s t a g ö n d e r e c e k t ir . " İ n c e l e m e d e " k l a s ö r ü , il e r i a d ım ın " O n a y " o l a r a k e t ik e t l e n e c e ğ i v e iç e r iğ i " O n a y l a n d ı" k l a s ö r ü n e k o p y a l a y a c a ğ ı b ir iş a k ış ın a s a h ip o l a c a k . G e r iy e d o ğ r u a d ım " R e d d e t " o l a r a k e t ik e t l e n ir I n " Ö z e l e y l e m l e r o l u ş t u r m a " ö ğ r e t ic i, a d l ı b ir ö z e l k u r a l iş l e m i o l u ş t u r m u ş " T a ş ı R e p l a c e d " o ö r n e ğ in O n a y l ı k l a s ö r ü n d ış ın a v e b ir A r ş iv l e n e n k l a s ö r ü n e e s k i iç e r iğ i t a ş ım a k iç in b u t e m e l iş a k ış ı il e b ir l ik t e k u l l a n ıl a b il ir . T e m e l iş a k ış l a r ın ın f a y d a l ı o l d u ğ u n u g ö r e b il ir s in iz v e k u r a l l a r v e e y l e m l e r l e b ir l e ş t ir il d iğ in d e b a s it iş s ü r e ç l e r in i o t o m a t ik l e ş t ir e b il ir s in iz . A n c a k , t e m e l iş a k ış l a r ı, iş l e y e b il e c e k l e r i iş s ü r e ç l e r in in k a r m a ş ık l ığ ı b a k ım ın d a n s ın ır l ıd ır . G e l i ş m i ş i ş a k ı ş l a r ı G e l iş m iş iş a k ış l a r ı, iş s ü r e c i ü z e r in d e d a h a f a z l a k o n t r o l e ih t iy a ç d u y d u ğ u n u z d a f a y d a l ıd ır . G e l iş m iş iş a k ış ı m o t o r u n u n k u l l a n ım ın ı g e r e k t ir e n t ip ik g e r e k s in im l e r a ş a ğ ıd a k i g ib id ir : B e l ir l i k u l l a n ıc ıl a r a v e y a g r u p l a r a g ö r e v a t a m a İ ş s ü r e c i b o y u n c a p a r a l e l y o l l a r İ ç e r ik m e t a v e r il e r in e v e y a d iğ e r ö l ç ü t l e r e d a y a l ı k a r a r l a r İ s t is n a l a r ı iş l e m e y e t e n e ğ i Z a m a n l a y ıc ıl a r B u n l a r ın t ü m ü ( v e d a h a f a z l a s ı) , A l f r e s c o ' d a g e l iş m iş iş a k ış l a r ın ı u y g u l a m a k iç in k u l l a n ıl a n g ö m ü l ü A c t iv it i iş a k ış ı m o t o r u n u n ö z e l l ik l e r id ir . H e r n e k a d a r A l f r e s c o ' n u n g e l iş m iş iş a k ış l a r ın ın a y r ın t ıl ı ö z e l l i k l e r in i h e n ü z e l e a l m a m ış o l s a m d a , t e m e l v e il e r i iş a k ış l a r ın ı y ü k s e k b ir s e v iy e d e k a r ş ıl a ş t ır m a n ın ş im d i iy i b ir f ik ir o l a c a ğ ın ı d ü ş ü n m ü ş t ü m , b ö y l e c e t e m e l iş a k ış l a r ı k o n u s u n u g e r id e b ır a k ı p g e r is in i G e l iş m iş iş a k ış l a r ı h a k k ın d a ö ğ r e t ic i: T e m e l v e il e r i iş a k ış l a r ı a r a s ın d a k i f a r k G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

2. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 2 / 39 2 . A d ım : W e b k o m u t d o s y a l a r ın ı v e e y l e m l e r i u y g u l a m a O n a y l a n m ış b e l g e l e r d e k i s e t - w e b - e y l e m in i ç a ğ ır ın D ış ü ç ü n c ü t a r a f in c e l e m e s in i u y g u l a m a k D a ğ ıt v e t e s t e t A d ım 3 : Ü ç ü n c ü t a r a f g ö r e v e z a m a n l a y ıc ı e k l e m e D a ğ ıt v e t e s t e t S o n u ç D a h a f a z l a b il g i n e r e d e b u l u n u r G i r i ş B u e ğ it im , A l f r e s c o ' d a y e r l e ş ik A c t iv it i iş a k ış ı m o t o r u il e m e v c u t g e l iş m iş iş a k ış ı iş l e v s e l l iğ i h a k k ın d a d ır . B ir in c is i, " iş a k ış ı" f a r k l ı in s a n l a r a f a r k l ı ş e y l e r if a d e e d e b il d iğ i iç in , t e r im in t a n ım ın ı k o n u ş a c a ğ ım . A r d ın d a n , iş l e m l e r in n a s ıl t a n ım l a n d ığ ın ı v e iş a k ış ı m o t o r u n u n g e r ç e k t e n a s ıl ç a l ış t ığ ın ı a n l a m a n ız a y a r d ım c ı o l a c a k b a z ı A c t iv it i k a v r a m l a r ın ı t a n ıt a c a ğ ım . B u t e m e l k u r u l u n c a , b ir ç o k f a r k l ı k o n s e p t in y e r a l d ığ ı b a z ı ö r n e k l e r ü z e r in d e n g e ç e c e ğ im . B u e ğ it im , ö n c e k i d e r s l e r d e e l e a l ın a n " S o m e C o " ö r n e k l e r i ü z e r in e k u r u l u d u r . İ ç in d e , b a z ı t a r a f l a r ın iç v e d ış t a r a f l a r c a g ö z d e n g e ç ir il m e s i v e o n a y l a n m a s ı iç in b a z ı y a z ı t a h t a l a r ın ı y ö n l e n d ir m e s in e y a r d ım c ı o l a n b ir iş s ü r e c i u y g u l a y a c a ğ ım . İ ş a k ı ş ı n e d i r ? A l f r e s c o , ü r ü n ü n 1 . 4 s ü r ü m ü n ü p iy a s a y a s ü r d ü ğ ü n d e , iş l e t m e h a z ır l ığ ın d a b ü y ü k b ir a d ım a t t ıl a r . A l f r e s c o , J B o s s j B P M m o t o r u n u ü r ü n e y e r l e ş t ir d iğ in d e , iş l e t m e l e r in A l f r e s c o d e p o iç e r iğ in i k a r m a ş ık iş s ü r e ç l e r i b o y u n c a y ö n l e n d ir e b il m e s i a n l a m ın a g e l iy o r d u . İ ç e r iğ in d e k i iç e r iğ i ü r e t e n , t ü k e t e n v e y a d ö n ü ş t ü r e n iş s ü r e ç l e r in i k o l a y l a ş t ır m a k a b il iy e t in e s a h ip o l m a y a n b ir iç e r ik d e p o s u , y ü c e l t il m iş b ir d o s y a s u n u c u s u n d a n b ir a z d a h a f a z l a d ır , b u n e d e n l e b u h o ş b ir e k o l d u . A n c a k g r a f ik t a b a n l ı y ü r ü t m e d i l l e r in in h a r ik a l a r ın ı d ü ş ü n m e d e n ö n c e i ş a k ı ş ı n ı n n e a n l a m a g e l d iğ in e k a r a r v e r e l im . G e n e l o l a r a k , b ir iş a k ış ı " b e l g e l e n e b il e n v e ö ğ r e n il e b il e n k a y n a k l a r ın s is t e m a t ik b ir o r g a n iz a s y o n u t a r a f ın d a n s a ğ l a n a n g ü v e n il ir b ir ş e k il d e t e k r a r l a n a b il ir b ir f a a l iy e t ş e k l id ir " ( k a y n a k ) . İ n s a n l a r e r k e n 2 0 ' d e iş in d o ğ a s ın ı o k u y a n b a ş l a d ığ ın d a n b e r i t e r im e t r a f ın d a o l m u ş t u r ü r e t im s ü r e ç l e r in i h ız l a n d ır m a k a m a c ıy l a y ü z y ıl d a . A s l ın d a , E C M d ü n y a s ın d a , iç e r i ğ in b ir o r g a n iz a s y o n d a n a s ıl a k t ığ ın ı d ü ş ü n ü r k e n b ir m o n t a j h a t t ı v e y a ü r e t im s ü r e c i d ü ş ü n m e k b a z e n y a r a r l ı o l a b il ir . İ ç e r ik , b ir v e y a d a h a f a z l a k iş i ( iş b ir l iğ i) v e y a m a k in e ( s is t e m ) t a r a f ın d a n b iç im l e n d ir il e n v e k a l ıp l a n a n , k a l it e a ç ıs ın d a n g ö z d e n g e ç ir il e n v e t ü k e t ic il e r e il e t il e n h a m m a d d e d e n ( v e r i) d o ğ a r . İ ç e r ik , t e k b ir iş l e m d e n v e y a b ir ç o k a l t iş l e m d e n g e ç e b il ir . İ ç e r ik , o iç e r iğ in b e l ir l i ö z e l l ik l e r in e d a y a n a n b ir iş l e m l e f a r k l ı y o l l a r a l a b il ir . B ir o r g a n iz a s y o n u n v e y a b il g i iş ç il e r i d e p a r t m a n ın ın ç ık t ıs ı, e s a s o l a r a k m o n t a j h a t t ın d a n ç ık a n iç e r ik t ir ( o k u r u l u ş u n iş s ü r e ç l e r in i t a n ım l a y a n iş a k ış l a r ın ın t o p l a n m a s ı) . H e r z a m a n b iç im s e l l e ş t ir il m iş v e y a o t o m a t ik o l m a m a s ın a r a ğ m e n , m o d e r n t o p l u m d a k i h e m e n h e m e n h e r k e s b ir ş e k il d e b ir iş a k ış ın a d a h il o l m u ş t u r : B ir s ig o r t a t a l e b in d e b u l u n d u ğ u n u z d a , b ir iş a k ış ı b a ş l a t ıy o r s u n u z d u r . E ğ e r b ir s a r h o ş l u ğ a t a n ık o l u r s a n ız v e b ir h a v a y o l u u ç u ş u n d a d ü z e n s iz b ir ş e k il d e d a v r a n ıy o r s a n ız v e h a v a y o l u n a b ir if a d e v e r m e n iz is t e n ir s e , b ir iş a k ış ın a k a t ıl ıy o r s u n u z . ( C id d e n , s a n d ığ ın ız d a n d a h a s ık o l u r ) . K r e d i b a ş v u r u n u z u n d u r u m u n u k o n t r o l e t t iğ in iz d e , ç a l ış a n b ir iş a k ış ı h a k k ın d a m e t a v e r il e r is t e r s in iz . B ir is i s iz e b e l ir l i b ir d o l a r l ık t u t a r ın ü z e r in d e o l d u ğ u iç in o n a y ın ız ı g e r e k t ir e n b ir s e r m a y e t a l e b i g e t ir d iğ in d e , b u is t e ğ in b ir ö z e l l iğ i ( d o l a r m ik t a r ı) iş a k ış ın d a s e r m a y e t a l e b in i s iz e y ö n l e n d ir e n b ir k a r a r ı t e t ik l e m iş t ir . Y a y ın l a n a c a k b ir w e b iç e r iğ in in s o n o n a y ın ı v e r d iğ in iz d e , b ir iş a k ış ın ı t a m a m l a m a n ız o l a s ıd ır . B u ö r n e k l e r d e o l d u ğ u g ib i, h e p s in d e , E C M il e il g il i k ıl a n o r t a k b ir k a ç ş e y v a r d ır : inci G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

25. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 25 / 39 3 . K a r a r m a n t ığ ı e k l e y in . 4 . İ ş a k ış ı iç e r ik m o d e l in i, A l f r e s c o S h a r e is t e m c i y a p ıl a n d ır m a s ın ı v e iş a k ış ı ö z e l l ik l e r in i u y g u l a y ın . 5 . D a ğ ıt v e t e s t e t . 2 . I m p l e m e n t w e b s c r ip t s a n d a c t i o n s f o r e x t e r n a l t h ir d - p a r t y in t e g r a t io n a n d o t h e r b u s in e s s l o g ic 1 . E x e c u t e t h e " s e t w e b f l a g " a c t io n ( c r e a t e d in a n e a r l ie r t u t o r ia l ) a g a in s t e v e r y w h it e p a p e r in t h e w o r k f l o w p a c k a g e . T h e a c t io n a d d s t h e sc:webable a s p e c t t o t h e w h it e p a p e r a n d s e t s t h e p r o p e r t ie s a p p r o p r ia t e l y . 2 . W r it e a w e b s c r ip t t o h a n d l e a p p r o v a l / r e j e c t io n v ia H T T P . T h e l o g ic n e e d s t o g r a b t h e t a s k a n d t h e n s e t t h e o u t c o m e w it h t h e a p p r o p r ia t e " a p p r o v e " o r " r e j e c t " f l a g . 3 . W r it e a n A c t iv it i t a s k l is t e n e r J a v a c l a s s t h a t s e n d s a n o t if ic a t io n t o t h e t h ir d - p a r t y e m a il a d d r e s s . 4 . D e p l o y a n d t e s t . 3 . A d d a t im e r t o t h e t h ir d - p a r t y t a s k 1 . A d d a t im e r t o t h e T h ir d P a r t y R e v ie w t a s k s o t h a t if t h e t h ir d p a r t y d o e s n ' t r e s p o n d in a t im e l y f a s h io n t h e t a s k w il l a u t o m a t ic a l l y a p p r o v e . 2 . D e p l o y a n d t e s t . N o w t h a t y o u k n o w w h e r e y o u ' r e h e a d e d a t a h ig h - l e v e l , l e t ' s g e t in t o t h e d e t a il s . S t e p 1 : I m p l e m e n t t h e b a s i c fl o w a n d w o r k fl o w u s e r i n t e r f a c e J u s t l ik e in t h e H e l l o W o r l d e x a m p l e s , t h e f ir s t t h in g t o d o is d ia g r a m t h e p r o c e s s . T h e n , a s s ig n t a s k s , a d d a b it o f l o g ic , a n d e s t a b l is h t h e w o r k f l o w c o n t e n t m o d e l b e f o r e a q u ic k d e p l o y a n d t e s t . D i a g r a m t he p r o c e s s T h e d ia g r a m s t e p is j u s t l ik e y o u ' v e s e e n b e f o r e , it ' s j u s t t h a t t h e d ia g r a m is a l it t l e m o r e c o m p l e x . 1 . R ig h t - c l ic k o n t h e w o r k f l o w s f o l d e r , N e w , O t h e r , A c t iv it i P r o c e s s D ia g r a m . 2 . N a m e t h e p r o c e s s " p u b l is h W h it e p a p e r . b p m n " . 3 . C l ic k o n t h e c a n v a s t o o p e n t h e p r o p e r t ie s e d it o r f o r t h e e n t ir e p r o c e s s . S e t t h e I D t o " p u b l is h W h it e p a p e r " a n d t h e n a m e t o " P u b l is h W h it e p a p e r " . 4 . D r a g - a n d - d r o p n o d e s f r o m t h e p a l e t t e a n d c o n n e c t t h e m w it h s e q u e n c e f l o w s t o m a k e y o u r d ia g r a m l o o k l ik e t h is : P u b l i s h W h i t e p a p e r B P M N D i a g r a m S u b m it is a S e r v ic e T a s k . T h e r e s t a r e U s e r T a s k s . T h is e x a m p l e d o e s n o t u s e t h e A l f r e s c o - s p e c if ic e v e n t s o r t a s k s , b u t f e e l f r e e t o d o s o in y o u r o w n d ia g r a m s . N o w t h a t t h e d ia g r a m is in p l a c e , c o n t in u e t o t h e n e x t s e c t io n t o s e e h o w t o s e t t h e t a s k p r o p e r t ie s . C o nfi g ur e us e r t a s k s w i t h a s s i g nm e nt s G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

5. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 5 / 39 A l f r e s c o t e m e l i ş a k ı ş l a r ı . . . A l f r e s c o g e l i ş m i ş i ş a k ı ş l a r ı . . . A l f r e s c o t e m e l i ş a k ı ş l a r ı . . . A l f r e s c o g e l i ş m i ş i ş a k ı ş l a r ı . . . T e k n ik o l m a y a n s o n k u l l a n ıc ıl a r t a r a f ın d a n A l f r e s c o P a y l a ş ım ı il e y a p ıl a n d ır ıl a b il ir G r a f ik s e l b ir a r a ç k u l l a n a r a k v e y a X M L y a z a r a k iş a n a l is t l e r i v e g e l iş t ir ic il e r i t a r a f ın d a n t a n ım l a n ır K u r a l l a r d a n , k l a s ö r l e r d e n v e e y l e m l e r d e n y a r a r l a n ın K a t ış t ır ıl m ış A c t iv it i iş a k ış ı m o t o r u n u n g ü c ü n d e n y a r a r l a n ın Y a l n ız c a t e k a d ım l ı, il e r i v e / v e y a g e r iy e , s e r i a k ış l a r a s a h ip iş l e m l e r i g e r ç e k l e ş t ir e b il ir K a r a r l a r , b ö l m e l e r , k a t ıl ım l a r , p a r a l e l a k ış l a r , a l t s ü r e ç l e r , b e k l e m e d u r u m l a r ı v e z a m a n l a y ıc ıl a r d a h il o l m a k ü z e r e h e r h a n g i b ir iş s ü r e c in i m o d e l l e y e b il ir K a r a r l a r ı, b ö l m e l e r i, b ir l e ş m e l e r i v e y a p a r a l e l a k ış l a r ı d e s t e k l e m e y in H e r ik is i d e A l f r e s c o A P I ' s in e e r iş e b il e n J a v a S c r ip t v e y a J a v a il e y a z ıl m ış iş m a n t ığ ın ı iç e r e b il ir İ ş l e m in k e n d is iy l e il g il i d e v l e t v e y a m e t a v e r il e r i t u t m a y ın S ü r e c in k e n d is i h a k k ın d a d u r u m v e s ü r e ç d e ğ iş k e n l e r in i ( m e t a v e r i) k o r u y u n G ö r e v a t a m a k a v r a m ın ı d e s t e k l e m e y in B ir e y l e r e , g r u p l a r a v e k u l l a n ıc ı h a v u z l a r ın a g ö r e v a t a m a d e s t e ğ i A r t ık , iş a k ış ın ın E C M b a ğ l a m ın d a k i t a n ım ın ı, iş a k ış ı g e r e k s in im l e r in i u y g u l a m a s e ç e n e k l e r in d e n b a z ıl a r ın ı v e ö z e l l ik l e A l f r e s c o iç in d e k i s e ç e n e k l e r i a n l a d ığ ın ız a g ö r e , b a z ı A c t iv it i k a v r a m l a r ın ı k e ş f e t m e y e b a ş l a m a n ın z a m a n ı g e l d i. A c t i v i t i K a v r a m l a r ı B u b ö l ü m , g e l iş t ir ic i k u r u l u m u n a g e ç m e d e n ö n c e b a z ı A c t iv it i k a v r a m l a r ın ı t a n ıt m a k t a d ır . A c t i v i t i N e d i r ? A c t iv it i a ç ık k a y n a k l ı, b a ğ ım s ız b ir iş a k ış ı m o t o r u d u r . T e k iht iy a c ı o l a n J a v a . B ir s e r v l e t k a b ın d a ç a l ış a b il ir v e y a h e r h a n g i b ir J a v a u y g u l a m a s ın a g ö m ü l e b il ir . A c t iv it i a l t y a p ıs ı, k o n u ş l a n d ır ıl m ış s ü r e ç l e r i y ö n e t m e k t e n , iş l e m l e r i b a ş l a t m a k v e y ü r ü t m e k t e n , s ü r e ç d u r u m u n u v e m e t a v e r il e r i il iş k is e l b ir v e r it a b a n ın d a s ü r d ü r m e k t e n v e g ö r e v a t a m a v e g ö r e v l is t e l e r in i t a k ip e t m e k t e n s o r u m l u d u r . A c t iv it i k e n d i b a ğ ım s ız a ç ık k a y n a k p r o j e s id ir . S a d e c e p r o j e n in k u r u c u l a r ı v e g e l iş t ir m e e k ib in in d iğ e r b a z ı ü y e l e r i A l f r e s c o t a r a f ın d a n is t ihd a m e d il iy o r . A c t iv it i, iş a k ış ı g e r e k s in im i o l a n h e r h a n g i b ir u y g u l a m a y a g ö m ü l m e k ü z e r e ü r e t il m iş t ir . A s ıl s o r u n , o n u A l f r e s c o il e e n t e g r e e t m e ç a l ış m a s ın ın s iz in iç in z a t e n y a p ıl d ığ ı. N e d e n i k i g e l i ş m i ş i ş a k ı ş ı m o t o r u ? D a h a ö n c e A l f r e s c o ' n u n J B o s s j B P M ' y i A l f r e s c o ' y a 1 . 4 s ü r ü m ü y l e y e r l e ş t ir m e y e b a ş l a d ığ ın ı b e l ir t m iş t im . A l f r e s c o 4 . 0 il e b a ş l a y a r a k , A l f r e s c o A c t iv it i' y i e k l e d i. A l f r e s c o , b ir A p a c h e l is a n s l ı iş a k ış ı m o t o r u is t e d ik l e r i iç in A c t iv it i' y i e k l e d i. J B o s s , j B P M l is a n s ın ı d e ğ iş t ir m e k is t e m iy o r d u , b u n e d e n l e A l f r e s c o , j B P M y a r a t ıc ıs ı T o m B a e y e n s v e e k ib in d e n b a z ıl a r ın ı A p a c h e l is a n s l ı, B P M N 2 . 0 u y u m l u b ir iş a k ış ı m o t o r u in ş a e t m e y i a m a ç l a y a n y e n i b ir a ç ık k a y n a k l ı p r o j e b a ş l a t m a k iç in iş e a l d ı. S o n u ç A c t iv it i' d ir . A l f r e s c o 5 . 1 ' d e A l f r e s c o , ü r ü n d e n j B P M ' y i d ü ş ü r d ü v e A c t iv it i il e b ir l ik t e il e r l iy o r . A l f r e s c o ' n u n e s k i s ü r ü m l e r in d e is e n iz v e h a l a j B P M k u l l a n ıy o r s a n ız , ş im d i A c t iv it i' y e g e ç m e l is in iz . B P M N 2 . 0 D a h a ö n c e A c t iv it i' n in B P M N 2 . 0 u y u m l u o l d u ğ u n u b e l ir t m iş t im . B P M N , İ ş S ü r e c i M o d e l l e m e N o t a s y o n u a n l a m ın a g e l ir . N e s n e n in t a m o l a r a k n e ö n e r d iğ in i t a n ım l a y a n N e s n e Y ö n e t im G r u b u ( O M G ) t a r a f ın d a n y ö n e t il e n G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

3. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 3 / 39 1 . B u n l a r in s a n d a n in s a n a v e b a z ı d u r u m l a r d a in s a n d a n m a k in e y e e t k il e ş im ö r n e k l e r id ir . 2 . İ ç e r ik v e y a b e l g e m e r k e z l id ir l e r . B u n l a r , b a h s e t t iğ im iş a k ış ın ın n e t l e ş m e s in e y a r d ım c ı o l a n ik i ö n e m l i ö z e l l ik . İ ç e r iğ i o l a n v e y a o l m a y a n h e r t ü r " t e k r a r l a n a b il ir a k t iv it e m o d e l in i" m o d e l l e m e k v e y ü r ü t m e k iç in k u l l a n ıl a b il e n b a ğ ım s ız iş a k ış ı m o t o r l a r ı ( a s l ın d a , b u n l a r d a n b ir i o l a n A k t iv it e l e r ) v a r d ır . iç e r ik l e ç a l ış a n in s a n l a r ı iç e r e n l e r . T a b ii k i, d o k ü m a n m e r k e z l i iş a k ış l a r ı t a m o t o m a t ik a d ım l a r v e m a k in e d e n m a k in e y e e t k il e ş im l e r iç e r e b il ir - n o k t a , in s a n l a r ın y ü r ü t ü l e n s ü r e ç l e r s ır a s ın d a b ir ş e k il d e g ö z d e n g e ç ir d ik l e r i, o n a y l a d ık l a r ı v e y a iş b ir l iğ i y a p t ık l a r ı b e l g e m e r k e z l i iş a k ış l a r ıd ır . ış ık l ı s is t e m d e n s is t e m e o r k e s t r a s y o n v e y a e n t e g r a s y o n d e ğ il d ir . İ ş a k ı ş ı n ı u y g u l a m a l a r ı n ı za u y g u l a m a k i ç i n s e ç e n e k l e r B a z ıl a r ın ız , “ H a k l ıs ın ız . İ ş a k ış l a r ı h e r y e r d e d ir . Ş u a n d a e - p o s t a , t e l e f o n g ö r ü ş m e l e r i v e k ü b ik s ü r ü ş l e r l e u y g u l a n a n s ü r e ç l e r i d a h a r e s m i b ir iş a k ış ın a t a ş ıy a r a k k u r u l u ş u m u g e r ç e k t e n k o l a y l a ş t ır a b il ir im . S e ç e n e k l e r im n e l e r d ir ? ” Ü ç h a k k ın d a k o n u ş a l ım : K e n d i iş in iz i, B a ğ ım s ız iş a k ış ı m o t o r l a r ın ız ı v e G ö m ü l ü iş a k ış ı m o t o r l a r ın ız ı k u l l a n ın . K e nd i ni nk i ni y uv a r l a İ n s a n l a r g e n e l l ik l e iş a k ış ı g e r e k s in im l e r in i ö z e l k o d l a r l a y e r in e g e t ir m e y e ö z e n g ö s t e r ir l e r . Ç o k t e m e l s is t e m l e r , " T a s l a k " v e y a " İ n c e l e m e " v e y a " O n a y l a n d ı" g ib i iç e r iğ in d u r u m u n u b il d ir e n b ir k a y ıt t a k i t e k b ir b a y r a k v e y a b ir n e s n e n in ü s t e s in d e n g e l e b il ir . A n c a k b a y r a k l a r y a l n ız c a b ir iç e r ik p a r ç a s ın ın " d u r u m u n u " y a k a l a r . İ ç e r iğ in d u r u m d a n d u r u m a n a s ı l g e ç t iğ in i o t o m a t ik l e ş t ir m e k is t iy o r s a n ız , k o d l a m a v e b a k ım d a h a k a r m a ş ık h a l e g e l ir . E l b e t t e , t a s l a k b e l g e l e r in in c e l e n m e k ü z e r e g ö n d e r il d ik t e n s o n r a il k ö n c e 1 0 m il y o n A B D D o l a r ı' n d a n d a h a f a z l a o l m a s ı d u r u m u n d a , ö n c e v e s o n r a F in a n s m a n ' a g it m e l e r i g e r e k t iğ in i b il e n u y g u l a m a n ız ın b ir p a r ç a s ı o l a r a k k o d y a z a b il ir s in iz . G e r ç e k t e n is t e m e k ? K e n d i iş a k ış l a r ın ı s ü r d ü r m e y i a m a ç l a y a n in s a n l a r g e n e l l ik l e b u n u n y a r a t t ığ ı b a k ım p r o b l e m in i f a r k e d e r l e r , b u y ü z d e n d u r u m d a n d u r u m a a k ış ın ı t a n ım l a m a k iç in k u l l a n ıl a n b ir s o y u t l a m a y ı y a r a t ır l a r ; Y in e d e b u n u y a p t ık l a r ın d a , a s l ın d a d ü n y a d a k i h iç k im s e n in n a s ıl ç a l ış t ır ıl a c a ğ ın ı y a d a b a k ım ın ı y a p a b il e c e ğ in i b il m e d iğ i k e n d i ö z e l iş a k ış ı m o t o r l a r ın ı y a r a t t ıl a r . T ü m a ç ık k a y n a k l ı iş a k ış ı m o t o r l a r ı m e v c u t k e n , b u n u n e d e n y a p m a k is t e r s in iz ? B u n e d e n l e , " k e n d i iş in i k e n d in y a p " s e ç e n e ğ i, e n t e m e l iş a k ış ı g e r e k s in im l e r in d e n b a ş k a h iç b ir i iç in ö n e r il m e m e k t e d ir . Ba ğ ı m s ı z m o t o r l a r A ç ık k a y n a k k o d l u v e t e s c il l i o l a n b ir d iz i b a ğ ım s ız iş a k ış ı m o t o r u ( b a z e n d a h a g e n iş ş e k il d e B P M ( İ ş S ü r e c i Y ö n e t im i) o l a r a k a d l a n d ır ıl ır ) v a r d ır . B u n l a r g e n e l l ik l e , y ü k s e k h a c im l i k r e d i iş l e m e d e n ç a ğ r ı m e r k e z i k u y r u k y ö n e t im in e k a d a r a k l ın ız a g e l e b il e c e k h e r t ü r l ü iş l e m i m o d e l l e m e k , s im ü l e e t m e k v e y ü r ü t m e k iç in k u l l a n ıl a b il e c e k s o n d e r e c e s a ğ l a m v e ö l ç e k l e n e b il ir ç ö z ü m l e r d ir . G e n e l l ik l e , b u iş a k ış ı m o t o r l a r ı, iş l e t m e k u l l a n ıc ıl a r ın ın k a r m a ş ık k a r a r v e r ic e k k a r a r a ğ a ç l a r ı ü z e r in d e k o n t r o l s a h ib i o l m a l a r ın ı s a ğ l a y a n b ir k u r a l m o t o r u il e b ir l ik t e u y g u l a n ır . B a ğ ım s ız m o t o r l a r , ç o k s a y ıd a s is t e m i iç e r e n a ş ır ı y ü k s e k h a c im l i v e y a a ş ır ı k a r m a ş ık ç ö z ü m l e r iç in e n u y g u n o l a n ıd ır . B a ğ ım s ız m o t o r l a r iç in b ir b a ş k a iy i k u l l a n ım , iş a k ış ı g e r e k s in im l e r in e s a h ip ö z e l b ir u y g u l a m a g e l iş t ir m e n iz d ir . B a ğ ım s ız m o t o r l a r g e n e l l ik l e u y g u l a m ış o l a b il e c e ğ in iz h e r h a n g i b ir v e r it a b a n ı v e y a iç e r ik y ö n e t im i d e p o s u y l a k o n u ş a b il ir , a n c a k iç e r ik y ö n e t im s is t e m in in k u l l a n ıc ı a r a y ü z ü n e C M S ' y e y e r l e ş ik iş a k ış ı m o t o r u k a d a r s ık ı b ir ş e k il d e e n t e g r e e d il m e y e c e k l e r d ir . B u n e d e n l e , ç o ğ u n l u k l a C M S k a p s a m ın d a ç a l ış a n iç e r ik m e r k e z l i ç ö z ü m l e r iç in , iş a k ış ın ı k a r ş ıl a m a k iç in y e t e r l i iş l e v s e l l iğ e s a h ip o l m a s ı k a y d ıy l a , C M S ' y e g ö m ü l ü iş a k ış ı m o t o r u n u k u l l a n m a k g e n e l l ik l e d a h a a z k a r m a ş ık t ır ( v e d a h a a z m a l iy e t l id ir ) . G e r e k s in im l e r . G ö m ül ü i ş a k ı ş ı m o t o r l a r ı A ç ık k a y n a k o l s u n v e y a o l m a s ın , g ü n ü m ü z d e m e v c u t h e m e n h e m e n h e r C M S , iç in d e g ö m ü l ü b ir t ü r iş a k ış ı m o t o r u n a s a h ip t ir . B u n u n l a b ir l ik t e , b u n l a r ın h e r b ir in in k a p a s it e s i, b ü y ü k ö l ç ü d e d e ğ iş m e k t e d ir . B ir C M S s e ç m e s ü r e c in d e y s e n iz v e k a r ş ıl a ş a c a ğ ın ız iş a k ış ı g e r e k s in im l e r in in n e o l d u ğ u n u z a t e n b il iy o r s a n ız , s o n b ir s e ç im G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

32. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 32 / 39 publishWhitepaper.workflow.title=Publish Whitepaper to Web (Activiti) publishWhitepaper.workflow.description=Review and approve Someco Whitepaper content using Activiti Ö z e l l ik a n a h t a r ın ın il k b ö l ü m ü n ü n , iş l e m t a n ım ın ı v e r d iğ in iz a d l a e ş l e ş t iğ in i u n u t m a y ın . W o r k f l o w . t it l e v e w o r k f l o w . d e s c r ip t io n a n a h t a r l a r ın ın d e ğ e r l e r i, A l f r e s c o P a y l a ş ım ı' n d a " G e l iş m iş İ ş A k ış ı B a ş l a t " ı t ık l a t t ığ ın d a k u l l a n ıc ın ın g ö r d ü ğ ü o l a c a k t ır . A y r ıc a , iş a k ış ı m o d e l in d e t a n ım l a n a n t ü r l e r v e ö z e l l ik l e r iç in o l a n b u ö z e l l ik l e r k ü m e s in i e k l e y in : A n a h t a r ın il k b ö l ü m ü , iş a k ış ı m o d e l in in a d ı, a r d ın d a n b u a n a h t a r ın b ir t ü r v e y a ö z e l l ik iç in o l u p o l m a d ığ ı, a r d ın d a n t ü r v e y a ö z e l l iğ in a d ıd ır . B u n l a r , b ir g ö r e v i y ö n e t t iğ in d e g ö s t e r il e n d iz e l e r d ir . Ş im d i iş a k ış ı ö ğ r e t ic i- p a y l a ş ım - j a r m o d ü l ü n d e s c W o r k f l o w . p r o p e r t ie s d o s y a s ın ı d ü z e n l e y in . İ ç in d e b u l u n u r : $TUTORIAL_HOME/workflow-tutorial-share-jar/src/main/resources/alfresco/web-extension/messages B u ö z e l l ik l e r i d o s y a y a e k l e y in : workflow.scwf_publishWhitepaper=SC Publish Whitepaper #scwf:publishWhitepaper prop.scwf_reviewerEmail=Reviewer Email D o s y a y ı k a y d e d in ; ş im d iy e k a d a r s a h ip o l d u k l a r ın ız ı d a ğ ıt m a y a v e t e s t e t m e y e h a z ır s ın ız . D a ğ ı t v e t e s t e t S p r in g ü z e r in d e n k o n u ş l a n d ır ıl m a s ı g e r e k e n y e n i b ir iş a k ış ı y a r a t t ın ız . İ ç in d e b u l u n d u ğ u " b o o t s t r a p - c o n t e x t . x m l " d o s y a s ın ı d ü z e n l e y in : scwf_workflowmodel.type.scwf_submitReviewTask.title=Start Someco Web Review scwf_workflowmodel.type.scwf_submitReviewTask.description=Submit Someco Web documents for review & approval to a group scwf_workflowmodel.type.scwf_activitiMarketingReview.title=Marketing Review scwf_workflowmodel.type.scwf_activitiMarketingReview.description=Review documents for impact on Someco marketing messa scwf_workflowmodel.type.scwf_activitiOperationsReview.title=Operations Review scwf_workflowmodel.type.scwf_activitiOperationsReview.description=Review documents for technical accuracy and best pra scwf_workflowmodel.type.scwf_activitiThirdPartyReview.title=Third Party Review scwf_workflowmodel.type.scwf_activitiThirdPartyReview.description=Obtain third party approval scwf_workflowmodel.type.scwf_activitiRevise.title=Revise scwf_workflowmodel.type.scwf_activitiRevise.description=Make changes then resubmit or abort scwf_workflowmodel.type.scwf_activitiReviewTask.title=Review scwf_workflowmodel.type.scwf_activitiReviewTask.description=Approve or reject this change scwf_workflowmodel.property.scwf_reviewerEmail.title=Reviewer email scwf_workflowmodel.property.scwf_reviewerEmail.description=Third-party reviewer email address scwf_workflowmodel.property.scwf_approveRejectOutcome.title=Outcome scwf_workflowmodel.property.scwf_approveRejectOutcome.description=Reviewer outcome scwf_workflowmodel.property.scwf_reviseOutcome.title=Outcome scwf_workflowmodel.property.scwf_reviseOutcome.description=Reviewer outcome $TUTORIAL_HOME/workflow-tutorial-platform-jar/src/main/resources/alfresco/module/workflow-tutorial-platform-jar/contex G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

35. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 35 / 39 S ın ıf , g ö r e v k im l iğ in i v e a l ın a c a k e y l e m i ( s o n u c u ) a l ır v e a r d ın d a n g ö r e v i g ü n c e l l e m e k v e b it ir m e k iç in iş a k ış ı h iz m e t in i k u l l a n ır . D o l a y ıs ıy l a , ö r n e ğ in , b ir il e r i b u U R L ’ y i y a y ın l a y a c a k s a : http://localhost:8080/alfresco/service/someco/bpm/review?id=activiti\$89&action=Approve J a v a s ın ıf ı, a c t iv it i $ 8 9 t a r a f ın d a n t a n ım l a n a n g ö r e v i " O n a y " s o n u c u il e g ü n c e l l e r . T a k ip e d iy o r s a n ız , w e b k o m u t d o s y a s ı t a n ım l a y ıc ıs ın ı v e w e b k o m u t d o s y a s ı iç in s e r b e s t b ır a k ıc ıy ı k o p y a l a m a y ı u n u t m a y ın : A y r ıc a , J a v a d e n e t l e y ic is in d e k i t e l l e r i iç e r e n S p r in g b e a n ' i a ş a ğ ıd a k i a d r e s t e b u l u n a n b o o t s t r a p - c o n t e x t . x m l d o s y a s ın a k o p y a l a m a n ız g e r e k ir . B u n l a r y e r l e ş t ir il d ik t e n s o n r a , w e b k o m u t d o s y a s ı g ö n d e r il e n e - p o s t a d a n t ık l a m a a l m a y a h a z ır o l a c a k t ır . E - p o s t a y ı g ö n d e r e n k o d u n y a z ıl m a s ı b ir s o n r a k i a d ım d ır . Ö z e l b i r g ö r e v d i n l e y i c i s i o l u ş t u r u n Ü ç ü n c ü P a r t i İ n c e l e m e s in e ik in c i p a r ç a , e - p o s t a y ı ü ç ü n c ü t a r a f a g ö n d e r iy o r . K u l l a n ım a h a z ır b ir p o s t a e y l e m i v a r v e A l f r e s c o J a v a S c r ip t ' i k u l l a n a r a k b ir iş a k ış ın d a n n a s ıl b ir e y l e m ç a ğ r ıl a c a ğ ın ı z a t e n g ö r d ü n ü z , a n c a k y a l n ız c a e - p o s t a g ö n d e r m e k d ış ın d a d ik k a t e t m e n iz g e r e k e n b ir k a ç ş e y v a r . iş l e m e k iç in ö z e l b ir g ö r e v d in l e y ic i s ın ıf ı y a z ın . İ l k ö n c e " c o m . s o m e c o . b p m " a d l ı y e n i b ir p a k e t o l u ş t u r u n . S o n r a " E x t e r n a l R e v ie w N o t if ic a t io n " a d l ı y e n i b ir s ın ıf o l u ş t u r u n . A m a ç , Ü ç ü n c ü T a r a f İ n c e l e m e k u l l a n ıc ı g ö r e v in in ik i o l a s ı s o n u c u n u t e m s il e d e n , b ir i o n a y l a m a k v e b ir i r e d d e t m e k iç in o l m a k ü z e r e ik i b a ğ l a n t ıs ı o l a n b ir e - p o s t a g ö n d e r m e k t ir . B a ğ l a n t ıl a r ın g ö r e v k im l iğ in i v e is t e n e n s o n u c u a r g ü m a n o l a r a k iç e r m e s i g e r e k ir . G ö r e v d in l e y ic is in in b il d ir im y ö n t e m i A c t iv it i t a r a f ın d a n ç a ğ r ıl a c a k . İ ş t e y ö n t e m in n e y e b e n z e d iğ i: public void notify(DelegateTask task) { String recipient = (String) task.getVariable(ExternalReviewNotification.RECIP_PROCESS_VARIABLE); StringBuffer sb = new StringBuffer(); sb.append("You have been assigned to a task named "); sb.append(task.getName()); sb.append(". Take the appropriate action by clicking one of the links below:rnrn"); sb.append(getLink(task.getId(), "Approve")); sb.append(getLink(task.getId(), "Reject")); ActionService actionService = getServiceRegistry().getActionService(); Action mailAction = actionService.createAction(MailActionExecuter.NAME); workflowService.updateTask(id, props, null, null); workflowService.endTask(id, action); return model; } } $TUTORIAL_HOME/workflow-tutorial-platform-jar/src/main/resources/alfresco/extension/templates/webscripts/com/someco/bp $TUTORIAL_HOME/workflow-tutorial-platform-jar/src/main/resources/alfresco/module/workflow-tutorial-platform-jar/contex G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

14. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 14 / 39 İ ş a k ış ı k o n s o l u k o m u t l a r ın ın k ıs m i l is t e s i k o m u t a B u n e y a p a r t ü m iş a k ış l a r ın ı g ö s t e r Ç a l ış a n t ü m iş a k ış l a r ın ı g ö s t e r i r . iş a k ış ın ı k u l l a n ın < iş a k ış ı k im l iğ i> b u r a d a < iş a k ış ı k im l iğ i> a c t iv it i b e n z e r i b ir ş e y v a r İ z l e y e n t ü m k o m u t l a r ın b e l ir t il e n iş a k ış ı b a ğ l a m ın d a g e r ç e k l e ş m e s in i s a ğ l a r . g e ç iş l e r i g ö s t e r T ü m a y r ıl a n g e ç iş l e r i g ö s t e r ir . s in y a l < y o l k im l iğ i> < t r a n s it io n > b u r a d a < y o l k im l iğ i> a c t iv it i $ 6 3 3 4 g ib i b ir ş e y d ir v e g e ç iş a l m a k is t e d iğ in iz a y r ıl m a g e ç iş in in a d ıd ır . V a r s a y ıl a n ı a l m a k iç in g e ç iş i b ır a k ın . B e l ir t e c i iş a r e t l e r . İ ş a k ış ın ız b ir d ü ğ ü m e t a k ıl ı k a l d ığ ın d a v e y a g ö r e v y ö n e t im i k u l l a n ıc ı a r a b ir im in e k a n d ır m a d a n b ir g e ç iş y a p m a k is t e d iğ in iz d e iy id ir . A z a l a n y o l < y o l k im l iğ i> b u r a d a < y o l k im l iğ i> a c t iv it i b e n z e r i b ir ş e y d ir G e ç e r l i iç e r iğ i d ö k ü y o r . H a t a a y ık l a m a iş l e m i d e ğ iş k e n l e r i iç in id e a l d ir . iş a k ış ın ı s o n l a n d ır ın < iş a k ış ı k im l iğ i> b u r a d a < iş a k ış ı k im l iğ i> a c t iv it i b e n z e r i b ir ş e y v a r B e l ir t il e n iş a k ış ın ı ip t a l e d e r . t a n ım l a r ı g ö s t e r G e ç e r l i k o n u ş l a n d ır ıl m ış iş a k ış l a r ın ı g ö s t e r ir . d a ğ ıt ım iş in i < iş a k ış ı k im l iğ i> v e y a d a ğ ıt ım iş in i < iş a k ış ı a d ı> B e l ir t il e n iş a k ış ın ı ç ö z e r v e b u t a n ım l a ç a l ış a n t ü m iş a k ış l a r ın ı d u r d u r u r . < İ ş a k ış ı k im l iğ i> v a r y a n t ı, b ir iş a k ış ın ın b e l ir l i b ir s ü r ü m ü n ü ç ö z e r . B u n l a r m e v c u t k o m u t l a r ın b ir a l t k ü m e s id ir . K o m u t l a r ın t a m l is t e s in i g ö r m e k iç in " h e l p " y a z ın v e E x e c u t e ' u t ık l a y ın . İ ş l e m t a n ım ın ın y e n i b ir s ü r ü m ü iş a r e t l e n d iğ in d e ç a l ış a n iş a k ış ı ö r n e k l e r in e n e o l d u ğ u n u m e r a k e d iy o r o l a b il ir s in iz . C e v a p , A c t iv it i' n in b u n u g e r ç e k l e ş t ir m e s id ir - ç a l ış a n iş a k ış l a r ın ın o r ij in a l iş l e m t a n ım l a r ıy l a ç a l ış m a y a d e v a m e t m e s in i s a ğ l a r . V a r s a y ıl a n o l a r a k , t ü m y e n i iş a k ış l a r ı, iş l e m t a n ım ın ın e n g ü n c e l s ü r ü m ü n ü k u l l a n a c a k t ır . A l f r e s c o S h a r e i ç i n i ş a k ı ş ı n ı y a p ı l a n d ı r m a Ş im d iy e k a d a r b ir iş a k ış ın ın n e o l d u ğ u n u v e b a z ı A c t iv it i k a v r a m l a r ın ı ö ğ r e n d in iz . İ ş l e m t a s a r ım c ıs ın ı ik i b a s it s ü r e c i d iy a g r a m l a m a k iç in k u l l a n d ın ız , b u n l a r ı A l f r e s c o ' y a y e r l e ş t ir d in iz v e iş a k ış ı k o n s o l u n u k u l l a n a r a k ç a l ış t ır d ın ız . E ğ it im in b u k ıs m ı, A l f r e s c o S h a r e k u l l a n ıc ı a r a b ir im in d e b ir iş a k ış ın ın n a s ıl y a p ıl a n d ır ıl a c a ğ ın ı a ç ık l a r . İ ş a k ış l a r ı, A l f r e s c o S h a r e k u l l a n ıc ı a r a y ü z ü iç in f o r m s e r v is i a r a c ıl ığ ıy l a y a p ıl a n d ır ıl m ış t ır . F o r m h iz m e t in in , s o n k u l l a n ıc ıl a r iç in g ü z e l b ir f o r m o l u ş t u r m a k ü z e r e iç e r ik m o d e l i X M L ' s in i v e P a y l a ş ım f o r m u y a p ıl a n d ır m a s ın ı k u l l a n d ığ ı ö z e l iç e r ik t ü r l e r in d e n ö ğ r e n il e b il e c e k l e r i h a t ır l a y ın . B ir iş a k ış ın ı y a p ıl a n d ır m a k t a m o l a r a k a y n ı ş e k il d e ç a l ış ır : b ir iş s ü r e c i t a n ım ın a u y a n b ir iç e r ik m o d e l in i y a p ıl a n d ır ır s ın ız , a r d ın d a n f o r m h iz m e t in i b u m o d e l iç in b ir f o r m o l u ş t u r m a k ü z e r e y a p ıl a n d ır ır s ın ız . Y ü k s e k d ü z e y d e , o z a m a n a d ım l a r : 1 . A c t iv it i İ ş l e m T a s a r ım c ıs ı k u l l a n a r a k b ir iş l e m t a n ım l a y ın . 2 . İ ş a k ış ı g ö r e v l e r in in iç e r ik t ü r l e r iy l e e ş l e n d iğ i iş a k ış ın ız iç in b ir iç e r ik m o d e l i t a n ım l a y ın . B u iç e r ik t ü r l e r in in h iç b ir z a m a n ö r n e ğ i o l m a y a c a k - b u n l a r y a l n ız c a A l f r e s c o S h a r e f o r m h iz m e t in in a n l a y a c a ğ ı f o r m l a r ı t a n ım l a m a k iç in d ir . 3 . A l f r e s c o S h a r e k u l l a n ıc ı a r a y ü z ü n ü y a p ıl a n d ır ın . A l f r e s c o S h a r e w e b is t e m c is in i y a p ıl a n d ır m a k iç in s h a r e - c o n f ig - c u s t o m . x m l d o s y a s ın ın k u l l a n ıl d ığ ı ö z e l iç e r ik t ü r l e r i e ğ it im in d e n h a t ır l a y ın . G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

37. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 37 / 39 İ ş a k ış ı e ğ it im i A M P ' l e r in i b a ğ ım s ız b ir A l f r e s c o k u r u l u m u n a d a ğ ıt ıy o r s a n ız , A M P ' l e r i n o r m a l d e " a p p l ic a t io n _ a m p s . s h " k o m u t d o s y a s ın ı k u l l a n d ığ ın ız g ib i A l f r e s c o k u r u l u m u n u z a d a ğ ıt a b il ir s in iz . A l t e r n a t if o l a r a k , h e r b ir in i y ü k l e m e k iç in A l f r e s c o M a v e n S D K ' n ın b ir p a r ç a s ı o l a n " a l f r e s c o : in s t a l l " e k l e n t is in i k u l l a n a b il ir s in iz . Ö r n e ğ in , m a k in e m d e b u p r o j e l e r in t ü m ü n ü k a y n a k t a n k o n t r o l e t t ir d im . A l f r e s c o ' y u $ T O M C A T _ H O M E ' d a p a t l a t ıl m ış b ir A l f r e s c o W A R il e b ir l ik t e ç a l ış t ır ıy o r u m . Y a n i, h e r p r o j e iç in b u n u y a p a b il ir im : 1 . $ T U T O R I A L _ H O M E / $ P R O J E C T _ D I R E C T O R Y o l a r a k g e ç 2 . mvn install A M P ' y i o l u ş t u r m a k iç in ç a l ış t ır ın . mvn install -DskipTests=true B u p r o j e l e r in b a z ıl a r ın d a o l a b il e c e k ü n it e t e s t l e r in i a t l a m a k iç in k u l l a n ın . 3 . mvn alfresco:install -Dmaven.alfresco.warLocation=$TOMCAT_HOME/webapps/alfresco A M P ' y i p a t l a t ıl m ış A l f r e s c o w e b u y g u l a m a s ın a y ü k l e m e k iç in ç a l ış t ır ın . A ç ık l a n a m a y a n a l f r e s c o . w a r k u l l a n ıy o r s a n ız , b u n u n y e r in e W A R d o s y a s ın ın y o l u n u b e l ir l e y e b il ir s in iz . B a ğ ım s ız b ir A l f r e s c o ' y u d a ğ ıt m a k g a y e t iy i, a n c a k g e l iş t ir ir k e n ( v e b u e ğ it ic il e r l e ç a l ış ır k e n ) g ö m ü l ü T o m c a t s u n u c u s u n u k u l l a n m a k e n k o l a y y o l . Y a p a r a k run.sh v e y a run.bat p l a t f o r m u n u z a b a ğ l ı o l a r a k b a ş l a t ın . B u k o n u o r t a y a ç ık t ığ ın d a t e s t e t m e y e h a z ır o l a c a k s ın ız . E n a z ın d a n , b ir k a ç iş a k ış ı ç a l ış t ır m a n ız g e r e k ir : 1 . T e k n ik t a n ıt ım b e l g e s i t ü m o n a y l a r ın ı a l ır , a n c a k ü ç ü n c ü t a r a f b ir g ö z d e n g e ç ir ic is i y o k t u r . 2 . T e k n ik in c e l e m e t ü m o n a y l a r ın ı a l ır , b ir ü ç ü n c ü t a r a f e l e ş t ir m e n in e s a h ip t ir v e ü ç ü n c ü t a r a f o n a y l a r . 3 . T a n ıt ım b e l g e s i t ü m o n a y l a r ın ı a l ır , b ir ü ç ü n c ü t a r a f e l e ş t ir m e n in e s a h ip t ir v e ü ç ü n c ü t a r a f r e d d e t t i, a r d ın d a n b a ş t a n s o n a y e n id e n o n a y l a n a n b ir y e n id e n g ö n d e r im y a p ıl d ı. Ü ç ü n c ü t a r a f g ö z d e n g e ç ir e n e - p o s t a s ın ı k u l l a n a r a k t e s t e d e r k e n , ş ö y l e g ö r ü n e n b ir e - p o s t a a l m a n ız g e r e k ir : Ü ç ü n c ü T a r a f İ n c e l e m e c i b i l d i r i m e - p o s t a s ı B ir b a ğ l a n t ıy a t ık l a m a k , iş a k ış ı n ın b e l ir t il e n y o l b o y u n c a il e r l e m e s in e n e d e n o l u r . U y a r ı : Ü ç ü n c ü P a r t i ö r n e ğ i ü r e t i m e h a z ı r d e ğ i l Ü ç ü n c ü t a r a f ö r n e ğ in i b ir s ü r e c e b ir t ü r b e k l e m e l i / a s e n k r o n d a v r a n ış ı g ö s t e r m e k iç in d a h il e t t im . Ü r e t im d e k u l l a n ıl m a d a n ö n c e ç o k y o l k a t e t m e s i g e r e k iy o r . B e l l i b a ş l ı s o r u n l a r ın k ıs a b ir l is t e s i: E - p o s t a a l ıc ıs ı in c e l e n m e k t e o l a n b e l g e l e r in b ir k o p y a s ın ı a l a m a z . B u n u e l e a l m a n ın b ir y o l u , b il d ir im iş l e m in in iş a k ış ı p a k e t in d e k i b e l g e l e r in b ir k ıs m ın ı g ö n d e r m e s in i s a ğ l a m a k t ır . B a ş k a b ir y o l e k w e b k o m u t d o s y a l a r ı y a z m a k v e y a b ir in d ir m e b a ğ l a n t ıs ı g ö n d e r m e k o l a c a k t ır . B u n u u y g u l a m a k iç in z a m a n ım o l m a d ı v e z a t e n b ir a z k o n u d ış ı o l d u ğ u n u d ü ş ü n d ü m . Y e t k is iz b ir k iş in in s is t e m d e k i h e r h a n g i b ir d ü ğ ü m ü iş a r e t e t m e s i g e r ç e k t e n k o l a y o l u r d u ç ü n k ü d e n e t l e y ic i s ın ıf ı h e r h a n g i b ir o n a y l a m a y a p m a z v e g ö r e v k im l iğ i t a h m in e t m e k ö n e m s iz d ir . G e r ç e k h a y a t t a , ( 1 ) t a l e b i y a p a n k iş in in g ö r e v e a t a n a n k iş i o l d u ğ u n u , ( 2 ) g ö r e v in h a l a a k t if o l d u ğ u n u v e ( 3 ) m u h t e m e l e n p a y l a ş ıl a n l a r g ib i e k b ir g ü v e n l ik m e k a n iz m a s ı k u l l a n d ığ ın ı k o n t r o l e t m e k is t e r s in iz . b ir ç e ş it s ır . G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

34. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 34 / 39 B u , iş a k ış ı p a k e t in d e k i h e r iç e r ik p a r ç a s ı iç in " s e t - w e b - f l a g " a d l ı ö z e l e y l e m i g e r ç e k l e ş t ir e n b a s it b ir A l f r e s c o J a v a S c r ip t p a r ç a s ıd ır . E y l e m , y ö n ü e k l e r v e ö z e l l ik l e r i u y g u n ş e k il d e a y a r l a r . O n a y a l m a k iç in g e r e k e n t e k ş e y b u . Ş im d i Ü ç ü n c ü P a r t i İ n c e l e m e iç in . D ı ş üç ünc ü t a r a f i nc e l e m e s i ni uy g ul a m a k A m a ç , A l f r e s c o ' y a e r iş im i o l m a y a n ü ç ü n c ü b ir t a r a f a e - p o s t a g ö n d e r m e k t ir . E - p o s t a ik i b a ğ l a n t ı iç e r e c e k t ir - b ir i b e y a z t a h t a y ı o n a y l a r s a v e b ir i r e d d e d e r s e . B a ğ l a n t ıy ı t ık l a d ık l a r ın d a iş a k ış ı s e ç il e n y o l b o y u n c a y ü r ü t ü l m e y e d e v a m e d e r . Ş im d iy e k a d a r g ö r d ü ğ ü n ü z t ü m iş l e t m e m a n t ığ ı, s u n u c u t a r a f ı J a v a S c r ip t ' t e y a z ıl m ış t ır . B ir a z d e ğ iş t ir e l im . B u iş i y a p m a k iç in g e r e k e n ik i p a r ç a v a r . İ l k p a r ç a , e - p o s t a y ı e - p o s t a g ö v d e s in d e k i " o n a y l a " v e " r e d d e t " b a ğ l a n t ıl a r ıy l a e - p o s t a y l a g ö n d e r e c e k o l a n b a z ı J a v a k o d l a r ıd ır . A l ıc ı e - p o s t a s ın ı a ç a r v e o n a y l a m a b a ğ l a n t ıs ın ı v e y a r e d d e t m e b a ğ l a n t ıs ın ı t ık l a r . B u , h iç b ir ş e k il d e A l f r e s c o ' d a o t u r u m a ç m a n ız ı g e r e k t ir m e z . İ k in c i b ö l ü m , a l ıc ı b a ğ l a n t ıl a r ı t ık l a d ığ ın d a ç a ğ r ıl a n b ir w e b k o m u t d o s y a s ıd ır . W e b b e t iğ i iş a k ış ı g ö r e v in i e l e a l ır v e s o n u c u u y g u n ş e k il d e a y a r l a r . B u g e r iy e g ö r ü n e b il ir , a n c a k ö n c e b a ğ l a n t ıl a r ı k u l l a n a n w e b k o m u t d o s y a s ın ı o l u ş t u r a l ım , s o n r a e - p o s t a b il d ir im in i g ö n d e r e n b ir A c t iv it i g ö r e v d in l e y ic i s ın ıf ın ın n a s ıl o l u ş t u r u l a c a ğ ın ı g ö r e c e k s in iz . W e b K o m u t D o s y a s ı n ı U y g u l a " W e b K o m u t D o s y a l a r ın a G ir iş " ö ğ r e t ic is i s iz e ö z e l w e b k o m u t d o s y a l a r ın ın n a s ıl o l u ş t u r u l d u ğ u n u g ö s t e r d i, b u y ü z d e n s iz e y a l n ız c a w e b k o m u t d o s y a s ı d e n e t l e y ic is i o l a r a k ç a l ış a n J a v a s ın ıf ın ı g ö s t e r e c e ğ im . W e b k o m u t d o s y a s ın ı o l u ş t u r a n d iğ e r d o s y a l a r ın k a y n a ğ ın a b a k ın . W e b k o m u t d o s y a s ın ın d e n e t l e y ic is in in k a y n a ğ ı ş u r a d a b u l u n u r : $TUTORIAL_HOME/workflow-tutorial-platform-jar/src/main/java İ l k ö n c e , " c o m / s o m e c o / s c r ip t s " a d l ı b ir p a k e t k l a s ö r ü y a p ıs ı o l u ş t u r u n . Ş im d i " G e t R e v ie w " a d ın d a y e n i b ir s ın ıf o l u ş t u r u n . İ ş t e it h a l a t v e y a a l ıc ı / a y a r l a y ıc ı y ö n t e m l e r i o l m a d a n s ın ıf : public class GetReview extends DeclarativeWebScript { Log logger = LogFactory.getLog(GetReview.class); // Dependencies private WorkflowService workflowService; @Override protected Map<String, Object> executeImpl(WebScriptRequest req, Status status) { final String id = req.getParameter("id"); final String action = req.getParameter("action"); if (id == null || action == null) { logger.debug("Email, ID, action, or secret not set"); status.setCode(400); status.setMessage("Required data has not been provided"); status.setRedirect(true); } Map<String, Object> model = new HashMap<String, Object>(); Map<QName, Serializable> props = new HashMap<QName, Serializable>(); props.put(QName.createQName(SomeCoWorkflowModel.NAMESPACE_SOMECO_WORKFLOW_CONTENT_MODEL, SomeCoWorkflowModel.P G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

21. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 21 / 39 $TUTORIAL_HOME/workflow-tutorial-share-jar/src/main/resources/alfresco/web-extension/messages S D K , z a t e n " m e s s a g e s " k l a s ö r ü n ü v e s il e b il e c e ğ in iz b ir ö r n e k ö z e l l ik l e r d o s y a s ın ı o l u ş t u r d u . M e s a j l a r k l a s ö r ü n d e , a ş a ğ ıd a k i iç e r iğ e s a h ip " s c W o r k f l o w . p r o p e r t ie s " a d l ı y e n i b ir d o s y a o l u ş t u r u n : #scwf:helloName prop.scwf_helloName=Name #workflow properties workflow.scwf_helloWorldUI=Hello World UI B u ö z e l l ik d o s y a l a r ın ın h e r ik is in in d e S p r in g a r a c ıl ığ ıy l a k a y d e d il m e s i g e r e k ir . B u n u b ir s o n r a k i g ö r e c e k s in . Y a y y a p ı l a nd ı r m a s ı nı g ünc e l l e B u b ö l ü m d e , ik i p r o j e n in h e r b i r in d e S p r in g y a p ıl a n d ır m a g ü n c e l l e m e l e r i g e r e k t ir e n b ir k a ç d e ğ iş ik l ik y a p t ın ız : Ö z e l iş a k ış ı m o d e l i h e l l o W o r l d U I iş s ü r e c i t a n ım ı D e p o k a t m a n ı iç in y e r e l l e ş t ir il m iş ö z e l l ik l e r P a y l a ş ım k a t m a n ı iç in y e r e l l e ş t i r il m iş ö z e l l ik l e r R e p o k a t m a n ı y a p ıl a n d ır m a s ın ı g ü n c e l l e y e l im , d a h a s o n r a p a y l a ş ım k a t m a n ı. R e p o k a t m a n ı Y a y y a p ı l a n d ı r m a s ı İ ç in d e b u l u n a n b o o t s t r a p - c o n t e x t . x m l d o s y a s ın ı d ü z e n l e y in : İ ş a k ış ı m o d e l in i, y e n i iş a k ış ın ı v e a y n ı ç e k ir d e k t e k i e t ik e t l e r i e k l e y e b il ir s in iz . B o o t s t r a p - c o n t e x t . x m l d o s y a s ın ı d ü z e n l e y in v e a ş a ğ ıd a k il e r i m e v c u t bean ö ğ e y e e k l e y in : <props> <prop key="engineId">activiti</prop> <prop key="location">alfresco/module/${project.artifactId}/workflow/helloWorldUI.bpmn</prop> <prop key="mimetype">text/xml</prop> <prop key="redeploy">false</prop> </props> </list> </property> <property name="models"> <list> <value>alfresco/module/${project.artifactId}/model/scWorkflowModel.xml</value> </list> </property> <property name="labels"> <list> <value>alfresco.module.${project.artifactId}.messages.scWorkflow</value> </list> </property> </bean> D o s y a y ı k a y d e d in v e k a p a t ın . S e v i y e y a y k o n fi g ü r a s y o n u $TUTORIAL_HOME/workflow-tutorial-platform-jar/src/main/resources/alfresco/module/workflow-tutorial-platform-jar/contex G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

36. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 36 / 39 mailAction.setParameterValue(MailActionExecuter.PARAM_SUBJECT, ExternalReviewNotification.SUBJECT); mailAction.setParameterValue(MailActionExecuter.PARAM_TO, recipient); mailAction.setParameterValue(MailActionExecuter.PARAM_FROM, ExternalReviewNotification.FROM_ADDRESS); mailAction.setParameterValue(MailActionExecuter.PARAM_TEXT, sb.toString()); actionService.executeAction(mailAction, null); return; } Y ö n t e m in y a p t ığ ı il k ş e y , a l ıc ıy ı b ir iş l e m d e ğ iş k e n in d e n a l m a k t ır . D a h a s o n r a , m e s a j g ö v d e s in i o l u ş t u r m a y a b a ş l a m a k iç in b ir s t r in g b u f f e r k u l l a n ır . task.getName() Ç a ğ r ı d ü ğ ü m a d ı ( " Ü ç ü n c ü T a r a f İ n c e l e m e " ) y a k a l a r . B u getLink() y ö n t e m , ş u n a b e n z e y e n b ir b a ğ l a n t ı ü r e t e n y a r d ım c ı b ir y ö n t e m d ir : http://localhost:8080/alfresco/service/someco/bpm/review?id=activiti\$999&action=Approve&guest=true M e t o t a n a b il g is a y a r v e b a ğ l a n t ı n o k t a s ı s a b it k o d l u d u r , b u d a b u n u g e r ç e k t e n y a p a r s a n ız d ü z e l t m e k is t e y e c e ğ in iz b a ş k a b ir ş e y d ir . notify() Y ö n t e m d e k i s o n a n a k o d b l o ğ u , A l f r e s c o p o s t a iş l e m in i y ü r ü t m e k iç in e y l e m h iz m e t in i k u l l a n ır . E l b e t t e , J a v a p o s t a A P I ' s in i k e n d in iz y a p m a k iç in k u l l a n a b il ir s in iz , a n c a k n e d e n p o s t a iş l e m in d e n y a r a r l a n m ıy o r s u n u z ? B u ş e k il d e , a l f r e s c o - g l o b a l . p r o p e r t ie s a d r e s in d e A l f r e s c o iç in ö n c e d e n y a p ıl a n d ır ıl m ış o l a n S M T P y a p ıl a n d ır m a a y a r l a r ın d a n y a r a r l a n a b il ir s in iz . Y a p ıl a c a k s o n ş e y , ExternalReviewNotification s ın ıf ı iş l e m d e n ç a ğ ır m a k t ır . E d it p u b l is h W h it e p a p e r . b p m n d o s y a s ı v e " Ü ç ü n c ü T a r a f İ n c e l e m e " a d l ı g ö r e v b u l m a k . K u l l a n ıc ı g ö r e v i, d a h a ö n c e e k l e d iğ in iz " c o m p l e t e " o l a y ın d a z a t e n b ir g ö r e v d in l e y ic is in e s a h ip . activiti:taskListener E x t e r n a l R e v ie w N o t if ic a t io n s ın ıf ın ı ç a ğ ır a n " c r e a t e " o l a y ın d a g ö r e v d in l e y ic is i o l u ş t u r a n y e n i b ir ö ğ e e k l e y in : Ş im d i, b ir e - p o s t a a d r e s i b e l ir t il ir s e iş l e m ü ç ü n c ü t a r a f b ir g ö z d e n g e ç ir e n e b ir e - p o s t a g ö n d e r ir , ü ç ü n c ü t a r a f g ö z d e n g e ç ir e n , iş a k ış ın ın d o ğ r u y o l b o y u n c a d e v a m e t m e s in e n e d e n o l a n b ir w e b k o m u t d o s y a s ın ı t e t ik l e y e n u y g u n s o n u ç b a ğ l a n t ıs ın ı t ık l a y a b il ir . t a n ıt ım b e l g e s i s o n u ç t a o n a y l a n d ı, iş a k ış ı, ö z e l l ik l e r in i b e l ir l e m e k iç in b ir w e b s it e s in d e a r a n a b il e c e k v e g ö r ü n t ü l e n e b il e c e k ş e k il d e " w e b b a y r a ğ ın ı a y a r l a " e y l e m in i ç a ğ ır a c a k . D a ğ ı t v e t e s t e t D a ğ ıt m a v e t e s t e t m e z a m a n ı. B il d ir im p a r ç a s ın ı d e n e m e k is t iy o r s a n ız , b ir S M T P s u n u c u s u n a e r iş m e n iz g e r e k ir . Y e r e l o l a r a k g e l iş t ir m e v e t e s t e t m e iç in A p a c h e J a m e s h a r ik a ç a l ış ıy o r . G id e n e - p o s t a a y a r l a r ın ız ı o r t a m ın ız a u y g u n ş e k il d e a y a r l a m a k iç in a l f r e s c o - g l o b a l . p r o p e r t ie s d o s y a s ın ı d ü z e n l e m e y i u n u t m a y ın . T e s t in iz e ik i k r it ik b a ğ ım l ıl ık , iç e r ik e ğ it im i v e e y l e m l e r e ğ it im i A M P ' l e r id ir . B u n l a r , iş a k ış ın ız d a k i A M P ' n in d a ğ ıt ıl d ığ ı a y n ı d e p o y a d a ğ ıt ıl m a l ıd ır , ç ü n k ü iş s ü r e c in iz b ir iş l e m d e n v e b u A M P ' l e r d e b u l u n a n b a z ı J a v a k o d u n d a n y a r a r l a n ır . B u n e d e n l e , e ğ it im in b a ş ın d a p o m . x m l ' n iz i, b u p r o j e l e r i " m o d ü l b a ğ ım l ıl ık l a r ı" o l a r a k e k l e m e k iç in d ü z e n l e d in iz . B u ş e k il d e , y e r l e ş ik T o m c a t s u n u c u s u n u ç a l ış t ır d ığ ın ız d a , b u A M P ' l e r o t o m a t ik o l a r a k y ü k l e n ir . <userTask id="usertask5" name="Third Party Review" activiti:assignee="${initiator.properties.userName}" activiti:formK <extensionElements> <activiti:taskListener event="create" class="com.someco.bpm.ExternalReviewNotification"></activiti:taskListene <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskList <activiti:field name="script"> ... G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

24. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 24 / 39 6 . " G ö r e v l e r im " p a n o s u n u n ş im d i s iz i b e k l e y e n b ir g ö r e v i o l m a l ıd ır . G ö r e v i d ü z e n l e m e k iç in g ö r e v a ç ık l a m a s ın a t ık l a y ın . 7 . İ s t e r s e n iz b ir y o r u m e k l e y in , a r d ın d a n " O n a y l a " v e y a " R e d d e t " s e ç e n e ğ in i t ık l a y ın . 8 . G ü n l ü ğ ü t e k r a r k o n t r o l e t . H a n g is in i s e ç t iğ in iz e d a ir b ir g ü n l ü k m e s a j ı g ö r m e l is in iz : M e r h a b a D ü n y a U I o n a y g ü n l ü ğ ü n d e s o n u ç H e r ş e y y o l u n d a g id e r s e , t e b r ik l e r , A l f r e s c o S h a r e u y g u l a m a s ın d a b a ş l a t ıl a b il e n v e y ö n e t il e b il e n ö z e l m e t a v e r il e r l e ö z e l b ir iş a k ış ı b a ş a r ıy l a u y g u l a d ın ız . U y g u l a m a ö ze t i Ş im d iy e k a d a r ç o k f a z l a y e r t u t t u n . A ş a ğ ıd a k il e r g e l iş m iş iş a k ış ı u y g u l a m a a d ım l a r ın ı ö z e t l e m e k t e d ir : 1 . A c t iv it i İ ş l e m T a s a r ım c ıs ın ı k u l l a n a r a k s ü r e c i m o d e l l e y in . İ f a d e l e r i, A l f r e s c o J a v a S c r ip t v e y a J a v a s ın ıf l a r ın ı k u l l a n a r a k m a n t ık e k l e y in . İ l k b a h a r d a iş a k ış ı d a ğ ıt ıc ı ç e k ir d e ğ in i k u l l a n ın , b ö y l e c e A l f r e s c o b a ş l a d ığ ın d a iş l e m t a n ım ın ın k o n u ş l a n d ır ıl m a s ı iç i n . 2 . B ir iş a k ış ı iç e r ik m o d e l i t a n ım l a y ın . İ l k b a h a r d a y a p ıl a n d ır m a y ı u n u t m a y ın . 3 . A l f r e s c o S h a r e ' e , ö n c e k i a d ım d a t a n ım l a d ığ ın ız iş a k ış ı m o d e l in i n a s ıl k u l l a n a c a ğ ın ı s ö y l e y e n f o r m y a p ıl a n d ır m a s ıy l a s h a r e - c o n f ig - c u s t o m . x m l d o s y a s ın ı g ü n c e l l e y in . A l f r e s c o P a y l a ş ım ın ı Y a p ıl a n d ır m a a y r ıc a , d iz e l e r i d ış a a k t a r m a k v e h e m r a p o r k a t m a n ı h e m d e p a y l a ş ım k a t m a n ı iç in B a h a r b a ğ l a m d o s y a s ın d a k il e r e a t ıf y a p m a k a n l a m ın a g e l ir . B u n o k t a d a , t e h l ik e l i o l a b il e c e k il e r i iş a k ış l a r ı h a k k ın d a y e t e r in c e b il g in iz v a r . B u y e n i b il g il e r in b ir k ıs m ın ı iş e k o y m a k iç in h a y a l i ş ir k e t S o m e C o ' y a b ir ö r n e k v e r e l im . S o m e C o W h i t e p a p e r g ö n d e r i m ö r n e ğ i B u ö r n e k , ö n c e k i b ir k a ç A l f r e s c o G e l iş t ir ic i S e r is i d e r s k it a b ın d a k i S o m e C o ö r n e ğ in e d e v a m e d iy o r . S o m e C o , B e y a z T a h t a l a r ı w e b s it e s in d e y a y ın l a n m a s ı iç in iş a r e t l e n m e d e n ö n c e o n a y l a n m a k ü z e r e y ö n l e n d ir m e k iç in G e l iş m iş İ ş A k ış l a r ın ı k u l l a n a c a k . B ir s o n r a k i b ö l ü m s ü r e c i a ç ık l a r . İ ş g e r e k s i n i m l e r i A l f r e s c o ' y a g ir iş y a p a b il e n h e r k e s , S o m e C o w e b s it e s in d e y a y ın l a n m a k ü z e r e b ir b e y a z b ü l t e n g ö n d e r e b il ir . S u n u c u n u n b e l ir t m e s i g e r e k e n t e k b il g i, e ğ e r v a r s a , h a r ic i b ir ü ç ü n c ü t a r a f g ö z d e n g e ç ir ic is in in e - p o s t a a d r e s id ir . B u k o n u d a d a h a f a z l a . T e k n ik d o k ü m a n t a s y o n u n y a n ı s ır a P a z a r l a m a e k ib i t a r a f ın d a n d a g ö z d e n g e ç ir il m e s i g e r e k iy o r . E k ib in in c e l e m e s in i k im in y a p t ığ ı ö n e m l i d e ğ il d ir - S o m e C o h e r e k ib i b il g il e n d ir m e k v e a r d ın d a n h e r e k ib in b ir t e m s il c is in in in c e l e m e g ö r e v in i " k e n d i" y a p m a s ın a iz in v e r m e k is t e r . H e r ik i t a k ım d a b e y a z t a h t a y ı r e d d e d e b il ir . R e d d e d il ir s e , t a n ıt ım b e l g e s in i g ö n d e r e n k iş i r e v iz y o n y a p a b il ir v e y e n id e n g ö n d e r e b il ir . H e r ik i t a k ım d a o n a y l a r s a , t a n ıt ım b e l g e s i b ir s o n r a k i a d ım a g e ç e r . B a z ı b e y a z k a ğ ıt l a r ın h a r ic i b ir ü ç ü n c ü t a r a f ç a in c e l e n m e s i g e r e k ir . Ü ç ü n c ü t a r a f , A l f r e s c o ' y a g ir iş y a p m a z - b ir e - p o s t a a l a c a k v e t e k n ik in c e l e m e y i o n a y l a m a k v e y a r e d d e t m e k iç in b ir b a ğ l a n t ıy ı t ık l a y a c a k t ır . Ü ç ü n c ü t a r a f b e l ir l i b ir s ü r e iç in d e h iç b ir ş e y y a p m a z s a , t e k n ik t a n ıt ım o t o m a t ik o l a r a k o n a y l a n m a l ıd ır . Ü s t d ü ze y a d ı m l a r P e k i. B u s ü r e c i d ö r t a n a a d ım d a u y g u l a y a c a k s ın ız . İ ş t e a n a a d ım l a r a v e il g il i a l t a d ım l a r a b ir g ö z a t ın : 1 . T e m e l a k ış v e iş a k ış ı k u l l a n ıc ı a r a y ü z ü n ü u y g u l a y ın 1 . A c t iv it i İ ş l e m T a s a r ım c ıs ı k u l l a n a r a k iş l e m i d ü z e n l e y in . 2 . K u l l a n ıc ı g ö r e v l e r in i u y g u n a t a m a l a r l a y a p ıl a n d ır ın . G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

17. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 17 / 39 A c t iv it i, b iz e b u t ü r v e r il e r i, ç a l ış a n d e ğ i ş k e n l e r i n s ü r e ç d e ğ i ş k e n l e r i a r a c ıl ığ ıy l a k a y d e t m e ö z e l l iğ in i v e r iy o r . İ ş l e m d e ğ iş k e n l e r i, iş l e m d u r u m u n u n g e r i k a l a n ın d a k a l ıc ı o l a c a k is im - d e ğ e r ç if t l e r id ir . D e n e H e l l o W o r l d U I ö r n e ğ in e b ir iş l e m d e ğ iş k e n l i b ir l o g g e r d e y im i e k l e m e k iç in ş u n u y a p ın : X M L e d it ö r ü n d e h e l l o W o r l d U I . b p m n d o s y a s ın ı a ç ın . sequenceFlow S t a r t o l a y ın d a n k u l l a n ıc ı g ö r e v in e g id e n ö ğ e y i b u l u n v e a ş a ğ ıd a k i extensionElements ö ğ e y i e k l e y in : scwf_helloName D e ğ iş k e n t a n ım l ı b ir m ü l k e e ş l e y e n scwf:submitHelloWorldTask t ip . B u n u d a h a s o n r a t a n ım l a y a c a k s ın . G ö z d e n g e ç ir m e g ö r e v i, k u l l a n ıc ın ın " o n a y l a " v e y a " r e d d e t " in i s e ç m e s in e iz in v e r ir . İ ş a k ış ın ın y ü r ü t ü l m e s i, b u s e ç im in d e ğ e r in i g e r e k t ir ir . B u n u n g e r ç e k l e ş m e s i iç in g e r e k e n m a n t ığ ı e k l e y in : V e s o n o l a r a k , s a d e c e b ir g ö r e v i n b ir g ö r e v d e a y a r l a n ıp b a ş k a b ir ş e y d e o k u n a b il e c e ğ in i g ö s t e r m e k iç in , A l f r e s c o S c r ip t h iz m e t i g ö r e v in in iç in d e n o n a y l a m a / r e d d e t m e s e ç im in in d e ğ e r in i k a y d e d e l im : Ş im d i s ü r e ç g it m e y e h a z ır . B ir s o n r a k i a d ım , iş a k ış ı iç e r ik m o d e l in in b ir b ir in d e n u z a k l a ş t ır ıl m a s ın ı s a ğ l a m a k . A d ı m 2 : İ ş a k ı ş ı n a ö zg ü b i r i ç e r i k m o d e l i t a n ı m l a y ı n İ ş a k ış ın a ö z g ü iç e r ik m o d e l i, iş l e m iç in v e r i y a p ıs ın ı t a n ım l a r . İ ş a k ış ı m o d e l l e r i, " n o r m a l " A l f r e s c o iç e r ik m o d e l i t a n ım l a r ı o l a r a k a y n ı t e m e l y a p ı t a ş l a r ın ı ( t ü r l e r , ö z e l l ik l e r , a ç ıl a r v e il iş k il e n d ir m e l e r ) k u l l a n ır . A s l ın d a , z a t e n ö z e l b ir m o d e l in iz v a r s a , iş a k ış ın a ö z g ü m o d e l in iz i a y n ı iç e r ik m o d e l i X M L d o s y a s ın d a t a n ım l a y a b il ir s in iz , a n c a k k a r ış ık l ığ ı a z a l t m a k iç in , iç e r ik t ü r l e r in iz i e n a z ik i f a r k l ı k u l l a n a r a k iş a k ış ı t ü r l e r in d e n a y r ı t u t m a n ız ı ö n e r ir iz . m o d e l d o s y a l a r ı <sequenceFlow id="flow1" sourceRef="startevent1" targetRef="alfrescoUsertask1"> <extensionElements> <activiti:executionListener event="start" class="org.alfresco.repo.workflow.activiti.listener.ScriptExecutionL <activiti:field name="script"> <activiti:string>logger.log("Hello, " + scwf_helloName + "!");</activiti:string> </activiti:field> </activiti:executionListener> </extensionElements> </sequenceFlow> <userTask id="alfrescoUsertask1" name="Alfresco User Task" activiti:assignee="${initiator.properties.userName}" activi <extensionElements> <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskList <activiti:field name="script"> <activiti:string>execution.setVariable('wf_reviewOutcome', task.getVariable('wf_reviewOutcome'));</act </activiti:field> </activiti:taskListener> </extensionElements> </userTask> <serviceTask id="alfrescoScripttask1" name="Alfresco Script Task" activiti:class="org.alfresco.repo.workflow.activiti. <extensionElements> <activiti:field name="script"> <activiti:string>logger.log("The outcome of the review task is: " + wf_reviewOutcome);</activiti:string> </activiti:field> </extensionElements> </serviceTask> G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

18. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 18 / 39 İ ş a k ış ın a ö z g ü m o d e l in a m a c ı n e d ir ? B a ş k a h e r h a n g i b ir iç e r ik m o d e l i g ib i d ü ş ü n ü n . Ö z e l iç e r ik m o d e l l e r i, b ir iç e r ik p a r ç a s ı h a k k ın d a y a k a l a n m a s ı g e r e k e n m e t a v e r il e r i t a n ım l a m a k iç in k u l l a n ıl ır . M e t a v e r il e r ( ö z e l l ik l e r ) t ü r l e r e v e y ö n l e r e g ö r e g r u p l a n d ır ıl m ış t ır . B u ö z e l l ik l e r i iç e r ik m o d e l in in b ir p a r ç a s ı o l a r a k t a n ım l a m a k s a y e s in d e , A l f r e s c o , v e r il e r i a l t t a y a t a n v e r it a b a n ın d a t u t m a y a ö z e n g ö s t e r ir . İ ş a k ış ı m o d e l l e r i a y n ı ş e k il d e ç a l ış ır . Ü ç f a r k l ı d e p a r t m a n ın o n a y s ü r e c in e d a h il o l d u ğ u b ir s ü r e c in o l d u ğ u n u v a r s a y a l ım . B e l k i iş a k ış ı b a ş l a t ıc ıs ın ın b u b ö l ü m l e r d e n h a n g is in in z o r u n l u o l d u ğ u n u v e h a n g il e r in in is t e ğ e b a ğ l ı v e y a " F Y I " g ö z d e n g e ç ir e n l e r i o l d u ğ u n u t a n ım l a y a b il m e s in i is t e r s in iz . B ir iş a k ış ı m o d e l i b u b il g il e r in n a s ıl d e p o l a n a c a ğ ın ı t a n ım l a r . D iğ e r iç e r ik m o d e l l e r in d e o l d u ğ u g ib i, s ıf ır d a n b a ş l a m a n ız g e r e k m e z . A l f r e s c o , ö n c e d e n t a n ım l a n m ış b a z ı iş a k ış l a r ın a ö z g ü t ü r l e r l e b ir l ik t e k u l l a n ım a h a z ır o l a r a k g ö n d e r il ir . B u n u n l a il g il i ik i m o d e l t a n ım d o s y a s ı v a r . B ir b p m M o d e l . x m l d e n ir . A l f r e s c o w e b u y g u l a m a k ö k ü n ü z d e W E B - I N F / c l a s s e s / a l f r e s c o / m o d e l a l t ın d a b u l u n u r . D iğ e r i w o r k f l o w M o d e l . x m l o l a r a k a d l a n d ır ıl ır v e W E B - I N F / c l a s s e s / a l f r e s c o / w o r k f l o w a l t ın d a b u l u n u r . B p m M o d e l d o s y a s ı g ib i t ü m g ö r e v l e r iç in b a z t a n ım ı v e v a r s a y ıl a n b a ş l a n g ıç g ö r e v i o l a r a k d ü ş ü k s e v iy e l i iş a k ış ı s ın ıf l a r ın ı iç e r ir . A y r ıc a , g ö r e v l e r v e k u l l a n ıc ıl a r v e y a g r u p l a r a r a s ın d a k i il iş k il e r i t a n ım l a y a n b ir d iz i “ a t a n a n ” y ö n ü g ib i ö n e m l i y ö n l e r i d e iç e r ir . W o r k f l o w M o d e l d o s y a d ış ı h a z ır s ü r e ç t a n ım l a r ı iç in iç e r ik m o d e l i iç e r iy o r . B u m o d e l d o s y a s ı, ö z e l iş l e m l e r d e y e n id e n k u l l a n ım iç in ç o k b ü y ü k b ir p o t a n s iy e l s u n a r . Ö r n e ğ in , iş l e m in iz g ö n d e r ic iy e b ir g ö r e v a l a c a k b ir k a ç k iş in in b ir l is t e s in i b e l ir t m e s in e iz in v e r e r e k b a ş l a r s a , wf:submitParallelReviewTask t ü r ü k u l l a n a b il ir s in iz . B ir g ö r e v i o n a y l a y a n k iş il e r in y ü z d e s in e b ir o n a y v e r m e k is t iy o r s a n ız , wf:submitConcurrentReviewTask t ü r ü k u l l a n a b il ir s in iz . E l b e t t e , h e r h a n g i b ir m o d e l g ib i, b u n l a r ı o l d u ğ u g ib i k u l l a n m a k t a , k u l l a n m a k t a y a d a h iç k u l l a n m a m a k t a ö z g ü r s ü n ü z . K u l l a n ıc ıl a r w e b is t e m c is i ü z e r in d e n iş a k ış ıy l a e t k il e ş im e g ir d iğ in d e , A l f r e s c o , iş a k ış ı iç e r ik m o d e l in i v e A l f r e s c o S h a r e f o r m h iz m e t y a p ıl a n d ır m a s ın ı k u l l a n a r a k , k u l l a n ıc ı a r a y ü z ü n e h a n g i m e t a v e r il e r in g ö s t e r il e c e ğ in i v e iç e r ik ö z e l l ik l e r in i g ö r ü n t ü l e r k e n n a s ıl g ö s t e r il e c e ğ in i b u l m a k iç in k u l l a n ır . A c t iv it i' d e , A l f r e s c o , u y g u n iş a k ış ı iç e r ik t ü r ü n ü b u l m a k iç in f o r m a n a h t a r ı n it e l iğ in in d e ğ e r in i k u l l a n ır . B u n e d e n l e , A l f r e sc o w e b i st e m c i si k u l l a n ı c ı e t k i l e şi m l e r i n i n o l d u ğ u t ü m g ö r e v l e r e , i ş a k ı şı i ç e r i k t ü r ü n ü n a d ı n a k a r şı l ı k g e l e n b i r f o r m a n a h t a r ı v e r i l m e l i d i r . İ ş a k ı ş ı i ç e r i k m o d e l i X M L's i ni o l uş t ur un H e l l o W o r l d U I ö r n e ğ in d e , a ş a ğ ıd a k i s t a r t o l a y ın ı t a n ım l a d ın ız : <startEvent id="startevent1" name="Start" activiti:formKey="scwf:submitHelloWorldTask"></startEvent> Ş im d i, f o r m a n a h t a r ı d e ğ e r in e k a r ş ıl ık g e l e n ö z e l b ir t ü r iç e r e n b ir iç e r ik m o d e l i o l u ş t u r m a n ız g e r e k ir . Ö n c e k i d e r s l e r d e n , m o d e l l e r in X M L ' d e t a n ım l a n d ığ ın ı v e b u r a d a b u l u n d u ğ u n u b il iy o r s u n u z : S D K , b ir k a ç ö r n e k m o d e l d o s y a s ın ın y a n ı s ır a s iz in iç in " m o d e l " k l a s ö r ü n ü z a t e n y a r a t t ı. D e v a m e d in v e g e r e k l i o l m a d ığ ın d a n ö r n e k m o d e l d o s y a l a r ın ı s il in . M o d e l k l a s ö r ü n d e , a ş a ğ ıd a k i iç e r iğ e s a h ip " s c W o r k f l o w M o d e l . x m l " a d l ı y e n i b ir iç e r ik m o d e l i X M L d o s y a s ı o l u ş t u r u n : <?xml version="1.0" encoding="UTF-8"?> <!-- Definition of new Model --> <model name="scwf:workflowmodel" $TUTORIAL_HOME/workflow-tutorial-platform-jar/src/main/resources/alfresco/module/workflow-tutorial-platform-jar/model G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

8. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 8 / 39 </moduleDependency> ...SNIP... </platformModules> B u n l a r ın h e p s in d e k a r ş ıl ık g e l e n P a y l a ş ım k a t m a n ı m o d ü l l e r i o l d u ğ u n d a n , b u n l a r ı " p a y l a ş M o d ü l ü " b a ğ ım l ıl ık l a r ı o l a r a k e k l e y in : <shareModules> ...SNIP... <!-- Bring in the content tutorial share AMP so we can run embedded. --> <moduleDependency> <groupId>com.someco</groupId> <artifactId>content-tutorial-share-jar</artifactId> <version>1.0-SNAPSHOT</version> <type>amp</type> </moduleDependency> <!-- Bring in the behavior tutorial share AMP so we can run embedded. --> <moduleDependency> <groupId>com.someco</groupId> <artifactId>behavior-tutorial-share-jar</artifactId> <version>1.0-SNAPSHOT</version> <type>amp</type> </moduleDependency> <!-- Bring in the actions tutorial share AMP so we can run embedded. --> <moduleDependency> <groupId>com.someco</groupId> <artifactId>actions-tutorial-share-jar</artifactId> <version>1.0-SNAPSHOT</version> <type>amp</type> </moduleDependency> ...SNIP... </shareModules> Ş im d i g ö m ü l ü T o m c a t s u n u c u s u n u b a ş l a t t ığ ım ız d a , iş a k ış ı A M P ' l e r i v e A M P ' l e r i d a h a ö n c e k i iç e r ik , d a v r a n ış v e e y l e m e ğ it ic il e r in d e n y ü k l e y e c e ğ iz . B u e s e r l e r i y e r e l M a v e n d e p o n u z a k u r m a d ıy s a n ız , d a h a ö n c e k i e ğ it ic i p r o j e l e r in h e r b ir in in k ö k ü n e g e ç in v e mvn install ş im d i y a p ın . M e r h a b a Dü n y a Ö r n e k l e r i A c t iv it i S ü r e ç T a s a r ım c ıs ın ı k u l l a n a r a k b ir k a ç s ü p e r b a s it M e r h a b a D ü n y a s ü r e c i o l u ş t u r a l ım . B u iş l e m l e r A l f r e s c o w e b is t e m c is i k u l l a n ıc ı a r a y ü z ü n e b a ğ l a n m a y a c a k t ır . B u n u n y e r in e , o n l a r ı b a ş l a t m a k iç in iş a k ış ı k o n s o l u n u k u l l a n a c a ğ ım . İ ş a k ış l a r ın ı ç iz m e v e d a ğ ıt m a n ın t e m e l a d ım l a r ın ı in c e l e d iğ im d e , s iz e k u l l a n ıc ı a r a y ü z ü n e t a m a m e n e n t e g r e o l m u ş ö r n e k l e r g ö s t e r e c e ğ im . H e l l o W o r l d s ü r e c i H e l l o W o r l d s ü r e c i b ir s t a r t o l a y ı, b ir k u l l a n ıc ı g ö r e v i v e b ir b it iş o l a y ın d a n o l u ş a c a k t ır . A m a ç , " M e r h a b a D ü n y a ! " Y a z m a k t a n b a ş k a b ir ş e y y a p m a m a k t ır . A l f r e s c o k ü t ü ğ ü n e . İ ş a k ış l a r ı ş u n l a r d a b u l u n u r : A l f r e s c o M a v e n S D K k u l l a n a r a k iş a k ış ı ö ğ r e t ic i p r o j e s in i o l u ş t u r d u ğ u n u z d a , k l a s ö r y a p ıs ı s iz in iç in y a r a t ıl d ı v e iş a k ış ı ö ğ r e t ic i- p l a t f o r m - j a r m o d ü l ü n d e ö r n e k b ir iş a k ış ın a s a h ip b ir " iş a k ış ı" d iz in i iç e r m iş o l a b il ir . Ö y l e y s e , ö r n e k iş a k ış ın ı s il e b il ir s in iz . D e ğ il s e , ş im d i " iş a k ış ı" d iz in in i o l u ş t u r u n . $TUTORIAL_HOME/workflow-tutorial-platform-jar/src/main/resources/alfresco/module/workflow-tutorial-platform-jar/workfl G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

28. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 28 / 39 K o ş u l if a d e l e r in e iht iy a ç d u y u l a n ik i y e r d a h a v a r . B ir i, Ü ç ü n c ü Ş a h ıs İ n c e l e m e ' d e n ç ık a n ik i a k ış t a . Ü ç ü n c ü t a r a f in c e l e m e l e r in i o n a y l a r s a , a k ış " O n a y l ı B il d ir im " e , a k s i h a l d e " R e v iz e " e g it m e l id ir : K o ş u l if a d e l e r i iç in d iğ e r y e r " R e v iz e " k u l l a n ıc ı g ö r e v id ir . A k ış , b a ş l a t ıc ı y e n id e n g ö n d e r ir s e " G ö n d e r " k o m u t d o s y a s ın a v e is t e ğ in i g e r i a l m a y a v e y a ip t a l e t m e y e k a r a r v e r ir s e " S o n " g ö r e v in e g it m e l id ir : <sequenceFlow id="flow16" sourceRef="usertask3" targetRef="endevent1"> <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_resubmit == false}]]></conditionExpression> </sequenceFlow> <sequenceFlow id="flow13" sourceRef="usertask3" targetRef="scripttask1"> <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_resubmit == true}]]></conditionExpression> </sequenceFlow> " Ü ç ü n c ü P a r t i İ n c e l e m e " k u l l a n ıc ı g ö r e v i o n a y l a m a / r e d d e t m e s o n u c u n u y a k a l a m a k iç in b a z ı m a n t ık l a r a ih t iy a ç d u y a r : B e n z e r ş e k il d e , K u l l a n ıc ıy ı r e v iz e e t g ö r e v in in , A b o r t / Y e n id e n G ö n d e r im s o n u c u y l a b ir d e ğ iş k e n d e a y a r l a m a s ı g e r e k ir : D iz i a k ış ı k im l iğ im in ç o k y a r d ım c ı o l m a d ığ ın ı d ü ş ü n ü y o r o l a b il ir s in iz . K a t ıl ıy o r u m . N e y a z ık k i, s ü r e ç t a n ım l a m a s ın a g e r i d ö n ü p b u n l a r ı y e n id e n y a n s ıt m a k iç in g ir d iğ im d e , b a z ı b e k l e n m e y e n s o r u n l a r a n e d e n o l d u . K e n d i iş s ü r e c i t a n ım l a r ın ız ı y a p t ığ ın ız d a , e n b a ş t a n a n l a m l ı b ir k im l ik n u m a r a s ı il e b a ş l a m a l ıs ın ız . A l f r e s c o S ha r e y a p ı l a nd ı r m a s ı nı i ç e r e n i ş a k ı ş ı i ç e r i k m o d e l i <sequenceFlow id="flow12" sourceRef="usertask2" targetRef="usertask3"> <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_tpApproved == false}]]></conditionExpression> </sequenceFlow> <sequenceFlow id="flow17" sourceRef="usertask2" targetRef="usertask5"> <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_tpApproved == true}]]></conditionExpression> </sequenceFlow> <extensionElements> <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener <activiti:field name="script"> <activiti:string>if(task.getVariableLocal('scwf_approveRejectOutcome') == 'Approve') { execution.setVariable('scwf_tpApproved', true); } else { execution.setVariable('scwf_tpApproved', false); } </activiti:string> </activiti:field> </activiti:taskListener> </extensionElements> <extensionElements> <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener"> <activiti:field name="script"> <activiti:string>if(task.getVariableLocal('scwf_reviseOutcome') == 'Re-submit') { execution.setVariable('scwf_resubmit', true); } else { execution.setVariable('scwf_resubmit', false); } </activiti:string> </activiti:field> </activiti:taskListener> </extensionElements> G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

38. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 38 / 39 E - p o s t a g ö v d e s i m u h t e m e l e n b ir F r e e m a r k e r ş a b l o n u n d a n g e l m e l id ir . B u ş e k il d e , b il d ir im s ın ıf ın ı is t e d iğ in iz s a y ıd a iş l e m d e y e n id e n k u l l a n a b il ir s in iz v e e - p o s t a g ö v d e s i b a k ım ın ı k o l a y l a ş t ır ır . Ö y l e y s e , u z u n l a f ın k ıs a s ı, b u f ik r i k u l l a n m a k t a n ç e k in m e y in , a m a k ıs a l ık u ğ r u n a k ö ş e l e r i k e s t iğ im i a n l a y ın . A d ı m 3 : Ü ç ü n c ü t a r a f g ö r e v e za m a n l a y ı c ı e k l e m e Ü ç ü n c ü t a r a f a b ir e - p o s t a g ö n d e r ir s e n iz v e h iç iş l e m y a p m a z l a r s a ? B u s o r u n u ç ö z m e n in b ir y o l u z a m a n l a y ıc ı il e . B u n u y a p m a n ın b ir y o l u , Ü ç ü n c ü T a r a f G ö z d e n G e ç ir m e g ö r e v in e b ir s ın ır z a m a n l a y ıc ı e k l e m e k t ir . Z a m a n l a y ıc ı s o n a e r d iğ in d e , z a m a n l a y ıc ı Ü ç ü n c ü T a r a f G ö z d e n G e ç ir m e g ö r e v in i ip t a l e d e b il ir v e a r d ın d a n O n a y l a n a n g ö r e v e g id e b il ir . İ ş t e n a s ıl y a p ıl a c a ğ ı: 1 . E d it p u b l is h W h it e p a p e r . b p m n s ü r e ç t a n ım ı d o s y a s ın ı. 2 . Ü ç ü n c ü T a r a f İ n c e l e m e g ö r e v in i b u l u n . B e n im d iy a g r a m d a " u s e r t a s k 2 " d ir . " O n a y l ı B il d ir im " g ö r e v in i b u l u n . B e n im d iy a g r a m d a " u s e r t a s k 5 " d ir . D iy a g r a m ın ız d a k i d e ğ e r l e r i y a n s ıt a c a k ş e k il d e g ü n c e l l e n e n r e f e r a n s l a r l a a ş a ğ ıd a k il e r i e k l e y in : <boundaryEvent id="boundarytimer1" cancelActivity="true" attachedToRef="usertask2"> <timerEventDefinition> <timeDuration>PT5M</timeDuration> </timerEventDefinition> </boundaryEvent> <sequenceFlow id="toExpiredApprove" name="" sourceRef="boundarytimer1" targetRef="usertask5"></sequenceFlow> B u , z a m a n l a y ıc ıy ı 5 d a k ik a b o y u n c a a y a r l a r - " P T 5 M " if a d e s in in a n l a m ı b u d u r - a n c a k a ç ık ç a is t e d iğ in iz k a d a r u z u n y a d a k ıs a o l a r a k a y a r l a y a b il ir s in iz . B u if a d e s ü r e l e r iç in I S O 8 6 0 1 s t a n d a r d ın ın b ir p a r ç a s ıd ır . M u t l a k b ir t a r ih b e l ir l e m e k d e i ş e y a r ıy o r . S o n t a r ih, b ir if a d e n in s o n u c u d a o l a b il ir . B ir s ü r e y e r in e b e l ir l i b ir t a r ihi k u l l a n m a k iç in , b ir timeDate ö ğ e n in y e r in e b ir ö ğ e y i k u l l a n ın timeDuration . D a ğ ı t v e t e s t e t Y a l n ız c a iş l e m t a n ım ın d a d e ğ iş i k l ik l e r y a p a r s a n ız , p r o j e y i y a l n ız c a o l u ş t u r a b il ir s in iz . Y e n id e n b a ş l a t m a k z o r u n d a d e ğ il s in . A y r ı, b a ğ ım s ız b ir A l f r e s c o s u n u c u s u n a d a ğ ıt ıy o r s a n ız , A M P ' y i mvn install o l u ş t u r m a k iç in k u l l a n ın , a r d ın d a n mvn alfresco:install A M P ' y i y e n id e n b a ş l a t m a d a n A l f r e s c o y ü k l e m e n iz e d a ğ ıt m a k iç in k u l l a n ın . N a s ıl k o n u ş l a n d ır d ığ ın ız a b a k ıl m a k s ız ın , iş l e m t a n ım ın ı y e n id e n d a ğ ıt m a k iç in A l f r e s c o iş a k ış ı k o n s o l u n u k u l l a n m a y ı u n u t m a y ın . Ş im d i ü ç ü n c ü t a r a f g ö z d e n g e ç i r ic i y o l u n u t e s t e d in , a n c a k e - p o s t a d a b u l u n a n o n a y l a m a v e y a r e d d e t m e b a ğ l a n t ıs ın ı t ık l a m a k y e r in e , b e ş d a k ik a b e k l e y in . Z a m a n l a y ıc ın ın s ü r e s i d o l d u ğ u n d a iş a k ış ın ın o n a y l a n a n y o l b o y u n c a d e v a m e t t iğ in i g ö r m e l is in iz . S o n u ç A r t ık , A l f r e s c o ' n u n iç in e y e r l e ş t ir il m iş A c t iv it i m o t o r u n u k u l l a n a r a k g e l iş m iş iş a k ış l a r ı u y g u l a m a n ın iç in i v e d ış ın ı b il iy o r s u n u z . A l f r e s c o ' n u n t e m e l iş a k ış l a r ın ın n e z a m a n y e t e r l i o l a c a ğ ın ı v e g e l iş m iş iş a k ış l a r ın ın n e z a m a n u y g u n o l a c a ğ ın ı b il iy o r s u n u z . İ ş l e m t a n ım l a r ın ın , d iz i a k ış l a r ı y l a b ir l e ş t ir il e n o l a y l a r ın , g ö r e v l e r in v e a ğ g e ç it l e r in in k o l e k s iy o n l a r ı o l d u ğ u n u ö ğ r e n d in iz . B ir s ü r e ç t a n ım ın ın h e m ş e m a h e m d e X M L o l a r a k g ö s t e r il m e s i B P M N il e s t a n d a r t l a ş t ır ıl m ış t ır . V e ş im d i if a d e l e r i, A l f r e s c o J a v a S c r ip t v e J a v a k u l l a n a r a k iş a k ış l a r ın a iş m a n t ığ ın ı n a s ıl e k l e y e c e ğ in iz i b il iy o r s u n u z . G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

10. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 10 / 39 Ş im d i ş e m a y ı s a k l a . Ö ğ e y e b a k activiti:executionListener . event B u d iz il im a k ış ın ın " s t a r t " o l a y ı g e r ç e k l e ş t iğ in d e , b u b e t iğ in a t ıl a c a ğ ın ı ö z n it e l ik t e n g ö r e b il ir s in iz . class N it e l ik d ış ı b ir k u t u d a n s ın ıf d e n il e n h a n g i ç a ğ ır m a k iç in s ın ıf b e l ir t ir ScriptExecutionListener . activiti:string E l e m a n h e r h a n g i b ir s u n u c u t a r a f ı J a v a S c r ip t iç e r e b il ir . Ş u a n iç in b u b a s it b ir l o g g e r if a d e s id ir . D a h a s o n r a k i b ir ö r n e k t e , iş a k ış ı p a k e t in d e k i b e l g e l e r ü z e r in d e n a s ıl y in e l e n e c e ğ in i g ö r e c e k s in iz . B u s ü r e c i k ıs a s ü r e d e y ü r ü t e c e k s in iz . O n d a n ö n c e , ç a t a l l a r ın n a s ıl ç a l ış t ığ ın ı g ö r m e k iç in b a s it b ir iş l e m o l u ş t u r a l ım . H e l l o W o r l d F o r k s ü r e c i İ ş l e m t a n ım ın ı A l f r e s c o ' y a n a s ıl d a ğ ıt a c a ğ ın ız ı g ö s t e r m e d e n ö n c e , b ir ç a t a l v e b ir l e ş t ir m e y a p a n b a ş k a b ir H e l l o W o r l d ö r n e ğ i y a p a l ım . B u n u y a p : 1 . " H e l l o W o r l d F o r k . b p m n " a d l ı iş a k ış l a r ı k l a s ö r ü n d e y e n i b ir ş e m a o l u ş t u r u n . 2 . P a l e t t e n b ir s t a r t o l a y ı, b ir e n d o l a y ı, ik i k u l l a n ıc ı g ö r e v i v e ik i p a r a l e l a ğ g e ç id i y a k a l a . 3 . P a l e t t e k i " S e ç " i t ık l a y ın , a r d ın d a n a d l a r ın ı s ır a s ıy l a " K u l l a n ıc ı G ö r e v i A " v e " K u l l a n ıc ı G ö r e v i B " o l a r a k d e ğ iş t ir m e k iç in ik i k u l l a n ıc ı g ö r e v in d e n b ir in i t ık l a y ın . 4 . P a l e t t e k i " D iz i A k ış ı" n ı t ık l a y ın v e ş e m a d a k i d ü ğ ü m l e r i ş ö y l e b a ğ l a y ın ; M e r h a b a d ü n y a ç a t a l B P M N d i y a g r a m ı 5 . T u v a l ü z e r in d e b ir y e r e t ık l a y ın . B u ö z e l l ik g ö r ü n t ü l e y ic id e " İ ş l e m " s e k m e s in i g ö s t e r m e l id ir . K im l ik o l a r a k " h e l l o W o r l d F o r k " v e A d o l a r a k " H e l l o W o r l d F o r k " s e ç e n e ğ in i b e l ir l e y in . 6 . D iy a g r a m ı k a y d e d in v e k a p a t ın . Ş im d i ik i p a r a l e l y ü r ü t m e y o l u o l a n b ir iş s ü r e c in iz v a r . İ ş l e m in K u l l a n ıc ı A G ö r e v in e v e y a K u l l a n ıc ı G ö r e v B ' y e g it m e k is t e m iş , a n c a k h e r ik is in e d e g it m e m e s in i is t iy o r s a n ız , p a r a l e l b ir a ğ g e ç id i y e r in e ö z e l b ir a ğ g e ç id i k u l l a n ır s ın ız . İ l k ö r n e ğ e b e n z e r ş e k il d e , ik i k u l l a n ıc ı g ö r e v in e y o l a ç a n d iz i a k ış l a r ın a b ir l o g g e r if a d e s i e k l e y e l im . H e l l o W o r l d F o r k . b p m n d o s y a s ın ı X M L d ü z e n l e y ic id e a ç ın v e " u s e r t a s k 1 " v e " u s e r t a s k 2 " y e y ö n l e n d ir e n ö ğ e l e r in extensionElements h e r b ir in e ik i y e n i ö ğ e e k l e y in sequenceFlow : <activiti:executionListener event="start" class="org.alfresco.repo.workflow.activiti.listener.ScriptExecutionL <activiti:field name="script"> <activiti:string>logger.log("Hello, World!");</activiti:string> </activiti:field> </activiti:executionListener> </extensionElements> </sequenceFlow> <sequenceFlow id="flow2" sourceRef="parallelgateway1" targetRef="usertask1"> <extensionElements> <activiti:executionListener event="start" class="org.alfresco.repo.workflow.activiti.listener.ScriptExecutionL <activiti:field name="script"> <activiti:string> G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

31. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 31 / 39 <config evaluator="task-type" condition="scwf:activitiReviewTask"> <forms> <form> <field-visibility> <show id="bpm:workflowDescription" /> <show id="packageItems" /> <show id="scwf:approveRejectOutcome" /> <show id="transitions" /> </field-visibility> <appearance> <set id="" appearance="title" label-id="workflow.set.general" /> <set id="info" appearance="" template="/org/alfresco/components/form/2-column-set.ftl" /> <set id="assignee" appearance="title" label-id="workflow.set.assignee" /> <set id="items" appearance="title" label-id="workflow.set.items" /> <set id="response" appearance="title" label-id="workflow.set.response" /> <field id="bpm:workflowDescription" label-id="workflow.field.message"> <control template="/org/alfresco/components/form/controls/textarea.ftl"> <control-param name="style">width: 95%</control-param> </control> </field> <field id="packageItems" set="items" /> <field id="scwf:approveRejectOutcome" set="response" /> <field id="transitions" set="response" /> </appearance> </form> </forms> </config> E k t e k i S h a r e f o r m y a p ıl a n d ır m a s ın a y a k ın d a n b a k m a d a n h e m e n b e l l i o l m a y a n b ir ş e y , b e l ir l i b ir iş a k ış ı iç in iht iy a ç d u y u l a n ç o k l u iş a k ış ı f o r m y a p ıl a n d ır m a l a r ın ın m e v c u t o l m a s ıd ır . B u t a b l o h a n g i k o n f ig ü r a s y o n u n n e y a p t ığ ın ı a ç ık l a m a k t a d ır : C o n f ig n e y a p a r ? Ö r n e ğ i n , b u y a p ı l a n d ı r m a . . . A n l a m a k i ç i n S h a r e t a r a f ı n d a n k u l l a n ı l ı r . . . < c o n f ig e v a l u a t o r = " s t r in g - c o m p a r e " c o n d it io n = " a c t iv it i $ p u b l is h W h it e p a p e r " > K o ş u l l a e ş l e ş e n b ir k im l iğ i o l a n b ir iş a k ış ı b a ş l a t ıl d ığ ın d a h a n g i f o r m k u l l a n ıl ır ? < c o n f ig e v a l u a t o r = " g ö r e v t ü r ü " k o ş u l = " s c w f : a c t iv it iR e v ie w T a s k " > < f o r m > . . . < / f o r m > B ir is i b ir a c t iv it i il e b ir g ö r e v i y ö n e t t iğ in d e h a n g i f o r m k u l l a n ıl m a l ı: f o r m K e y k o ş u l a u y a n . < c o n f ig e v a l u a t o r = " g ö r e v t ip i" k o ş u l = " s c w f : a c t iv it iR e v ie w T a s k " > < f o r m id = ” iş a k ış ı a y r ın t ıl a r ı” > . . . < / f o r m > B ir is i " İ ş A k ış ı A y r ın t ıl a r ı" s a y f a s ın ı ( ö r n e ğ in , B a ş l a t t ığ ım İ ş A k ış l a r ın d a n ) s a y f a s ın ı a ç t ığ ın d a h a n g i f o r m u n , s o n t a m a m l a n a n g ö r e v in activiti:formKey k o ş u l a u y g u n o l d u ğ u il e il g il i. D i z e l e r i d ı ş a a k t a r S o n a d ım , m o d e l d e k i v e iş l e m d e k i d iz e l e r i d ış a a k t a r m a k t ır . H e l l o W o r l d U I ö r n e ğ in d e , d iz g il e r in " s c W o r k f l o w . p r o p e r t ie s " a d ın d a ik i d o s y a y a g e ç t iğ in i, b ir i iş a k ış ı ö ğ r e t ic i- p l a t f o r m - j a r m o d ü l ü v e b ir i iş a k ış ı ö ğ r e t ic i- p a y l a ş ım - j a r m o d ü l ü iç in o l d u ğ u n u u n u t m a y ın . İ ş a k ış ı ö ğ r e t ic i- p l a t f o r m - j a r m o d ü l ü n d e b u l u n a n : A ş a ğ ıd a k il e r i s c W o r k f l o w . p r o p e r t ie s d o s y a s ın a e k l e y in : $TUTORIAL_HOME/workflow-tutorial-platform-jar/src/main/resources/alfresco/module/workflow-tutorial-platform-jar/messag G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

27. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 27 / 39 B u o n a y k o n t r o l ü n ü n b ir p a r ç a s ı o l a r a k k u l l a n ıl a c a k ik i d e ğ iş k e n b a ş l a t ır . scwf_approveCount S ü r e c i " o n a y l a " d iz is i a k ış ın ı iz l e d iğ in d e d e ğ iş k e n a r t ı r ıl ır a l a c a k . S a y a ç 2 ' y e e ş it s e , p a k e t e h e r ik i o n a y d a v e r il ir . " G ö n d e r " k o m u t d o s y a s ın d a s a y a c ı 0 v e o n a y l a n a n d e ğ iş k e n i y a n l ış b a ş l a t m a k ö n e m l id ir , ç ü n k ü b ir t e k n ik in c e l e m e n in b ir k a ç in c e l e m e d ö n g ü s ü n d e n g e ç m e s i m ü m k ü n d ü r . H e r y e n i d ö n g ü b a ş l a t ıl d ığ ın d a , s a y a ç l a r ın s ıf ır l a n m a s ı g e r e k ir . Y o u m a y b e w o n d e r in g w h y t h is is a s e r v ic e t a s k in s t e a d o f a s c r ip t t a s k . I n 5 . 0 . d , t h e u n d e r l y in g J a v a S c r ip t e n g in e in A c t iv it i s w it c h e d f r o m R h in o t o N a s h o r n . T h is c a u s e d a p r o b l e m r e l a t e d t o s e t t in g e x e c u t io n v a r ia b l e s . T h e w o r k a r o u n d is t o u s e a s e r v ic e t a s k . N o w a d d c o d e t o in c r e m e n t t h e c o u n t e r w h e n t h e e x e c u t io n f o l l o w s t h e a p p r o v e s e q u e n c e f l o w . F in d t h e userTask n a m e d " O p e r a t io n s R e v ie w " a n d a d d t h is e x t e n s io n e l e m e n t : T h e J a v a S c r ip t in s p e c t s t h e v a l u e o f scwf_approveRejectOutcome w h ic h w il l b e s e t b y t h e u s e r w h e n t h e y m a n a g e t h e t a s k in A l f r e s c o S h a r e . I f it is e q u a l t o " A p p r o v e " it in c r e m e n t s scwf_approveCount . N o w a d d t h e s a m e t h in g t o t h e userTask e l e m e n t n a m e d M a r k e t in g R e v ie w . " İ ş l e m İ n c e l e m e " v e " P a z a r l a m a İ n c e l e m e " k u l l a n ıc ı g ö r e v l e r in d e n s o n r a k i il k ö z e l a ğ g e ç id i b ir k a r a r ı t e m s il e d e r . O n a y l a r a u l a ş ıl m ış s a , a k ış d e v a m e t m e l i, a k s i t a k d ir d e " R e v iz e " k u l l a n ıc ı g ö r e v in e g it m e l id ir . B u n u u y g u l a m a k iç in , sequenceFlow b u ö z e l a ğ g e ç id in i b a ğ l a y a n e l e m a n l a r ı b u l u n conditionExpression v e scwf_approveCount d e ğ iş k e n l e r i in c e l e y e n h e r b ir in e a ş a ğ ıd a k i g ib i b ir ö ğ e e k l e y in : <sequenceFlow id="flow8" sourceRef="exclusivegateway1" targetRef="exclusivegateway2"> <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_approveCount == 2}]]></conditionExpression> </sequenceFlow> <sequenceFlow id="flow9" sourceRef="exclusivegateway1" targetRef="usertask3"> <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_approveCount < 2}]]></conditionExpression> </sequenceFlow> " Ü ç ü n c ü P a r t i" k a r a r ı d a b e n z e r . B u d u r u m d a , iş a k ış ın ı b a ş l a t a n k iş i ü ç ü n c ü t a r a f g ö z d e n g e ç ir e n iç in b ir e - p o s t a a d r e s i v e r d iy s e , iş a k ış ı " Ü ç ü n c ü T a r a f İ n c e l e m e s i" n e y ö n l e n d ir m e l id ir , a k s i t a k d ir d e d e v a m e t m e l id ir . İ ş t e b u k o ş u l l a r n a s ıl g ö r ü n ü y o r : <userTask id="usertask1" name="Operations Review" activiti:candidateGroups="GROUP_Operations" activiti:formKey="scwf:a <extensionElements> <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskList <activiti:field name="script"> <activiti:string> if(task.getVariableLocal('scwf_approveRejectOutcome') == 'Approve') { var newApprovedCount = scwf_approveCount + 1; execution.setVariable('scwf_approveCount', newApprovedCount); } </activiti:string> </activiti:field> </activiti:taskListener> </extensionElements> </userTask> <sequenceFlow id="flow11" sourceRef="exclusivegateway2" targetRef="usertask2"> <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_reviewerEmail != ''}]]></conditionExpression> </sequenceFlow> <sequenceFlow id="flow14" sourceRef="exclusivegateway2" targetRef="usertask5"> <conditionExpression xsi:type="tFormalExpression"><![CDATA[${scwf_reviewerEmail == ''}]]></conditionExpression> </sequenceFlow> G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

11. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 1 1 / 39 D iy a g r a m ı k a y d e t m e y i u n u t m a y ın . K u ş k u s u z , iş a k ış ı ö ğ r e t ic i- p l a t f o r m - j a r m o d ü l ü n e k a y d e d il e n b ir k a ç b a s it ö r n e k l e , o n l a r ı A l f r e s c o ' d a ç a l ış a n A c t iv it i' y e d a ğ ıt m a n ın v e d e n e m e n in z a m a n ı g e l d i. D a ğ ı t ı m i ş l e m l e r i İ ş a k ış l a r ın ı A l f r e s c o ' y a d a ğ ıt m a k iç in ik i s e ç e n e k d a h a v a r d ır : 1 . A l f r e s c o W o r k f l o w C o n s o l e ' u k u l l a n ın 2 . Y a y y a p ıl a n d ır m a s ı il e iş a k ış l a r ın ı y a p ıl a n d ır ın B u e ğ it im d e , b a ş l a n g ıç t a iş a k ış l a r ın ı d a ğ ıt m a k iç in S p r in g k u l l a n ıl a c a k t ır . A r d ın d a n , g e r e k ir s e s o n r a k i s ü r ü m l e r i d a ğ ıt m a k iç in A l f r e s c o W o r k f l o w C o n s o l e ' u k u l l a n ın . S p r i ng i l e i ş a k ı ş l a r ı nı d a ğ ı t m a Ö n c e k i d e r s l e r d e ö ğ r e n d iğ in iz g ib i, A l f r e s c o M a v e n S D K t a r a f ın d a n o l u ş t u r u l a n A M P p r o j e s i z a t e n b ir S p r in g b a ğ l a m d o s y a s ın a s a h ip . " B o o t s t r a p - c o n t e x t . x m l " o l a r a k a d l a n d ır ıl ır v e b u r a d a b u l u n u r : B u d o s y a y ı d ü z e n l e y in v e S D K ' n ın s iz in iç in e k l e y e b il e c e ğ i m e v c u t f a s u l y e ö ğ e l e r in i s il in . A r d ın d a n , b u n u n g ib i b ir iş a k ış ı k o n u ş l a n d ır m a ç e k ir d e ğ i e k l e y in : <bean id="${project.artifactId}.workflowBootstrap" parent="workflowDeployer"> <property name="workflowDefinitions"> <list> <props> <prop key="engineId">activiti</prop> <prop key="location">alfresco/module/${project.artifactId}/workflow/helloWorld.bpmn</prop> <prop key="mimetype">text/xml</prop> <prop key="redeploy">false</prop> </props> <props> <prop key="engineId">activiti</prop> <prop key="location">alfresco/module/${project.artifactId}/workflow/helloWorldFork.bpmn</prop> <prop key="mimetype">text/xml</prop> <prop key="redeploy">false</prop> </props> </list> </property> </bean> logger.log("Hello, World, from transition to User Task A!"); </activiti:string> </activiti:field> </activiti:executionListener> </extensionElements> </sequenceFlow> <sequenceFlow id="flow3" sourceRef="parallelgateway1" targetRef="usertask2"> <extensionElements> <activiti:executionListener event="start" class="org.alfresco.repo.workflow.activiti.listener.ScriptExecutionL <activiti:field name="script"> <activiti:string> logger.log("Hello, World, from transition to User Task B!"); </activiti:string> </activiti:field> </activiti:executionListener> </extensionElements> </sequenceFlow> $TUTORIAL_HOME/workflow-tutorial-platform-jar/src/main/resources/alfresco/module/workflow-tutorial-platform-jar/contex G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

7. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 7 / 39 M a c O S X 1 0 . 1 2 . 6 J a v a 1 . 8 . 0 _ 7 7 A p a c h e M a v e n 3 . 5 . 3 ( M a c p o r t s k u l l a n ıl a r a k y ü k l e n m iş ) A l f r e s c o M a v e n S D K 3 . 0 . 1 ( İ n d i r m e g e r e k l i d e ğ il ) W e b G e l iş t ir ic il e r i iç in E c l ip s e J a v a E E I D E , N e o n A c t iv it i E c l ip s e B P M N 2 . 0 T a s a r ım c ı 5 . 1 8 ( E c l ip s e G ü n c e l l e m e S it e s i ) A p a c h e J a m e s 2 . 3 . 1 ( ü ç ü n c ü t a r a f b il d ir im l e r in i S M T P ü z e r in d e n t e s t e t m e k iç in ) V a r s a y ıl a n o l a r a k , A l f r e s c o M a v e n S D K ' s in i k u l l a n a r a k b ir A l f r e s c o p r o j e s i o l u ş t u r d u ğ u n u z d a , p r o j e e n s o n k a r a r l ı A l f r e s c o T o p l u l u k S ü r ü m ü ' n e b a ğ l ı o l a r a k y a p ıl a n d ır ıl a c a k t ır . P r o j e O r g a n i za s y o n u Ö z e l l e ş t ir m e l e r im i ik i A M P ' d e ( A l f r e s c o M o d ü l P a k e t i) p a k e t l e y e c e k " h e p s i b ir a r a d a " a r k e t ip in d e n b ir p r o j e o l u ş t u r m a k iç in A l f r e s c o M a v e n S D K ' s ın ı k u l l a n a c a ğ ım . B ir A M P , A l f r e s c o w e b u y g u l a m a s ı ( " r e p o " k a t m a n ı) v e d iğ e r i A l f r e s c o S h a r e w e b u y g u l a m a s ı ( " P a y l a ş " k a t m a n ı) iç in d ir . A l f r e s c o M a v e n S D K ' n ın n a s ıl ç a l ış t ığ ı h a k k ın d a k o n u ş m a y a f a z l a z a m a n h a r c a m a m . Z a t e n a ş in a d e ğ il s e n iz , ö n c e e c m a r c h it e c t . c o m ' d a A l f r e s c o M a v e n S D K ö ğ r e t ic is in e B a ş l a r k e n k it a b ın ı o k u m a k v e d a h a s o n r a b u k o n u y a g e r i d ö n m e k is t e y e b il ir s in iz . B u e ğ it im , Ö z e l İ ç e r ik T ü r l e r i e ğ it im in d e k i k o d a d a y a n m a k t a d ır . Ö ğ r e t ic i, b u e ğ it im s ır a s ın d a o l u ş t u r u l a n A M P v e A M ie r p a y l a ş ım ın d a k i A M P d e p o s u n u n y e r e l M a v e n d e p o n u z a y e r l e ş t ir il d iğ in i v a r s a y a r . V e y a , g ö m ü l ü T o m c a t s u n u c u s u n u ç a l ış t ır m a k y e r in e b ir A l f r e s c o s u n u c u s u n a d a ğ ıt ıy o r s a n ız , b u A M P ' l e r in A l f r e s c o s u n u c u s u n a d a ğ ıt ıl m a s ı g e r e k ir . B u n u n l a il g il i d a h a f a z l a a y r ın t ı , b e l g e d e d a h a s o n r a t a r t ış ıl a c a k t ır . D e v a m e t m e y i p l a n l ıy o r s a n ız , d e v a m e d in v e " h e p s i b ir a r a d a " a r k e t ip in d e n y e n i b ir p r o j e o l u ş t u r m a k iç in A l f r e s c o M a v e n S D K ' y ı k u l l a n ın . B ir groupId " c o m . s o m e c o " v e b ir artifactId " iş a k ış ı ö ğ r e t ic is i" k u l l a n ın . 3 . 0 . 0 il e b a ş l a y a r a k , S D K v a r s a y ıl a n o l a r a k J A R d o s y a l a r ı ü r e t e c e k t ir . H e r z a m a n J A R ' l a r d e ğ il A M P ' l e r o l u ş t u r m a k is t iy o r u z , b u y ü z d e n m a v e n - a s s e m b l y - p l u g in ' in y o r u m u n u k a l d ır m a k iç in p o m . x m l d o s y a s ın ı d ü z e n l e y in . P r o j e y i g ö m ü l ü b ir T o m c a t s u n u c u s u k u l l a n a r a k y ü r ü t ü y o r u z . P r o j e y i ö n c e k i d e r s l e r d e n A M P ' l e r i o t o m a t ik o l a r a k k u r m a s ı iç in y a p ıl a n d ır a b il ir iz . A ş a ğ ıd a k i " p l a t f o r m M o d u l e " b a ğ ım l ıl ık l a r ın ı e k l e m e k iç in " w o r k f l o w - t u t o r ia l " d iz in in d e k i p o m . x m l d o s y a s ın ı d ü z e n l e y in : <platformModules> ...SNIP... <!-- Bring in the content tutorial repo AMP so we can run embedded. --> <moduleDependency> <groupId>com.someco</groupId> <artifactId>content-tutorial-platform-jar</artifactId> <version>1.0-SNAPSHOT</version> <type>amp</type> </moduleDependency> <!-- Bring in the behavior tutorial repo AMP so we can run embedded. --> <moduleDependency> <groupId>com.someco</groupId> <artifactId>behavior-tutorial-platform-jar</artifactId> <version>1.0-SNAPSHOT</version> <type>amp</type> </moduleDependency> <!-- Bring in the actions tutorial repo AMP so we can run embedded. --> <moduleDependency> <groupId>com.someco</groupId> <artifactId>actions-tutorial-platform-jar</artifactId> <version>1.0-SNAPSHOT</version> <type>amp</type> G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

19. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 19 / 39 xmlns="http://www.alfresco.org/model/dictionary/1.0"> <!-- Optional meta-data about the model --> <description>Someco Workflow Model</description> <author>Jeff Potts</author> <version>1.0</version> <!-- Imports are required to allow references to definitions in other models --> <imports> <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d" /> <import uri="http://www.alfresco.org/model/bpm/1.0" prefix="bpm" /> </imports> <!-- Introduction of new namespaces defined by this model --> <namespaces> <namespace uri="http://www.someco.com/model/workflow/1.0" prefix="scwf" /> </namespaces> <types> <type name="scwf:submitHelloWorldTask"> <parent>bpm:startTask</parent> <properties> <property name="scwf:helloName"> <type>d:text</type> <mandatory>true</mandatory> <multiple>false</multiple> </property> </properties> </type> </types> </model> scwf:submitHelloWorldTask T ip i b ir ç o c u k t u r bpm:startTask v e a d ın d a b ir ö z e l l iğ in i a ç ık l a y a n scwf:helloName . B u , iş a k ış ı b a ş l a t ıc ıs ın ın iş a k ış ın ı k im in k a r ş ıl a y a c a ğ ın ı a n l a t m a k iç in k u l l a n a b il e c e ğ i b ir m e t in a l a n ı o l a r a k g ö r ü n t ü l e n e c e k b ir m e t in ö z e l l iğ id ir . A l f r e s c o ' n u n b u m o d e l h a k k ın d a b il m e s i g e r e k iy o r . B u S p r in g y a p ıl a n d ır m a s ı il e y a p ıl ır . B u b a ğ l a m d o s y a s ın a b a ş k a b ir k a ç e k l e m e d e o l a c a k , b ö y l e c e h e p s in i b ir k e r e d e y a p a c a k s ın ız . A d ı m 3 : A l f r e s c o P a y l a ş ı m ı n ı Y a p ı l a n d ı r m a B ir s o n r a k i a d ım A l f r e s c o S h a r e ' e iş l e m m e t a v e r il e r in in n a s ıl g ö s t e r il e c e ğ in i a n l a t m a k t ır . B u t a m o l a r a k ö z e l iç e r ik t ü r l e r i g ib i ç a l ış ır . B u d e r s t e g ö r d ü ğ ü n ü z g ib i, P a y l a ş ım ö z e l l e ş t ir m e l e r i k e n d i p r o j e l e r in e g ir e r l e r , b ö y l e c e ö z e l l ik l e p a y l a ş ım k a t m a n ı iç in b ir A M P ' d e p a k e t l e n e b il ir l e r . S ha r e - c o nfi g - c us t o m .x m l d o s y a s ı nı d üz e nl e y i n A l f r e s c o S h a r e iç in k u l l a n ıc ı a r a y ü z ü y a p ıl a n d ır m a s ı ş u a d ı v e r il e n b ir d iz in d e b u l u n u r : $TUTORIAL_HOME/workflow-tutorial-share-jar/src/main/resources/META-INF S D K m u h t e m e l e n b u d iz in y a p ıs ın ı v e b ir ö r n e k s h a r e - c o n f ig - c u s t o m . x m l d o s y a s ın ı y a r a t t ı. M E T A - I N F d iz in in d e " s h a r e - c o n f ig - c u s t o m . x m l " a d l ı d o s y a y ı d ü z e n l e y in . Ö r n e k iç e r iğ i a ş a ğ ıd a k i iç e r ik l e d e ğ iş t ir in : <alfresco-config> <config evaluator="string-compare" condition="activiti$helloWorldUI"> <forms> <form> G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

20. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 20 / 39 <field-visibility> <show id="bpm:workflowDescription" /> <show id="packageItems" /> <show id="scwf:helloName" /> <show id="transitions" /> <show id="bpm:status" /> </field-visibility> <appearance> <set id="" appearance="title" label-id="workflow.set.general" /> <set id="items" appearance="title" label-id="workflow.set.items" /> <set id="progress" appearance="title" label-id="workflow.set.task.progress" /> <set id="other" appearance="title" label-id="workflow.set.other" /> <field id="bpm:workflowDescription" label-id="workflow.field.message"> <control template="/org/alfresco/components/form/controls/textarea.ftl"> <control-param name="style">width: 95%</control-param> </control> </field> <field id="packageItems" set="items" /> <field id="scwf:helloName" set="other" /> <field id="bpm:status" set="progress" /> </appearance> </form> </forms> </config> </alfresco-config> B u f o r m A l f r e s c o S h a r e ' e , b ir is in in " a c t iv it i $ h e l l o W o r l d U I " a d l ı b ir iş l e m e b a ş l a d ığ ın d a k u l l a n ıc ıy a b u f o r m u g ö s t e r m e s i g e r e k t iğ in i s ö y l e r . F o r m t a n ım ı scwf:helloName , ö z e l t ü r d e t a n ım l a n a n ö z e l l iğ i iç e r ir . D i z e l e r i d ı ş a a k t a r A l f r e s c o S h a r e , " G e l iş m iş İ ş A k ış ı B a ş l a t " il e t iş im k u t u s u n d a g ö r ü n t ü l e n e n iş a k ış ı b a ş l ığ ı v e a ç ık l a m a g ib i ş e y l e r i g ö r ü n t ü l e m e k iç in h a n g i d iz e l e r in k u l l a n ıl a c a ğ ın ı v e b ir e y s e l g ö r e v l e r in b a ş l ık l a r ı v e a ç ık l a m a l a r ın ı b il m e l id ir . B u d iz g il e r in t a n ım l a y ıc ıl a r ı b e l ir l i b ir f o r m a t iz l e r . E l e a l ın a c a k ik i a y r ı ö z e l l ik p a k e t i v a r d ır . B ir in c is i " r e p o " k a t m a n ı iç in d ir , b u y ü z d e n iş a k ış ı ö ğ r e t ic i- p l a t f o r m - j a r m o d ü l ü n e g ir e r . D iğ e r i " p a y l a ş ım " k a t m a n ı iç in d ir , b u y ü z d e n iş a k ış ı ö ğ r e t ic i- p a y l a ş ım - j a r m o d ü l ü n e g id e r . D e p o k a t m a n ı iç in ö z e l l ik l e r : S D K d a h a ö n c e " m e s s a g e s " k l a s ö r ü n ü v e s il e b il e c e ğ in iz b ir ö r n e k ö z e l l ik l e r d o s y a s ın ı y a r a t t ı. M e s a j l a r k l a s ö r ü n d e , a ş a ğ ıd a k i iç e r iğ e s a h ip " s c W o r k f l o w . p r o p e r t ie s " a d l ı y e n i b ir d o s y a o l u ş t u r u n : # Workflow related strings helloWorldUI.workflow.title=Hello World UI (Activiti) helloWorldUI.workflow.description=A simple hello world process using Activiti # Workflow Model related strings scwf_workflowmodel.type.scwf_submitHelloWorldTask.title=Start Hello World UI Workflow scwf_workflowmodel.type.scwf_submitHelloWorldTask.description=Submit a workflow that says hello in the log scwf_workflowmodel.property.scwf_helloName.title=Name scwf_workflowmodel.property.scwf_helloName.description=Say hello to this person B u ö z e l l ik l e r i ik i g r u b a a it o l a r a k d ü ş ü n m e e ğ il im in d e y im . B ir g r u p m o d e l l e il g il i ö z e l l ik l e r k ü m e s id ir . B u ö z e l l ik l e r , iş a k ış ı iç e r ik m o d e l in d e k i d iz e l e r i d ış a a k t a r ır . D iğ e r s ü r e ç l e il g il i ö z e l l ik k ü m e s id ir . B u ö z e l l ik l e r , k u l l a n ıc ıl a r ın iş l e m l e ç a l ış t ık l a r ın d a g ö r d ü k l e r i d iz e l e r i d ış a a k t a r ır ( iş a k ış ı b a ş l ığ ı, iş a k ış ı g e ç m iş i v b . ) . P a y l a ş ım k a t m a n ı iç in ö z e l l ik l e r : $TUTORIAL_HOME/workflow-tutorial-platform-jar/src/main/resources/alfresco/module/workflow-tutorial-platform-jar/messag G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

26. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 26 / 39 T h is t a b l e t e l l s y o u h o w t o s e t t h e p e r f o r m e r t y p e , e x p r e s s io n , a n d f o r m k e y o n e a c h t a s k : S e t t in g s f o r p e r f o r m e r , e x p r e s s io n , & f o r m k e y T a s k P e r f o r m e r T y p e E x p r e s s i o n F o r m K e y S t a r t E v e n t N / A N / A s c w f : s u b m it R e v ie w T a s k O p e r a t io n s R e v ie w C a n d id a t e G r o u p s G R O U P _ O p e r a t io n s s c w f : a c t iv it iO p e r a t io n s R e v ie w M a r k e t in g R e v ie w C a n d id a t e G r o u p s G R O U P _ M a r k e t in g s c w f : a c t iv it iM a r k e t in g R e v ie w R e v is e A s s ig n e e $ { in it ia t o r . p r o p e r t ie s . u s e r N a m e } s c w f : a c t iv it iR e v is e Ü ç ü n c ü P a r t i İ n c e l e m e v e k il $ { İ n it ia t o r . p r o p e r t ie s . u s e r N a m e } s c w f : a c t iv it iThir d P a r t y R e v ie w O n a y l ı B il d ir im v e k il $ { İ n it ia t o r . p r o p e r t ie s . u s e r N a m e } s c w f : a c t iv it iA p p r o v e d N o t if ic a t io n H a v u z l a n m ı ş A t a m a l a r O p e r a s y o n İ n c e l e m e v e P a z a r l a m a İ n c e l e m e ' n in b ir e y l e r y e r in e g r u p l a r a a t a n d ığ ın a d ik k a t e d in . B ir g r u p in s a n b ir g ö r e v ü z e r in d e k im in ç a l ış m a s ı g e r e k t iğ in e n a s ıl k a r a r v e r e c e k ? B u ö z e l iş l e m b ir " h a v u z l a n m ış a t a m a " k u l l a n ır . Ö r n e ğ in , İ ş l e m l e r g r u b u n u n o n k iş i iç e r d iğ in i v a r s a y a l ım . G r u p iç in d e y in e l e n e b il ir v e g r u b u n h e r ü y e s in e b ir g ö r e v a t a y a b il ir v e a r d ın d a n g r u p ü y e l e r in in b a z ıl a r ı v e y a t ü m ü h a r e k e t e g e ç in c e y e k a d a r g ö r e v i t a m a m l a n m a d ığ ın ı d ü ş ü n e b il ir s in iz . B u n a b ir a l t e r n a t if , h a v u z l a n m ı ş b ir ö d e v k u l l a n m a k t ır . B ir h a v u z k u l l a n a r a k , b ir g r u b u n t ü m ü y e l e r in e g ö r e v b il d ir il ir , a n c a k b ir g r u p ü y e s i g ö r e v in " s a h ip l iğ in i" a l ır a l m a z , h e r k e s in y a p ıl a c a k l a r l is t e s in d e n ç ık a r ıl ır . A r d ın d a n , s a h ib i g ö r e v i t a m a m l a y a b il ir v e y a h a v u z a g e r i g ö n d e r e b il ir . H a v u z a ia d e e d il ir s e , g r u b u n t ü m ü y e l e r i, b a ş k a b ir k iş i s a h ip l e n e n e v e y a g ö r e v i t a m a m l a y a n a k a d a r y a p ıl a c a k l a r l is t e s in d e b u g ö r e v i g ö r ü r . B ir l e ş t ir il m iş h a v u z l a m a y ı k u l l a n m a k iç in activiti:candidateGroups userTask ö ğ e y e r in e ö ğ e ü z e r in d e k i ö z n it e l ik activiti:assignee . B ir l e ş t ir il m iş o y u n c u l a r ı k u l l a n m a y a d a k u l l a n m a m a k a r a r ı t a m a m e n iş s ü r e c in e b a ğ l ıd ır - e n iy i u y g u l a m a y a k l a ş ım ı y o k t u r . K a r a r m a nt ı ğ ı e k l e B u n o k t a d a s ü r e ç ş e m a s ı p r o b l e m s iz k u r t a r ıl m a l ıd ır . A r t ık s ü r e c e b ir k a r a r m a n t ığ ı e k l e m e k iç in X M L d ü z e n l e y ic iy i k u l l a n a r a k d o s y a y ı y e n id e n a ç m a n ın z a m a n ı g e l d i. S ü r e ç t a n ım ın ın ik i k a r a r ı v a r . B ir k a r a r g e r e k l i t ü m o n a y l a r ın a l ın ıp a l ın m a d ığ ın ı t e s p it e d e r . E ğ e r ö y l e y s e , s ü r e ç d e v a m e d iy o r . A k s i t a k d ir d e , b a ş l a t ıc ı r e v iz y o n y a p m a ş a n s ın a s a h ip o l u r . D iğ e r k a r a r , b a ş l a t ıc ın ın b ir e - p o s t a a d r e s i s a ğ l a y ıp s a ğ l a m a d ığ ın a b a ğ l ı o l a r a k b ir ü ç ü n c ü t a r a f in c e l e m e s in in g e r e k l i o l u p o l m a d ığ ın ı b e l ir l e m e k iç in k u l l a n ıl ır . B u n l a r ş e m a d a k i ik i ö z e l a ğ g e ç id i t a r a f ın d a n t e m s il e d il ir . B u n l a r s ü r e ç d e ğ iş k e n l e r in e d a y a n a r a k a l ın m a s ı o l d u k ç a k o l a y k a r a r l a r d ır . O n a y k o n t r o l ü n ü u y g u l a y ı n İ ş s ü r e c i X M L ' s in d e , serviceTask " G ö n d e r " a d l ı ö ğ e y i b u l u n v e a ş a ğ ıd a k i k o m u t d o s y a s ın ı e k l e y in : <serviceTask id="scripttask1" name="Submit" activiti:class="org.alfresco.repo.workflow.activiti.script.AlfrescoScriptD <extensionElements> <activiti:field name="script"> <activiti:string><![CDATA[execution.setVariable('scwf_approveCount', 0); execution.setVariable('scwf_tpApproved', false);]]></activiti:string> </activiti:field> </extensionElements> </serviceTask> G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

33. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 33 / 39 Y e n i iş a k ış ın ı iş a k ış l a r ı l is t e s in e e k l e y in : <props> <prop key="engineId">activiti</prop> <prop key="location">alfresco/module/${project.artifactId}/workflow/publishWhitepaper.bpmn</prop> <prop key="mimetype">text/xml</prop> <prop key="redeploy">false</prop> </props> B u a ş a m a d a , A l f r e s c o M a v e n S D K t a r a f ın d a n y a p ıl a n d ır ıl a n g ö m ü l ü T o m c a t s u n u c u s u n d a A l f r e s c o ' y u k u l l a n a r a k t e s t e t m e y e d e v a m e d e b il ir s in iz . D a h a ö n c e k u l l a n m a y a b a ş l a m a n ız iç in g e r e k l i a d ım l a r : 1 . B ir k o m u t s a t ır ı p e n c e r e s i a ç ın v e $ T U T O R I A L _ H O M E k o n u m u n a g e ç in . 2 . K o ş run.sh ( v e y a run.bat ) . A M P ’ l e r in iz , 8 0 8 0 ’ d e ç a l ış a n T o m c a t ’ a y ü k l e n e c e k v e b a ş l a t ıl a c a k t ır . H e r ş e y b a ş l a d ığ ın d a : 1 . H t t p : / / l o c a l h o s t : 8 0 8 0 / p a y l a ş ım ın a g id in v e a d m in o l a r a k o t u r u m a ç ın ( ş if r e : a d m in ) . 2 . H e n ü z y a p m a d ıy s a n ız , " İ ş l e m l e r " a d l ı b ir g r u p v e " P a z a r l a m a " a d l ı b ir g r u p o l u ş t u r u n v e h e r g r u b a b ir v e y a d a h a f a z l a t e s t k u l l a n ıc ıs ı y e r l e ş t ir in . 3 . B ir t e s t iç e r iğ i p a r ç a s ı o l u ş t u r u n . N e o l d u ğ u ö n e m l i d e ğ il . 4 . Ş im d i o iç e r ik p a r ç a s ı iç in b ir iş a k ış ı b a ş l a t ın . 5 . İ ş a k ış l a r ı l is t e s in d e " B e y a z T a h t a y ı G ö n d e r " iş a k ış ın ı g ö r m e l is in iz . İ ş a k ış ın ı b a ş l a t . Ü ç ü n c ü t a r a f g ö z d e n g e ç ir e n e - p o s t a s ı iç in a l a n ı iç e r e n t a n ım l a d ığ ın ız iş a k ış ı f o r m u n u g ö r m e l is in iz . İ ş a k ış ın d a k i b e l g e d e d e ğ iş ik l ik y a p m a k iç in h e n ü z b ir m a n t ık e k l e m e m iş o l s a n ız d a , e n a z ın d a n h e r y o l u t e s t e d e b il m e n iz g e r e k ir . 2 . A d ı m : W e b k o m u t d o s y a l a r ı n ı v e e y l e m l e r i u y g u l a m a Ş im d i, t e m e l iş l e m d e v a m e d iy o r v e A l f r e s c o U I ' y e b a ğ l ı, ş im d i b ir a z iş m a n t ığ ı e k l e y e r e k s ü r e c i d a h a a k ıl l ı h a l e g e t ir m e n in z a m a n ı g e l d i. O na y l a nm ı ş b e l g e l e r d e k i s e t - w e b - e y l e m i ni ç a ğ ı r ı n B ir t a n ıt ım b r o ş ü r ü o n a y l a n d ığ ı n d a w e b s it e s in d e g ö r ü n m e s i g e r e k ir . " Ö z e l E y l e m l e r " ö ğ r e t ic is in d e n , sc:webable b ir b e l g e y e g ö r ü n ü m e k l e y e c e k v e sc:isActive v e sc:publishedFlag ö z e l l ik l e r in i a y a r l a y a c a k b ir e y l e m o l d u ğ u n u z a t e n h a t ır l a y ın . Y a p m a n ız g e r e k e n t e k ş e y , o n a y l a n m ış b e y a z b ü l t e n e k a r ş ı y ü r ü t m e iş l e m in i s ö y l e m e k . B u n u y a p m a k iç in , iş s ü r e c in i d ü z e n l e y in v e userTask " O n a y l ı B il d ir im " a d l ı ö ğ e y i a r a y ın . A ş a ğ ıd a k i u z a n t ı ö ğ e s in i e k l e y in : <userTask id="usertask4" name="Approved Notification" activiti:assignee="${initiator.properties.userName}" activiti:fo <extensionElements> <activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListen <activiti:field name="script"> <activiti:string> var setWebFlagAction = actions.create("set-web-flag"); setWebFlagAction.parameters["active"] = true; for (var i = 0; i &lt; bpm_package.children.length; i++) { logger.log("Approving node:" + bpm_package.children[i].nodeRef); setWebFlagAction.execute(bpm_package.children[i]); } </activiti:string> </activiti:field> </activiti:taskListener> </extensionElements> </userTask> G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

30. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 30 / 39 </properties> <overrides> <property name="bpm:packageItemActionGroup"> <default>read_package_item_actions</default> </property> <property name="bpm:outcomePropertyName"> <default>{http://www.someco.com/model/workflow/1.0}approveRejectOutcome</default> </property> </overrides> </type> <type name="scwf:activitiApprovedNotification"> <parent>bpm:workflowTask</parent> <overrides> <property name="bpm:packageItemActionGroup"> <default>read_package_item_actions</default> </property> </overrides> </type> H e r g ö r e v iç in b ir t ü r v a r . H e r t ü r ü n a d ı, p u b l is h W h it e p a p e r . b p m n d o s y a s ın d a k i k u l l a n ıc ı g ö r e v l e r in in f o r m a n a h t a r ıy l a e ş l e ş ir . H e r t ü r ü n B P M iç e r ik m o d e l in d e t a n ım l a n a n b ir t ü r d e n m ir a s k a l d ığ ın ı f a r k e d e c e k s in iz . K u l l a n ım a h a z ır b p m M o d e l . x m l d o s y a s ın a b a k a r s a n ız , bpm:startTask t ü r ü n iş a k ış ı a ç ık l a m a s ı, s o n t a r ih v e ö n c e l ik g ib i y a r a r l ı ö z e l l ik l e r e s a h ip o l d u ğ u n u g ö r ü r s ü n ü z . bpm:workflowTask A d ı v e r il e n b ir il iş k i v a r d ır bpm:package . bpm:package B ir p u a n bpm:workflowPackage b e l g e l e r i iç e r m e k t e d ir : ( a k l a s ö r g ib i) b ir k a b a u y g u l a n d ığ ın d a k o n u o l a n b ir iş a k ış ı iç in d e n y ö n l e n d ir il m e k t e d ir . B ir iş a k ış ın d a y ö n l e n d ir il e n iç e r iğ e e r iş m e s i g e r e k e n k o d u y a z d ığ ın ız d a , bpm:package il iş k il e n d ir m e y o l u y l a o n a e r iş e b il ir s in iz . property A d l ı e l e m e n t " b p m : p a c k a g e I t e m A c t io n G r o u p " e y l e m l e r i s ü r e c in d e s ö z k o n u s u a d ım d a iş a k ış ın d a k i iç e r iğ i il e ç a l ış a n iç in n e g ib i t a n ım l a r . B u d u r u m d a , b a ş l a t ıc ın ın iş a k ı ş ı b a ş l a t ıl d ığ ın d a v e r e v iz y o n y a p a r k e n iş a k ış ın ın iç e r iğ in i d e ğ iş t ir e b il m e s i g e r e k i r , a n c a k h a k e m l e r iş a k ış ın a b ir ş e y e k l e y e m e z v e y a k a l d ır a m a z l a r . B a ş l a n g ıç g ö r e v i " s c w f : t h ir d P a r t y R e v ie w a b l e " a d ı v e r il e n z o r u n l u b ir ö z e l l iğ e s a h ip t ir . K a p a t m a types e l e m a n ın d a n s o n r a , a ş a ğ ıd a k il e r i e k l e y in : <aspects> <aspect name="scwf:thirdPartyReviewable"> <title>Someco Third Party Reviewable</title> <properties> <property name="scwf:reviewerEmail"> <type>d:text</type> <mandatory>false</mandatory> <multiple>false</multiple> </property> </properties> </aspect> </aspects> B u , ü ç ü n c ü t a r a f g ö z d e n g e ç ir e n in e - p o s t a a d r e s in i d e p o l a y a c a k b ir ö z e l l ik t a n ım l a m a k iç in k u l l a n ıl a n b ir y ö n ü t a n ım l a r . İ ş a k ış ı iç e r ik m o d e l i iç in b u k a d a r . Ş im d i b u n u A l f r e s c o S h a r e k u l l a n ıc ı a r a y ü z ü n d e y a p ıl a n d ır ın . A l f r e s c o S h a r e k u l l a n ı c ı a r a y ü z ü n ü y a p ı l a n d ı r m a H e l l o W o r l d U I ö r n e ğ in d e , A l f r e s c o S h a r e ' in s h a r e - c o n f ig - c u s t o m . x m l k u l l a n ıl a r a k y a p ıl a n d ır ıl d ığ ın ı g ö r d ü n ü z . Ç o ğ u n l u k l a t e k r a r l a y a n b ir iş l e m o l d u ğ u n d a n , y a l n ız c a b u r a d a k i y a p ıl a n d ır m a y ı g ö s t e r e c e ğ im scwf:activitiReviewTask v e P a y l a ş y a p ıl a n d ır m a s ın ın g e r i k a l a n ın ı g ö r m e k is t iy o r s a n ız , b u ö ğ r e t ic iy e e ş l ik e d e n k a y n a ğ a b a k a b il ir s in iz . G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

29. 8/24/2019 Alfresco'da Özel Gelişmiş İş Akışları Oluşturma | ECM Mimar | Alfresco Geliştirici Dersleri https://ecmarchitect.com/alfresco-developer -series-tutorials/workflow/tutorial/tutorial.html#setup 29 / 39 B u n o k t a d a s ü r e c i t a n ım l a d ın ız . S o n u n d a s a h ip o l a c a ğ ı t ü m m a n t ığ a s a h ip d e ğ il , a n c a k A l f r e s c o S h a r e k u l l a n ıc ı a r a y ü z ü y a p ıl a n d ır ıl d ığ ın d a iş l e m d e k i t ü m y o l l a r ı a d ım a d ım iz l e y e b il m e n iz iç in y e t e r l i o l a c a k t ır . B u n u , iç e r ik m o d e l in i t a n ım l a y a r a k v e is t e m c i y a p ıl a n d ır m a s ın ı g ü n c e l l e y e r e k b u b ö l ü m d e y a p a c a k s ın ız . İ ş a k ı ş ı i ç e r i k m o d e l i n i t a n ı m l a m a Ö n c e k i H e l l o W o r l d U I ö r n e ğ in d e b ir iş a k ış ı iç e r ik m o d e l in i b a ş l a t t ın ız . Y a p ıl a c a k il k ş e y , iç e r ik m o d e l X M L ' in i ( s c W o r k f l o w M o d e l . x m l ) y a y ın l a m a t a n ıt ım b r o ş ü r ü n e ö z g ü t ü r v e ö z e l l ik l e r l e g ü n c e l l e m e k t ir . D o s y a y ı d ü z e n l e y in v e e k l e y in : <type name="scwf:submitReviewTask"> <parent>bpm:startTask</parent> <mandatory-aspects> <aspect>scwf:thirdPartyReviewable</aspect> </mandatory-aspects> </type> <type name="scwf:activitiMarketingReview"> <parent>scwf:activitiReviewTask</parent> </type> <type name="scwf:activitiOperationsReview"> <parent>scwf:activitiReviewTask</parent> </type> <type name="scwf:activitiThirdPartyReview"> <parent>scwf:activitiReviewTask</parent> </type> <type name="scwf:activitiRevise"> <parent>bpm:activitiOutcomeTask</parent> <properties> <property name="scwf:reviseOutcome"> <type>d:text</type> <default>Abort</default> <constraints> <constraint type="LIST"> <parameter name="allowedValues"> <list> <value>Re-submit</value> <value>Abort</value> </list> </parameter> </constraint> </constraints> </property> </properties> <overrides> <property name="bpm:packageItemActionGroup"> <default>edit_package_item_actions</default> </property> <property name="bpm:outcomePropertyName"> <default>{http://www.someco.com/model/workflow/1.0}reviseOutcome</default> </property> </overrides> </type> <type name="scwf:activitiReviewTask"> <parent>bpm:activitiOutcomeTask</parent> <properties> <property name="scwf:approveRejectOutcome"> <type>d:text</type> <default>Reject</default> <constraints> <constraint type="LIST"> <parameter name="allowedValues"> <list> <value>Approve</value> <value>Reject</value> </list> </parameter> </constraint> </constraints> </property> G i t H u b ' a ç a t a l a t G i t H u b ' a ç a t a l a t

Görünümler

  • 52 Total Views
  • 38 Website Views
  • 14 Embedded Views

İşlemler

  • 0 Social Shares
  • 0 Likes
  • 0 Dislikes
  • 0 Comments

Paylaşım sayısı

  • 0 Facebook
  • 0 Twitter
  • 0 LinkedIn
  • 0 Google+

Gömülüler 1

  • 1 selensoft.odoo.com