Skip to main content

Akış Tetikleyici

Çalışmakta olan bir akışın içinden başka bir akışı başlatan nesnedir. Mevcut akışı bir üst (parent) akış gibi düşünün; bu nesne, hedef olarak seçtiğiniz akışı yeni bir süreç olarak tetikler ve dilerseniz ona parametre geçirebilirsiniz. Başlatılan akışlar, tetikleyen sürece çocuk (child) süreç olarak bağlanır.

Ne zaman kullanılır?

Bir akış adımına gelindiğinde ikinci, bağımsız bir sürecin de başlamasını istediğinizde kullanın. Örneğin bir satınalma talebi onaylandığında ayrı bir tedarikçi bilgilendirme akışını ya da bir muhasebe kayıt akışını tetiklemek için. Hedef akışa kayıt/talep bilgisini parametre olarak geçirerek iki süreci birbirine bağlarsınız.

Ayarlar

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

AyarAçıklama
FlowId / FlowNameTetiklenecek hedef akışın kimliği ve adı.
ProjectId / ProjectNameHedef akışın bulunduğu projenin kimliği ve adı.
ParametersHedef akışa geçirilecek parametreler (ad → değer eşlemesi).
StarterUser / StarterUserTypeYeni akışı başlatan kullanıcı ve bu kullanıcının kimlik türü.
SourceTetikleme kaynağı seçenekleri.
TriggeredProcessCountVariableTetiklenen süreç sayısının yazılacağı değişken.
ShowFlowHistoryTetiklemenin akış geçmişinde görünüp görünmeyeceği.

Akıştaki yeri

Akış Tetikleyici, akışın akışını durdurmadan yan bir süreç başlatan bir köprü adımıdır: bu noktaya gelindiğinde hedef akış yeni bir süreç olarak başlatılır, başlatılan akış mevcut sürece çocuk olarak bağlanır ve ana akış kendi yoluna devam eder. Tetiklenen sürecin numarasını ParentProcessId ve ilgili metotlarla geri izleyebilirsiniz.

Kod örnekleri

Bu nesnenin kod arayüzü FlowTrigger sınıfından gelir; sunucu (akış) kodu turuncu çerçevelidir.

TODO: doğrulanacak

Aşağıdaki üyeler dump'tan birebir alınmıştır ve gerçektir, ancak çalışma zamanındaki kullanım biçimi (idiom) henüz örnekle doğrulanmadı. Aşağıdaki kullanım iskeleti yön göstericidir; tetikleme genellikle nesnenin tasarımcı ayarlarıyla yapılandırılır. Kesin imzalar ve çağrı sırası IDE'de doğrulanmalıdır.

// Üst (parent) süreç kimliğini geri oku
long ustSurecId = p_AltAkis.GetParentProcessId();

// Üst süreç kimliğini ayarla
p_AltAkis.SetParentProcessId("12345");

İpuçları

  • Hedef akış ve proje, tasarımcıdaki FlowId/FlowName ve ProjectId/ProjectName ayarlarıyla belirlenir; kod yerine bu ayarları kullanmak en güvenli yoldur.
  • Hedef akışa veri taşımak için Parameters ayarını kullanın; iki süreci bu parametreler üzerinden ilişkilendirirsiniz.
  • Kaç sürecin tetiklendiğini bir akış değişkeninde tutmak için TriggeredProcessCountVariable ayarını doldurun.
  • Tetiklenen süreç, mevcut sürece çocuk olarak bağlanır; ilişkiyi ParentProcessId / GetParentProcessId() üzerinden izleyebilirsiniz.
Doğrulanmış kod arayüzü (FlowTrigger)

FlowTrigger : FlowObjectDesigner<FlowTriggerProperties>: başka bir akışı (parent/child) tetikler.

Özellikler: FlowId (string), FlowName (string), ProjectId (string), ProjectName (string), Parameters (Dictionary<string, IFlowParameter>), StarterUser (string), StarterUserType (UserIdentifierType), TriggeredProcessCountVariable (string), ParentProcessId (Nullable<Int64>, salt okunur), Source (IFlowTriggerSourceOptions), ShowFlowHistory (bool)

Metotlar: Execute(Context workflowUserContext, Action<FlowStartResponse> processResponse) → Task, GetParentProcessId() → Int64, SetParentProcessId(string parentProcessId)

Kaynak: synergy-csp references/flow-objects.md (FlowTrigger, dump-only: doğrulanmış kullanım idiomu yok). Üyeler gerçektir; çalışma zamanı kullanımı IDE'de doğrulanmalıdır.