Activiti 7'yi kudunuz ve her şey çalışıyor ve Runtime Bundle'ımıza yerleştirilmiş olan bir dizi işlem tanımımız var. Artık süreç örneklerini, vb. başlatarak Runtime Bundle'ı daha da keşfedebiliriz.
Full Example Deployment ile Etkileşim
Yani Tam Örnek uygulaması artık dağıtıldı, ancak bir süreci başlatmak ve bunun için görevleri yönetmek için onunla nasıl etkileşim kuracaksınız? Maalesef Community sürümünde bu işlemleri yapmak için bir kullanıcı arayüzü yoktur, ancak Tam Örnek için kaynak kodu ile mevcut olan bir Postman Koleksiyonu kullanabilirsiniz.
Aşağıdaki projeyi klonlayın:
$ git clone https://github.com/Activiti/activiti-cloud-examples.git
Postman'da koleksiyonu içe aktarın. Import menüsünden Dosyaları Seç'e tıklayın ve ardından klonladığımız projeden aşağıdaki dosyayı (yani Activiti v7 REST API.postman_collection.json) seçin.
Herhangi bir hizmeti aramadan önce, Postman'da yeni bir Ortam oluşturmanız gerekecektir. Bunu, Ortamı Yönet simgesine (sağ üst köşedeki dişli çark) giderek yapabilirsiniz.
Ortamları Yönet bölümünde, yeni bir ortam eklemek için Ekle düğmesine tıklayın. Buna Activiti 7 gibi bir ad verin. Ardından ortam için aşağıdaki değişkenleri sizin bilgilerinizle yapılandırın:
ağ geçidi değeri için:
activiti-cloud-gateway.activiti7.10.250.22.233.nip.io
idm value için: activiti-cloud-gateway.activiti7.10.250.22.233.nip.io ve realm değeri için: activiti
Bu yeni Activiti 7 ortamını eklemek için Ekle'ye tıklayın. Başarılı bir kurulumun ardından çıktıdan tanıyacağınız ağ geçidi ve idm değişken değerleri, / auth, idm URL'sinden çıkarılmaz. Keycloak bölgesi, activiti'ye önceden yapılandırılmıştır.
Sağ üst köşedeki açılır menüden ortamı seçtiğinizden emin olun. Ayrıca, içe aktardığımız koleksiyonu seçin.
Herhangi bir ReST çağrısı yapabilmek için Keycloak'tan bir erişim belirteci almamız gerekiyor. Postman koleksiyonundaki keycloak klasörüne gidip getKeycloakToken test kullanıcısını seçerseniz bir erişim belirteci alırsınız:
POST URL'sinde ortam değişkenlerinin nasıl kullanıldığını burada görebilirsiniz (ör. {{İdm}} / auth / realms / {{realm}} / protocol / openid-connect / token). ReST araması yapmak için Send düğmesine tıklayın.
Gelen erişim belirteci, diğer isteklerin kimliğini doğrulamak için kullanılacaktır. Tests sekmesine bakın ve daha sonra diğer ReST çağrıları tarafından kullanılan erişim belirteci değişkenini (yani kcAccessToken) ayarlayan bir komut dosyası göreceksiniz:
Bu jetonun zamana duyarlı olduğunu ve bir noktada otomatik olarak geçersiz hale geleceğini unutmayın; bu nedenle, yetkisiz hatalar almaya başlarsanız yeniden istemeniz gerekebilir (ekranın ortasında 401 Yetkisiz hata göreceksiniz).
Bir kullanıcı için jetonu aldığımızda, tüm kullanıcı uç noktalarıyla etkileşim kurabiliriz. Örneğin, Örnek Çalışma Zamanı Paketimizde (rb-my-app / getProcessDefinitions) hangi İşlem Tanımlarının konuşlandırıldığını görmek için bir ReST çağrısı çağırabiliriz:
Şimdi, süreç tanımlarından biriyle bir süreç vakasına başlayalım. Örnek Çalışma Zamanı Paketi için kaynak koduna bakarsak, aşağıdakiler gibi bir dizi işlem tanımının konuşlandırıldığını görebiliriz:
ConnectorProcess.bpmn20.xml - Bulut Bağlayıcı olarak uygulanan hizmet göreviyle işlem
SignalCatchEventProcess.bpmn20.xml - olay için bekleyen işlem
SignalThrowEventProcess.bpmn20.xml - hizmet görevine benzer şekilde harici hizmete mesaj gönderen işlem
Basit subprocess.bpmn20.xml - kullanıcı göreviyle işleyin. Alt işlem olarak kullanılabilir
Alt süreç Parent.bpmn20.xml - alt süreci olan üst süreç
SimpleProcess.bpmn20.xml - kullanıcı görevi ile basit süreç
SubProcessTest.fixSystemFailureProcess.bpmn20.xml - alt işlem kullanımını gösteren başka bir işlem
processWithVariables.bpmn20.xml - kullanıcı görevi ve işlem değişkenleriyle işlem yapın
Tek Kullanıcı görevi olan SimpleProcess'i kullanacağız. Bu işlem tanımına göre bir işlem vakası başlatmak için rb-my-app klasöründeki startProcess Postman isteğini kullanabiliriz. Bu istek, {{ağ geçidi}} / rb-my-app / v1 / process-instances POST ReST çağrısı olarak tanımlandı. Özellikle / rb-my-app URL yolu ile tanımlanan bir Çalışma Zamanı Paketini hedefliyor:
POST gövdesine dikkat edin, Activiti'ye SimpleProcess tanımının en son sürümüne göre bir işlem vakası başlatmasını söylemek için processDefinitionKey'i SimpleProcess olarak belirtir.
Gönder düğmesini tıklayın (ancak önce geçerli bir erişim jetonunuz olduğundan emin olun, aksi takdirde 401 Yetkisiz durumunu görürsünüz). Yeni işlem vakası hakkında bilgi içeren bir yanıt almalısınız:
Muhtemelen yapacağımız bir sonraki şey, aktif görevleri listelemektir. Bunu getTasks isteği ile yapabiliriz. Rb-my-app çalışma zamanı paketiyle ilişkili {{gateway}} / rb-my-app / v1 / tasks? Page = 0 & size = 10 URL'sini kullanır.
Ancak, bunu yapmadan önce SimpleProcess'teki görev tanımı aşağıdaki gibi göründüğünden başka bir kullanıcıyla oturum açmamız gerekir:
kullanıcı bu grubun bir parçası değil. Bu nedenle, insan kaynakları grubunun parçası olan bir kullanıcıyla oturum açmamız gerekiyor. Keycloak klasörü altında getKeycloakToken hruser ile giriş yapabiliriz.
Şimdi, hruser olarak oturum açtıktan sonra, rb-my-app klasöründe getTasks isteğini çalıştırabilmeli ve şuna benzer bir yanıt görebilmeliyiz:
Görevin kimliğini burada görebiliriz ve bu 9e8dedf3-86cd-11e9-b6da-f6fda81c9b1f'dir. Görevi talep etmek için onu kullanabilmeliyiz (havuza alınmış bir görev olduğu için onu tamamlamadan önce talep etmemiz gerekir). Kullanıcının görevi için hak talebinde bulunmak için id'yi kullanarak ClaimTask POST isteğini kullanın:
Burada, görev kimliğini kullanarak URL'yi {{ağ geçidi}} / rb-my-app / v1 / tasks / 9e8dedf3-86cd-11e9-b6da-f6fda81c9b1f / request? Assignee = hruser olarak güncelledim. Görev artık hruser'a atanmıştır ve bu kullanıcı tarafından aşağıdaki gibi completeTask isteği kullanılarak tamamlanabilir:
Burada ayrıca görev kimliğini içerecek şekilde URL'yi güncelledim: {{ağ geçidi}} / rb-my-app / v1 / tasks / 9e8dedf3-86cd-11e9-b6da-f6fda81c9b1f / complete.
Bu, ReST API'si aracılığıyla çalışma zamanı paketiyle konuştuğumuz etkileşimli kısmı tamamlıyor. Postman kullanmadan eksiksiz ReST API'ye nasıl erişebileceğinizi merak ediyorsanız, bu aşağıdaki URL ile sağlanabilir: http://activiti-cloud-gateway.activiti7.10.250.22.233.nip.io/rb- uygulamam / swagger-ui.html:
Ayrıca Denetim ve Sorgu hizmetlerine de göz atmak isteyebilirsiniz.
Sonraki makalede, özel bir İşlem Tanımı tanımlamak için Activiti Modeler'ı kullanacağız.
Etiketler
Activiti 7 Nasıl Yapılır
Kaynak: https://hub.alfresco.com/t5/alfresco-process-services/activiti-7-deep-dive-series-deploying-and-running-a-business/ba-p/288347