- 04 Aug 2022
- 2 Minutes to read
- DarkLight
Aktivite - Makro
- Updated on 04 Aug 2022
- 2 Minutes to read
- DarkLight
İş akışlarında kod yazma ihtiyacınız olduğunda kullanılan aktivitedir. İş akışında kod yazma esnasında dikkat edilmesi gereken konu şudur;
Bir iş akışında 2 mantık bulunur;
- UI Logic: (Ara yüz mantığı) Bir listeden seçildiğinde verinin bir alana yazılması, bazı alanların duruma göre zorunlu olması, bazı alanların seçime göre görünürlüğünün kaybolması gibi sadece ara yüzü ilgilendiren kodlar "Ara yüz mantığı" olarak adlandırılır ve Elektronik Formlarda kodlanmalıdır. Elektronik Form tasarım ara yüzünde bulunan sihirbaz ile bu kodların çok büyük bir bölümü üretilmektedir.
- Business Logic: (İş Mantığı) Herhangi bir kullanıcı seçimi gerektirmeyen, son kullanıcının mantığını bilmesine gerek duyulmayan, ara yüzde çalıştığında zaman kaybı olarak görülebilecek, gerçek iş kurallarını içeren kodlar iş mantığı olarak adlandırılır.
Bu 2 kod parçacığı keskin bir bıçak gibi ikiye ayrılamaz, "Ara yüzlerde (Elektronik Formlarda) ne kadar az kod bulunur ise o kadar sağlıklı olur" yaklaşımı genel prensiptir.
Makro aktivitesinin 1 giriş ve 1 çıkışı bulunur.
Genel
Aktivitelerin genel özelliklerine şu bölümden erişilebilir.
Makro
Bu sekme içerisinde C# dilinde kod yazılabilir. Kod yazım esnasında PaperWork geliştirme katmanı ve standart .NET kütüphaneleri metodları kullanılabilir. Bu bölümün intellisense özelliği bulunur. Sekmenin yanında bulunan kavuniçi ikona tıklanarak kod yazma ekranı tam ekran haline getirilebilir.
Makro ve Kural aktivitelerinde aşağıda belirtilen komut ve değişkenler de kullanılabilir. Daha detaylı bilgi Eğitimler sayfasında kısa yolu bulunan Geliştirme Katmanı Yönetim Kılavuzunda verilmiştir.
String actId | (Activity ID) İş adımının bulunduğu adımın numarasıdır. |
string TypeName | Akışın Tip Adı. |
string WorkflowId | Çalışan İş Akışının Nesne Numarası. (Instance) |
string ProcessId | Çalışan İş Akışı Tasarımının Nesne Numarası(Tasarım) |
string WorkItemId | Bulunulan adımın Nesne Numarası. |
string CalendarId | İş Akışının Takvim Nesne Numarası. |
string AttachmentId | İş Akışının var ise ekinin Nesne Numarası |
Paperwork.Types.ITypes FormData | Akış tipinin bilgilerinin bulunduğu sınıf. |
MainRule RuleEngine | Kural Motoru |
object getAttribute(string AttributeName) | Akış Tipinin alanlarının bilgilerini almak için kullanılır. AttributeName, alınacak alanın adıdır. |
object ConvertData(object value, string DestType) | Bir veri tipini başka bir veri tipine çevirmek için kullanılır. |
void Log(string message) | Tarihçe oluşturmak için kullanılır. WorkFlow Servisi loglarına yansır. |
bool LoadObject() | Akış tipi verisini yükler. |
ITypes LoadObject(string DocId, string typeName) | Verilen parametreye göre bir Tip verisini yükler. |
bool SaveObject() | Yüklenen akış verisini değişiklikler sonucu kaydeder. |
bool SaveObject(ITypes DocData) | Parametrede verilen tipin verileri değiştirildikten sonra kaydeder. |
bool LoadAttachment() | İş Akışı eki olan tipin verilerini yükler. |
bool SaveAttachment() | İş Akışı eki olan tipin verilerini değişiklik sonrası kaydeder. |
String getPerformer() | Verilen parametrelere göre akışın bulunduğu adıma göre istenilen kullanıcının bulunmasını sağlar. Aşağıdaki PERFORMERType isimli enumaration, bulunabilecek kullanıcıları içerir. actId yukarıda da belirtilen sabit bir değerdir. Aşağıdaki bölümde |
public enum PERFORMERType
{
[Description("Onceki Kullanıcı")]
PreviousUser = 1,
[Description("Onceki Kullanıcı Yoneticisi")]
PreviousUserManager = 2,
[Description("Akış Sahibi")]
WorkflowOwner = 6,
[Description("Akış Sahibi Yöneticisi")]
WorkflowOwnerManager = 7, }
Nasıl Yaparım?
- Makro adımında yazılabilecek bazı senaryolar için şu sayfa incelenebilir.
- Elektronik formlarda kod yazımına yönelik örnekler için şu sayfa incelenebilir.
- Farklı veri tabanlarından DBPlugin ile işlemler için şu sayfayı inceleyebilirsiniz.