Bilgilendirme
Akış bu nesneye ulaştığında, belirlediğiniz kişilere e-posta ve/veya anlık bildirim gönderir. Alıcı listesini akış kodunda doldurursunuz; konu ve mesaj metni ise tasarımcıdaki şablondan gelir. Onay beklemez, akışı durdurmaz: bilgi verir ve bir sonraki adıma geçer.
Ne zaman kullanılır?
Birini akıştaki bir gelişmeden haberdar etmek istediğinizde kullanın: talebi açan kişiye "talebiniz onaylandı" bildirimi, bir birime "yeni kayıt geldi" mesajı gibi. Onay ya da karar gerekiyorsa bu nesne değil, bir onay nesnesi (ör. Pozisyon) kullanın. Yalnızca anlık (push) bildirim yetiyorsa Anlık Bildirim nesnesini tercih edebilirsiniz.
Ayarlar
Bilgilendirme nesnesi seçildiğinde tasarımcıda şu başlıklar düzenlenir:
| Ayar | Açıklama |
|---|---|
EnableSendMail | E-posta gönderilsin mi. |
EnablePushNotification | Anlık (push) bildirim gönderilsin mi. |
MailSubject / MailMessage | Gidecek e-postanın konusu ve gövdesi (çok dilli sözlük). |
NotificationCaption / NotificationMessage | Bildirimin başlığı ve metni (çok dilli). |
IncludeFlowInitiator | Akışı başlatan kişi de alıcı listesine eklensin mi. |
IncludeDocumentApproversOrRefusers | Belgeyi onaylayan/reddeden kişiler de alıcı olsun mu. |
ConstantPositions / UserGroups / DepartmentBasedUserGroups / VariablePositions / DetailObjects / TableObjects | Alıcıların sabit pozisyon, kullanıcı grubu, birim, değişken ya da grid detayından çözüldüğü alternatif kaynak listeleri. |
Documents | Mesaja eklenecek belgeler. |
Akıştaki yeri
Bilgilendirme, akışı durdurmayan bir bildirim noktasıdır: önceki adım tamamlanınca devreye girer, alıcılara mesajı gönderir ve hemen bir sonraki adıma geçilir. Alıcı listesini genellikle bu nesnenin kendi kod bloğunda ya da bir önceki Fonksiyon adımında, çoğu zaman bir datasource sorgusunun sonucundan doldurursunuz.
Kod örnekleri
Alıcılar akış kodunda nesnenin adıyla eklenir. Sunucu (akış) kodu turuncu çerçevelidir.
Sorgudan gelen kişileri alıcı yapma
// Bir roldeki kullanıcıları çek ve hepsini alıcı olarak ekle
var result = GetOnayciByRol("BYDLSNS");
if (result == null || result.Count == 0)
throw new Exception("Alıcı bulunamadı.");
foreach (var item in result)
Bilgilendirme1.AddConstantUser(Convert.ToInt32(item.USERID));
Tek bir kişiyi alıcı yapma
// Sicilden bulunan tek kullanıcıyı alıcı yap
Bilgilendirme1.AddConstantUser(Convert.ToInt32(user[0].USERID));
// İstersen kod ve ad ile birlikte de ekleyebilirsin
Bilgilendirme1.AddConstantUser(1024, "AHMET", "Ahmet Yılmaz");
MailSubject ve MailMessage çok dilli sözlüklerdir ve tasarımcıdan doldurulur. Kodda yalnızca alıcıları eklemeniz yeterlidir; metni şablondan engine yerleştirir.
İpuçları
AddConstantUserbir CSP kullanıcı kimliği (USERID/sicil) bekler; datasource'tan gelen değeriConvert.ToInt32(...)ile çevirin.- Bir pozisyonu komple alıcı yapmak için
AddConstantPosition(...)kullanın. - Listeyi yeniden kurmanız gerekirse
ClearMembers()ile mevcut alıcıları temizleyebilirsiniz. TODO: doğrulanacak (örnekte yalnızcaAddConstantUsergörülüyor). - Akışı başlatan kişiye her zaman haber gitsin istiyorsanız, kodda eklemek yerine
IncludeFlowInitiatorayarınıtrueyapmanız yeterlidir. Send(...)veSendInformationWebNotification(...)metotları engine geri çağrılarıdır (UserInfo+ProcessRequestItemalır); bunları akış kodundan siz çağırmazsınız. TODO: doğrulanacak.
Doğrulanmış kod arayüzü (FlowMail)
Alıcı ekleme: AddConstantUser(Int64), AddConstantUser(Int64, string, string), AddConstantPosition(Int64), AddConstantPosition(Int64, string, string), ClearMembers()
Okuma: Users → List<UserInfo>, Positions → List<UserPosition>, Members → IFlowMembersOptions
Mesaj/bildirim ayarları: EnableSendMail, EnablePushNotification, MailSubject, MailMessage, NotificationCaption, NotificationMessage, IncludeFlowInitiator, IncludeDocumentApproversOrRefusers, Documents, Attachments (salt okunur).
Alternatif alıcı kaynakları: ConstantPositions, DepartmentBasedUserGroups, DetailObjects, TableObjects, UserGroups, VariablePositions.
Engine geri çağrıları (akış kodundan çağrılmaz): Send(UserInfo, ProcessRequestItem), SendInformationWebNotification(UserInfo, ProcessRequestItem).
Kaynak: synergy-csp references/flow-objects.md (FlowMail, AddConstantUser örnekle doğrulanmış; Send/ClearMembers ve alternatif kaynaklar dump-only).