Bu belge AI tarafından çevrilmiştir. Herhangi bir yanlışlık için lütfen İngilizce sürümüne bakın
NocoBase, yaygın veri işlemlerini (ekleme, silme, güncelleme, görüntüleme vb.) bünyesinde barındırır. Bu işlemler karmaşık iş gereksinimlerinizi karşılamadığında, bir iş akışında özel işlem olaylarını kullanabilirsiniz. Bu olayı bir sayfa bloğundaki "İş Akışını Tetikle" düğmesine bağladığınızda, kullanıcı tıkladığında özel bir işlem iş akışı tetiklenir.
Bir iş akışı oluştururken "Özel İşlem Olayı"nı seçin:

v.1.6.0+
Bağlam türü, iş akışının hangi blok düğmelerine bağlanabileceğini belirler:

Bağlam türü Tek Kayıt veya Çoklu Kayıt olduğunda, veri modelini bağlamak istediğiniz koleksiyonu seçmeniz gerekir:

İş akışında tetikleyici veri satırının ilişkisel verilerini kullanmanız gerekiyorsa, burada derin ilişkisel alanları seçebilirsiniz:

Bu alanlar, olay tetiklendikten sonra iş akışı bağlamına otomatik olarak önceden yüklenir ve iş akışında kullanılabilir hale gelir.
Farklı bloklardaki işlem düğmelerinin yapılandırması, iş akışında yapılandırılan bağlam türüne göre değişiklik gösterir.
v.1.6.0+
İşlem Çubuğu'na ve diğer veri bloklarına "İş Akışını Tetikle" düğmesi ekleyebilirsiniz:



Düğmeyi ekledikten sonra, daha önce oluşturduğunuz bağlamsız iş akışını bağlayın. İşlem Çubuğu'ndaki bir düğmeyi örnek olarak inceleyelim:


Herhangi bir veri bloğunda, tek bir kayıt için işlem çubuğuna "İş Akışını Tetikle" düğmesi eklenebilir; örneğin formlarda, tablo satırlarında veya detay görünümlerinde:



Düğmeyi ekledikten sonra, daha önce oluşturduğunuz iş akışını bağlayın:


Ardından, bu düğmeye tıklamak özel işlem olayını tetikleyecektir:

v.1.6.0+
Bir tablo bloğunun işlem çubuğuna "İş Akışını Tetikle" düğmesi eklerken, bağlam türünü "Bağlamsız" veya "Çoklu Kayıt" olarak seçmek için ek bir seçenek bulunur:

"Bağlamsız" seçildiğinde, bu genel bir olaydır ve yalnızca bağlamsız iş akışlarına bağlanabilir.
"Çoklu Kayıt" seçildiğinde, birden fazla kayıt seçildikten sonra toplu işlemler için kullanılabilecek çoklu kayıt iş akışını bağlayabilirsiniz (şu anda yalnızca tablolar tarafından desteklenmektedir). Bu durumda, mevcut iş akışları, mevcut veri bloğunun koleksiyonuyla eşleşecek şekilde yapılandırılmış olanlarla sınırlıdır:

Tetiklemek için düğmeye tıklandığında, tablodaki bazı veri satırlarının işaretlenmiş olması gerekir; aksi takdirde iş akışı tetiklenmez:

Örneğin, bir "Numuneler" koleksiyonumuz olsun. "Toplandı" durumundaki numuneler için "İncelemeye Gönder" adında bir işlem sağlamamız gerekiyor. Bu işlem, önce numunenin temel bilgilerini kontrol edecek, ardından bir "İnceleme Kaydı" oluşturacak ve son olarak numunenin durumunu "İncelemeye Gönderildi" olarak değiştirecektir. Bu süreçler dizisi basit "ekle, sil, güncelle, görüntüle" düğme tıklamalarıyla tamamlanamayacağından, bunu özel bir işlem olayı kullanarak uygulayabiliriz.
Öncelikle bir "Numuneler" koleksiyonu ve bir "İnceleme Kayıtları" koleksiyonu oluşturun ve Numuneler koleksiyonuna bazı temel test verileri girin:

Ardından, bir "Özel İşlem Olayı" iş akışı oluşturun. İşlem sürecinden hızlı geri bildirim almanız gerekiyorsa, senkron modu seçebilirsiniz (senkron modda, manuel işlem gibi eşzamansız düğümler kullanamazsınız):

Tetikleyici yapılandırmasında, koleksiyon için "Numuneler"i seçin:

İş gereksinimlerinize göre süreçteki mantığı düzenleyin. Örneğin, gösterge parametresi 90'dan büyük olduğunda incelemeye göndermeye izin verin; aksi takdirde ilgili bir mesaj görüntüleyin:

