Ana içeriğe geç

4.10. Form İşlemleri#

BPMN uygulamasında süreç başlangıç ve kullanıcı görevi adımlarında form tanımı yapılabilmesi, kullanıcıların yetkili olduğu formu doldurarak süreçleri form üzerinden yürütebilmesi ve form verilerinin süreç akışında farklı kaynaklara gönderilebilmesi yeteneği sağlanmıştır.

Süreç akışında form işlemleri yapılabilmesi için gerekenler aşağıdaki gibidir:

  1. "BPMN_FORM_ENABLED" parametresi "true" olmalıdır.

  2. Süreç çiziminde, aşağıda görülen "Form referansı" alanına tıklanır.

  3. Çıkan ekranda "Yeni Form" seçilir. Form adı ve anahtarı girilir. Ardından aşağıda görülen form tasarlama ekranında istenilen formatta alanlar tanımlanır.

  4. DDL üzerinden form alanlarının otomatik üretilmesi ihtiyacı olmasında durumunda; aşağıda gösterilen butona tıklanarak veritabanından alınan DDL çıktısı seçilir. Dosya seçiminden sonra form alanlarının oluştuğu görülecektir.

  5. Form verilerinin, sürecin ilerletilmesi sırasında, BPMN uygulamasının veritabanında belirlenen şemanın tablosuna yazılması istenirse; aşağıda görülen buton ile form konfigürasyonu ekranı açılır.

  6. Bu ekranda, seçilen DDL çıktısı üzerinden şema ve tablo bilgilerinin alındığı görülür. Form verisinin, belirtilen şemanın tablosuna yazılması istenirse "Kaydet" butonuna basılır ve form ayarı kaydedilir.

  7. Form verisi, veritabanına yazılmak yerine farklı bir uygulamanın rest ucuna gönderilmek istenirse; aşağıdaki gibi gönderim tipi değiştirilir, gönderim yapılacak uygulamanın rest url'i tanımlanır ve "Kaydet" butonuna basılır.

  8. Form verisinin alınacağı uygulamada; rest ucu aşağıdaki gibi tanımlanmalıdır.

@PostMapping(path = "/integrate-form", consumes = MediaType.APPLICATION_JSON_VALUE)
HvlResponse<Void> integrate(@RequestBody Map<String, Object> payload,
                            @RequestParam("formType") String formType,
                            @RequestParam("formDataId") String formDataId
                            );

Bu metodda payload; form verilerini ifade eder. formType; formun süreç başlangıcından mı yoksa kullanıcı görevinden mi geldiğini ifade eder. Değerleri START_FORM ya da TASK_FORM olur. formDataId değeri ise; gönderim tipi START_FORM ise süreç oluşumunun ID'si, TASK_FORM ise görevin ID'sidir.

Tüm tanımların yapılmasından sonra; form kaydedilir, süreç deploy edilir ve süreç akışı işletilebilir.

Önemli Bilgi

Form verileri, süreç akışında süreç değişkeni olarak taşınır. Bu nedenle form tasarlarken form öğesinin ID alanı dikkatli tanımlanmalıdır. Çünkü bu alan, süreçte form verileri değişken olarak taşınırken değişken key'i olacaktır. Dolayısıyla sürecin diğer değişkenlerinin key'leri ile kesişmemelidir!