10. Dinamik Atama
Akıllı Form Oluşturma (Dinamik Açılır Listeler)
Workingflow, alan kimliği (ID) öneklerine dayalı dinamik form doldurma (dynamic form population) uygular:
| Kimlik (ID) Öneki | Ne Yapar | Saklanan Değer | Veri Kaynağı |
|---|---|---|---|
user_* |
Kullanıcıların yer aldığı tekli seçim açılır listesi | email@example.com |
users tablosu |
users_* |
Kullanıcıların yer aldığı çoklu seçim onay kutuları | email1,email2 |
users tablosu |
role_* |
Rollerin yer aldığı tekli seçim açılır listesi | ROLE_NAME |
roles tablosu |
roles_* |
Rollerin yer aldığı çoklu seçim onay kutuları | ROLE_1,ROLE_2 |
roles tablosu |
Önemli:
user_*veyarole_*alanları için<activiti:value>girdileri tanımlamayın; bunlar yok sayılacak veya üzerine yazılacaktır. Tek istisna, aşağıda açıklananrolefiltresi ipucudur.
Kimlik Anahtarı (Identity Key):
user_alanları için sistem tanımlayıcı olarak E-posta kullanır. Bu kritik bir noktadır çünkü Flowable, "Görevlerim" (My Tasks) eşleşmesi için e-posta dizesini kullanır.
Kullanıcıları Role Göre Filtreleme
Varsayılan olarak user_* ve users_* alanları sistemdeki tüm kullanıcıları gösterir. Sadece belirli bir role sahip kullanıcıları (örneğin sadece yöneticileri) göstermek istiyorsanız, alana <activiti:value id="role" name="ROLE_NAME"/> ipucunu ekleyin.
Örnek: Tekli Seçim — Sadece Yöneticiler (Managers)
<activiti:formProperty id="user_approver" name="Select Manager" type="enum" required="true">
<activiti:value id="role" name="ROLE_MANAGER"/>
</activiti:formProperty>
<!-- The selected manager's email is stored in user_approver, use it for assignment: -->
<userTask id="approvalTask" flowable:assignee="${user_approver}"/>
Örnek: Çoklu Seçim — Sadece İK (HR) Üyeleri
<activiti:formProperty id="users_hrReviewers" name="Select HR Reviewers" type="enum" required="true">
<activiti:value id="role" name="ROLE_HR"/>
</activiti:formProperty>
| Senaryo | Alan Tanımı |
|---|---|
| Tüm kullanıcılar (varsayılan) | <activiti:formProperty id="user_reviewer" type="enum"/> |
| Sadece yöneticiler | Alanın içine <activiti:value id="role" name="ROLE_MANAGER"/> ekleyin |
| Sadece İK üyeleri (onay kutuları) | users_ önekini + <activiti:value id="role" name="ROLE_HR"/> kullanın |
Geriye Dönük Uyumluluk: Eğer bir
roleipucu sağlanmazsa tüm kullanıcılar gösterilir — mevcut BPMN dosyaları değiştirilmeden çalışmaya devam eder. Filtreleme yapılsa dahi saklanan değer her zaman kullanıcının e-posta adresidir.
Yerleşik Değişkenler (Flowable Eklentileri)
Flowable, ifadelerde kullanılabilecek birkaç yerleşik değişken sağlar. Bunlar BPMN 2.0 standardının bir parçası değildir, Flowable/Activiti eklentileridir.
| Değişken | Nasıl Etkinleştirilir | Açıklama |
|---|---|---|
${initiator} |
<startEvent flowable:initiator="initiator"/> |
Süreci başlatan kullanıcının Kimliği (E-posta) |
${processInstanceId} |
Her zaman kullanılabilir | Mevcut süreç örneği (process instance) Kimliği |
${processDefinitionId} |
Her zaman kullanılabilir | Süreç tanımı (process definition) Kimliği |
${executionId} |
Her zaman kullanılabilir | Mevcut yürütme (execution) Kimliği |
Not:
${initiator}değişkeni en sık kullanılanıdır. Başlatanın kimliğini yakalamak için başlangıç olayındaflowable:initiatorniteliğinin bulunmasını gerektirir.