Özelleştirilmiş Aktivite (Custom Activity) yazabilmek için izlenmesi gereken adımlar, hazırlanmış bir aktiviteyi içeri alma işlemleri ve konu ile ilgili hazır paket örnekler aşağıdaki gibidir:
Kurulum
- Custom Function için gerekli template ve yardımcı uygulamalar için visual studio'ya ilgili Framework versiyonuna göre aşağıda paylaşılan eklentinin çalıştırılması gerekmektedir.
Framework 4.6 versiyonu için eklenti dosyası
Framework 4.8 versiyonu için eklenti dosyası
2. Kurulum tamamlandıktan sonra Visual Studio uygulamasını açıp, aşağıdaki menü üzerinden Extensions And Updates ekranını açılır.
Aşağıdaki gibi eklentinin yüklenme durumu gözlemlenir.
Aktivite Oluşturulması
- Visual Studio’da New Project üzerinden “LFlow.Custom.Activity” template seçilir.
- Oluşturulan proje detayı aşağıdaki gibidir:
- Açılan projede aktivite tasarımı için örnek sınıflar yer almaktadır.
Üç farklı tipte aktivite tasarlanabilir:- CustomBaseActivity : İş akış bu aktivite adımına geldiğinde “Execute” metodu çalıştırılır ve akış sonraki adıma geçer. Bu adımda flow değişkenlerinin değerinde değişiklik yapılırsa sonraki adımda yeni değerler görünür.
Bu tip aktivite oluşturmak için oluşturulacak sınıf, INCustomBaseActivity interface’inden türetilmelidir.
- AjmBMCustomActivity : AJM aktiviteleri asenkron çalıştırılan aktivitelerdir. İş akış bu aktivitenin adımına geldiğinde, ajm servis üzerinden bu aktivite adımı çalıştırılır.
Bu tip aktivite oluşturmak için oluşturulacak sınıf, INAjmBMCustomActivity interface’inden türetilmelidir.
- AjmTaskCustomActivity : AJM Task aktivitesi, asenkron olarak belli zaman aralıklarında tekrarlı şekilde bu aktivite içinde yer alan işlemlerin çalıştırılmasını sağlar. Tanımlanan görev ayarlarına bağlı olarak belli zamanlarda “Execute” metodu çalıştırılır.
Bu tip aktivite oluşturmak için oluşturulacak sınıf, INAjmTaskCustomActivity interface’inden türetilmelidir.
- CustomBaseActivity : İş akış bu aktivite adımına geldiğinde “Execute” metodu çalıştırılır ve akış sonraki adıma geçer. Bu adımda flow değişkenlerinin değerinde değişiklik yapılırsa sonraki adımda yeni değerler görünür.
- İş akışı, özelleştirilmiş aktivite adımına geldiğinde “Execute” metodundaki işlemler çalıştırılır. Akış içerisindeki mevcut tüm değişkenler method a parametre olarak gelmektedir. Değişiklik yapıldığında ilgili değişken değerleri değişmesi sağlanmaktadır.
- Akış için gerekli değişken ve parametreleri tanımlanabilinmektedir.
- “NCustomActivityExpressionVariable” attribute ile oluşturulduğunda roslyn editör ile istenilen c# kodu yazılıp sonuç döndürülmesi sağlanabilir.
- “TypeConverter(typeof(ExpandableObjectConverter))” attribute ile oluşturulduğunda sınıf (nesne) olarak parametere alınabilir.
- “TypeConverter(typeof(StringConverter))” standart tipli değişken dönüşümleri için.
- “Editor(typeof(BrowseForFolderEditor), typeof(DialogPropertyValueEditor))” dosya seçim ekranını açıp, değer seçilmesini sağlamaktadır.
- Testleri ve geliştirimi tamamlanan özelleştirilmiş aktivite projesi sağ tıklanarak Publish edilebilir.
- .lflowcustom uzantılı bir dosya belirtilen dosya yoluna oluşturulur.
İçeri Alma İşlemi ve Tasarım Aracı Üzerinde Özelleştirilmiş Aktivite Kullanımı
- LogoFlow tasarım aracı “Dosya->Aktar→Özelleştirilmiş Aktiviteler" bölümüne girilir.
- Önceden eklenmiş paketler burada görüntülenir. Yeni aktivite paketleri de “İçeri Aktar” ile aktarılır.
- Özelleştirilmiş aktivite paketi eklendikten sonra tasarım aracının sol menüsündeki aktivite listesine tanımlanan yeni aktiviteler özellikleri ile birlikte kullanılabilir.
- Oluşturulan aktiviteler için parametre ekran ayarları aşağıdaki gibidir:
Versiyon
Aynı özelleştirilmiş aktivite projesi için farklı versiyonlar oluşturulabilir.
Aktivitenin daha güncel bir versiyonu yüklendiğinde önceki versiyon ile başlatılmış olanlar o versiyon ile çalışmaya devam ederler. Özelleştirilmiş aktivitenin güncel versiyonu eklendikten sonra iş akış kaydedildikten sonra son versiyondan çalıştırılır.
Portal Üzerinden Görüntülenmesi
- Oluşturulan akış başlatıldığında, tasarlanan ekran üzerinden e-fatura dosya adı alınıp, E-Logo üzerinden bunun zip olarak indirilmesi. Sonrasında bunun içerisinden pdf dosyasının çıkartılıp, Ekran üzerinde link ile indirilebilir, gözlenebilir şekilde sonlandırılmasını içermektedir.
- İşlemler sırasında kulanılan file log activity ve signalr ile yazılmış anlık ileti özelliği ile akışın durumu izlenmiş, loglanmıştır:
Örnek İndir
Not : Yukarıdaki örnekler için oluşturulmuş projelere için oluşturulan *.nxm ve *.lflowcustom dosyalarına aşağıdan ulaşabilirsiniz.
Visual Studio Solution dosyası:
Eklenti (Publisher Extension):
Özelleştirilmiş Aktivite (*.lflowcustom) dosyaları:
Akış Paketi (*.nxm) dosyası: