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_* veya role_* alanları için <activiti:value> girdileri tanımlamayın; bunlar yok sayılacak veya üzerine yazılacaktır. Tek istisna, aşağıda açıklanan role filtresi 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 role ipucu 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ında flowable:initiator niteliğinin bulunmasını gerektirir.