Ana içeriğe geç

Pozisyon

Akışta bir adımın tek bir kişi tarafından onaylanmasını sağlayan nesnedir. Akış bu nesneye ulaştığında, atadığınız kullanıcıya bir onay isteği düşer ve kişi onaylayana (ya da reddedene) kadar akış bu adımda bekler.

Ne zaman kullanılır?

Bir adımda yalnızca bir onaycı olduğunda kullanın: bir yöneticinin talebi onaylaması, bir kontrolörün belgeyi incelemesi gibi. Aynı anda birden çok kişinin onayı gerekiyorsa Pozisyon Grubu nesnesini tercih edin.

Ayarlar

Pozisyon nesnesi seçildiğinde tasarımcıda şu başlıklar düzenlenir:

AyarAçıklama
AutoOpenApprovalOptionOnay ekranının kullanıcıya otomatik açılıp açılmayacağı.
DoNotSendRequestIfProcessedKişi belgeyi daha önce işlediyse yeniden istek gönderilmez.
RequestIsNecessaryIfDocumentChangedBelge değiştiyse onayın tekrar istenmesini sağlar.
HideApporoverInHistoryOnaycıyı akış geçmişinde gizler.
ShowInFlowHistoryAdımın akış geçmişinde görünüp görünmeyeceği.
TimeoutDay / TimeoutHour / TimeoutMinuteOnay için süre sınırı; süre dolarsa akış yönlendirilebilir.
CalculateUsingHolidays / CalculateUsingWorkingHoursSüre hesabında resmi tatilleri / mesai saatlerini dikkate alır.
EnableSendMail / EnablePushNotificationOnaycıya e-posta ve anlık bildirim gönderilsin mi.
MailSubject / MailMessageOnay isteğiyle gidecek e-postanın konusu ve gövdesi (çok dilli).
ForwardingOptionsOnaycının isteği başkasına yönlendirme (vekâlet) seçenekleri.

Akıştaki yeri

Pozisyon, akışın ortasında bir bekleme noktasıdır: önceki adım tamamlanınca onaycıya istek gider, kişi karar verene kadar akış burada durur, karardan sonra bir sonraki adıma geçilir. Onaycıyı genellikle bu nesnenin kendi _Execute kod bloğunda ya da bir önceki Fonksiyon adımında atarsınız.

Kod örnekleri

Onaycı, akış kodunda nesnenin adıyla atanır. Sunucu (akış) kodu turuncu çerçevelidir.

Onaycıyı atama

// Bir kullanıcı kimliğiyle ata (datasource'tan gelen sicil/CSP id)
p_Mudur.SetFromUser(Convert.ToInt32(mudurSicilleri[0]));

// Akışı başlatan kişiyi onaycı yap
p_Mudur.SetUserFromFlowInitiator();

// Sabit bir pozisyonu onaycı yap
p_Mudur.SetConstantPosition(1024, "MUD", "Birim Müdürü");

Slottaki kişiyi geri okuma

// Bu pozisyona atanmış kullanıcının kimliği
long kullaniciId = p_Mudur.GetUserInfo().Id;
Tek kişi mi, grup mu?

Tek bir onaycı için Pozisyon, aynı adımda birden çok onaycı için Pozisyon Grubu kullanın. Pozisyon Grubu'nda onaycılar AddConstantUser / ClearGroup ile doldurulur; Pozisyon'da tek kişi SetFromUser ile atanır.

İpuçları

  • SetFromUser bir CSP kullanıcı kimliği bekler; datasource'tan gelen değeri Convert.ToInt32(...) / Convert.ToInt64(...) ile çevirin.
  • Onaycıyı koşula göre belirleyeceksiniz (ör. tutara göre farklı yönetici): atamayı bir Fonksiyon adımında yapın.
  • AutoOpenApprovalOption bu nesnede true/false değeridir (Pozisyon Grubu'nda ise bir seçenek kodudur).
  • Bu nesnede EventFormId diye bir özellik yoktur; olay/form kimliğini pozisyon üzerinden aramayın.
Doğrulanmış kod arayüzü (FlowPosition)

Atama metotları: SetFromUser(Int64), SetFromPosition(Int64), SetConstantUser(Int64, string, string), SetConstantPosition(Int64, string, string), SetUserFromLogonUser(), SetUserFromFlowInitiator(), SetUserFromFlowInitiatorManager(string), SetUserFromImpersonatingUser(), SetUserFromVariable(Variable), SetPositionFromVariable(Variable, string), SetReferredUser(UserInfo), SetDepartmentManagerUserFromDepartment(FlowDepartment)

Okuma: GetUserInfo() → UserInfo, GetUserInfoWithPositionId()

Özellikler: Id, Code, Description, Email (salt okunur), ValueType, ForwardingOptions, Events (salt okunur), EventsToCheck + miras alınan onay/zaman aşımı/mesaj ayarları.

Kaynak: synergy-csp references/flow-objects.md (FlowPosition, örnekle doğrulanmış) + Bimser.CSP.Workflow.Api.api.txt.