"Yanıt Mesajı" düğümü, istemciye bir uyarı mesajı döndürmek için senkron özel işlem olaylarında kullanılabilir. Eşzamansız modda kullanılamaz.
İş akışını yapılandırıp etkinleştirdikten sonra, tablo arayüzüne geri dönün ve tablonun işlem sütununa "İş Akışını Tetikle" düğmesini ekleyin:

Ardından, düğmenin yapılandırma menüsünden bir iş akışı bağlamayı seçin ve yapılandırma açılır penceresini açın:

Daha önce etkinleştirilen iş akışını ekleyin:

Gönderdikten sonra, düğme metnini "İncelemeye Gönder" gibi işlem adıyla değiştirin. Yapılandırma süreci tamamlanmıştır.
Kullanmak için, tablodan herhangi bir numune verisi seçin ve "İncelemeye Gönder" düğmesine tıklayarak özel işlem olayını tetikleyin. Daha önce düzenlediğimiz mantığa göre, numunenin gösterge parametresi 90'dan küçükse, tıkladıktan sonra aşağıdaki uyarı görüntülenir:

Gösterge parametresi 90'dan büyükse, süreç normal şekilde yürütülür, bir "İnceleme Kaydı" oluşturulur ve numunenin durumu "İncelemeye Gönderildi" olarak değiştirilir:

Böylece, basit bir özel işlem olayı tamamlanmış olur. Benzer şekilde, sipariş işleme, rapor gönderme gibi karmaşık işlemleri olan işler için de özel işlem olayları kullanılabilir.
Özel işlem olaylarının tetiklenmesi yalnızca kullanıcı arayüzü işlemleriyle sınırlı değildir; HTTP API çağrıları aracılığıyla da tetiklenebilir. Özellikle, özel işlem olayları tüm koleksiyon işlemleri için iş akışlarını tetiklemek üzere yeni bir işlem türü sunar: trigger. Bu, NocoBase'in standart işlem API'si kullanılarak çağrılabilir.
Örnekteki gibi bir düğmeyle tetiklenen bir iş akışı şu şekilde çağrılabilir:
Bu işlem tek bir kayıt için olduğundan, mevcut veriler üzerinde çağrı yaparken, URL'deki <:id> kısmını değiştirerek veri satırının kimliğini belirtmeniz gerekir.
Bir form için çağrılıyorsa (örneğin yeni bir kayıt oluşturma veya güncelleme için), yeni veri oluşturan bir form için kimliği (ID) atlayabilirsiniz, ancak yürütme bağlamı olarak gönderilen verileri iletmeniz gerekir:
Bir güncelleme formu için, hem veri satırının kimliğini (ID) hem de güncellenmiş verileri iletmeniz gerekir:
Hem bir kimlik (ID) hem de veri iletilirse, önce kimliğe karşılık gelen veri satırı yüklenir ve ardından iletilen veri nesnesindeki özellikler, orijinal veri satırının üzerine yazmak için kullanılır ve nihai tetikleyici veri bağlamı elde edilir.
İlişkisel veri iletilirse, bu da üzerine yazılır. Özellikle ilişkisel veri öğelerinin önceden yüklenmesi yapılandırılmışsa, ilişkisel verilerin beklenmedik şekilde üzerine yazılmasını önlemek için gelen verileri dikkatli bir şekilde işlemeniz gerekir.
Ek olarak, URL parametresi triggerWorkflows, iş akışının anahtarıdır; birden fazla iş akışı anahtarı virgülle ayrılır. Bu anahtar, iş akışı tuvalinin üst kısmındaki iş akışı adının üzerine fareyle gelindiğinde elde edilebilir:

Yukarıdaki çağrı başarılı olduktan sonra, ilgili samples koleksiyonu için özel işlem olayı tetiklenecektir.
Harici çağrılar da kullanıcı kimliğine dayanması gerektiğinden, HTTP API aracılığıyla çağrı yaparken, normal arayüzden gönderilen isteklerle aynı şekilde kimlik doğrulama bilgileri sağlamanız gerekir. Bu, Authorization istek başlığını veya token parametresini (oturum açma sırasında elde edilen token) ve X-Role istek başlığını (kullanıcının mevcut rol adı) içerir.
Bu işlemde bire-bir ilişkisel veri (bire-çok şu anda desteklenmemektedir) için bir olayı tetiklemeniz gerekiyorsa, ilişkisel alanın tetikleyici verilerini belirtmek için parametrede ! kullanabilirsiniz:
Yukarıdaki çağrı başarılı olduktan sonra, ilgili categories koleksiyonu için özel işlem olayı tetiklenecektir.
HTTP API çağrısı aracılığıyla bir işlem olayını tetiklerken, iş akışının etkinleştirme durumuna ve koleksiyon yapılandırmasının eşleşip eşleşmediğine de dikkat etmeniz gerekir; aksi takdirde çağrı başarılı olmayabilir veya bir hatayla sonuçlanabilir.