Skip to main content

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:

AyarAçıklama
EnableSendMailE-posta gönderilsin mi.
EnablePushNotificationAnlık (push) bildirim gönderilsin mi.
MailSubject / MailMessageGidecek e-postanın konusu ve gövdesi (çok dilli sözlük).
NotificationCaption / NotificationMessageBildirimin başlığı ve metni (çok dilli).
IncludeFlowInitiatorAkışı başlatan kişi de alıcı listesine eklensin mi.
IncludeDocumentApproversOrRefusersBelgeyi onaylayan/reddeden kişiler de alıcı olsun mu.
ConstantPositions / UserGroups / DepartmentBasedUserGroups / VariablePositions / DetailObjects / TableObjectsAlıcıların sabit pozisyon, kullanıcı grubu, birim, değişken ya da grid detayından çözüldüğü alternatif kaynak listeleri.
DocumentsMesaja 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");
Konu ve mesaj nereden gelir?

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ı

  • AddConstantUser bir CSP kullanıcı kimliği (USERID/sicil) bekler; datasource'tan gelen değeri Convert.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ızca AddConstantUser görülüyor).
  • Akışı başlatan kişiye her zaman haber gitsin istiyorsanız, kodda eklemek yerine IncludeFlowInitiator ayarını true yapmanız yeterlidir.
  • Send(...) ve SendInformationWebNotification(...) metotları engine geri çağrılarıdır (UserInfo + ProcessRequestItem alı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).