Aracılığıyla paylaş


Durum Makinesi İş Akışları

Durum makinesi, program geliştirmeye yönelik iyi bilinen bir paradigmadır. Etkinliğin StateMachine yanı sıra State, Transitionve diğer etkinlikler de durum makinesi iş akışı programları oluşturmak için kullanılabilir. Bu konu, durum makinesi iş akışları oluşturmaya genel bir bakış sağlar.

State Machine İş Akışına Genel Bakış

Durum makinesi iş akışları, iş akışınızı olay temelli bir şekilde modelleyebileceğiniz bir modelleme stili sağlar. Etkinlik StateMachine , durum makinesinin mantığını oluşturan durumları ve geçişleri içerir ve bir etkinliğin kullanılabilmesi için her yerde kullanılabilir. Durum makinesi çalışma zamanında birkaç sınıf vardır:

Durum makinesi iş akışı oluşturmak için, bir etkinliğe StateMachine durumlar eklenir ve durumlar arasındaki akışı denetlemek için geçişler kullanılır. Aşağıdaki ekran görüntüsü, Başlarken Öğreticisi adımının Nasıl Yapılır: Durum Makinesi İş Akışı Oluşturma kısmında üç durum ve üç geçiş ile bir durum makinesi iş akışını göstermektedir. Başlatma Hedefi ilk durumdur ve iş akışındaki ilk durumu temsil eder. Bu, Başlangıç düğümünden ona giden satır tarafından belirlenir. İş akışındaki son durum FinalState olarak adlandırılır ve iş akışının tamamlandığı noktayı temsil eder.

Tamamlanmış durum makinesi iş akışını gösteren çizim.

Durum makinesi iş akışının bir ve yalnızca bir başlangıç durumu ve en az bir son durumu olmalıdır. Son durum olmayan her durumun en az bir geçişi olmalıdır. Aşağıdaki bölümlerde durum ve geçiş oluşturma ve yapılandırma işlemleri ele alınıyor.

Durumlar Oluşturma ve Yapılandırma

A State , bir durum makinesinin içinde bulunabileceği bir durumu temsil eder. State öğesini bir iş akışına eklemek için, Durum etkinlik tasarımcısını State Machine bölümünden, Araç Kutusu'ndan sürükleyin ve Windows İş Akışı Tasarımcısı yüzeyindeki bir StateMachine etkinliğine bırakın.

Araç Kutusu'nun Durum Makinesi bölümünün ekran görüntüsü.

Bir durumu İlk Durum olarak yapılandırmak için, duruma sağ tıklayın ve İlk Durum Olarak Ayarla'yı seçin. Ayrıca, geçerli bir başlangıç durumu yoksa, iş akışının en üstündeki Başlangıç düğümünden istenen duruma bir çizgi sürüklenerek ilk durum belirlenebilir. Bir StateMachine etkinlik iş akışı tasarımcısına bırakıldığında, state1 adlı ilk durumla önceden yapılandırılır. Durum makinesi iş akışı, bir ve yalnızca bir başlangıç durumuna sahip olmalıdır.

Durum makinesinde sonlandırıcı durumu temsil eden bir durum, son durum olarak adlandırılır. Özelliği IsFinal olarak ayarlanmış, true etkinliği olmayan ve kendisinden kaynaklanan hiçbir geçişi bulunmayan bir durum son durumdur. Bir iş akışına son durum eklemek için, State Machine bölümünden bir FinalState etkinlik tasarımcısını Araç Kutusu'ndan sürükleyin ve Windows İş Akışı Tasarımcısı yüzeyinde bir StateMachine etkinliğe bırakın. Durum makinesi iş akışının en az bir son durumu olmalıdır.

Giriş ve Çıkış Eylemlerini Yapılandırma

Bir durum bir Entry ve bir Exit eylemine sahip olabilir. (Son durum olarak yapılandırılmış bir durumda yalnızca bir giriş eylemi olabilir). bir iş akışı örneği bir duruma girdiğinde, giriş eylemindeki tüm etkinlikler yürütülür. Giriş eylemi tamamlandığında, durum geçişleri için tetikleyiciler planlanır. Başka bir duruma geçiş onaylandığında, durum aynı duruma geri dönse bile çıkış eylemindeki etkinlikler yürütülür. Çıkış eylemi tamamlandıktan sonra, geçiş eylemi gerçekleştirilir, ardından yeni duruma geçilir ve yeni durumun giriş eylemleri zamanlanır.

Uyarı

Durum makinesi iş akışında hata ayıklarken, kesme noktaları kök durum makinesi etkinliğine ve iş akışı içindeki durumlara yerleştirilebilir. Kesme noktaları doğrudan geçişlere yerleştirilmeyebilir, ancak durumlar ve geçişler içinde yer alan etkinliklere yerleştirilebilir.

Geçişleri Oluşturma ve Yapılandırma

Tüm durumların (son durum hariç) en az bir geçişi olmalıdır, ancak son durumda herhangi bir geçiş olmayabilir. Durum makinesi iş akışına durum eklendikten sonra geçişler eklenebilir veya durum bırakıldıktan sonra oluşturulabilir.

Bir adımda bir State eklemek ve geçiş oluşturmak için, Araç Kutusu içindeki Durum Makinesi bölümünden Durum etkinliğini sürükleyip iş akışı tasarımcısında başka bir durumun üzerine getirin. Sürüklenen State başka bir Stateüzerine geldiğinde, diğerinin Stateetrafında dört üçgen görünür. State dört üçgenden birine bırakılırsa, durum makinesine eklenir ve kaynak State ile bırakılan hedef State arasında bir geçiş oluşturulur. Daha fazla bilgi için bkz . Geçiş Etkinliği Tasarımcısı.

Durum eklendikten sonra geçiş oluşturmak için iki seçenek vardır. İlk seçenek, durumu iş akışı tasarımcısı yüzeyinden sürükleyip mevcut bir durumun üzerine getirmek ve bırakma noktalarından herhangi birine bırakmaktır. Bu, önceki bölümde açıklanan yönteme benzer. Ayrıca fareyi istenen kaynak durumunun üzerine getirerek bir çizgiyi istenen hedef duruma sürükleyebilirsiniz.

Uyarı

Durum makinesindeki tek bir durum, iş akışı tasarımcısı kullanılarak en çok 76 geçiş oluşturabilir. Tasarımcı dışında oluşturulan iş akışları için durum geçişlerinin sınırı yalnızca sistem kaynaklarıyla sınırlıdır.

Bir geçiş, bir Trigger, Condition ve bir Action olabilir. Geçişin Trigger kaynak durumunun Entry eylemi tamamlandığında geçiş zamanlanır. Trigger genellikle bir tür olayın gerçekleşmesini bekleyen bir etkinliktir, ancak herhangi bir etkinlik olabilir veya hiç etkinlik olmayabilir. Trigger etkinlik tamamlandıktan sonra, eğer varsa, Condition değerlendirilir. Etkinlik yoksa Trigger , Condition hemen değerlendirilir. Koşulun değerlendirme sonucu false ise, geçiş iptal edilir ve durumdaki tüm Trigger geçişlerin işlemleri tekrar planlanır. Geçerli geçişle aynı kaynak durumunu paylaşan başka geçişler varsa, bu Trigger eylemler de iptal edilir ve yeniden zamanlanır. Condition olarak değerlendirilirse true, veya koşul yoksa, kaynak durumunun Exit eylemi yürütülür ve ardından geçişin Action eylemi yürütülür. Action tamamlandığında, denetim Hedef durumuna geçer

Ortak bir tetikleyiciyi paylaşan geçişler, paylaşılan tetikleyici geçişleri olarak bilinir. Paylaşılan tetikleyici geçişleri grubundaki her geçiş aynı tetikleyiciye sahiptir, ancak benzersiz bir Condition ve Eylem'e sahiptir. Geçişe ek eylemler eklemek ve paylaşılan bir geçiş oluşturmak için, istenen geçişin başlangıcını gösteren daireye tıklayın ve istenen duruma sürükleyin. Yeni geçiş, ilk geçişle aynı tetikleyiciyi paylaşır, ancak benzersiz bir koşula ve eyleme sahip olur. Paylaşılan geçişler, geçiş tasarımcısının alt kısmındaki Paylaşılan tetikleyici geçişi ekle'ye tıklayarak ve ardından Bağlanmak için Kullanılabilir durumlardan istenen hedef durumu seçerek geçiş tasarımcısı içinden de oluşturulabilir.

Uyarı

Bir geçişin değerlendirmesi Condition (veya paylaşılan tetikleyici geçişinin tüm koşulları ) olarak değerlendirilirse FalseFalse, geçiş gerçekleşmez ve durumdan tüm geçişler için tüm tetikleyiciler yeniden zamanlanır.

Durum makinesi iş akışları oluşturma hakkında daha fazla bilgi için bkz . Nasıl yapılır: Durum Makinesi İş Akışı Oluşturma, StateMachine Etkinlik Tasarımcısı, Durum Etkinlik Tasarımcısı, FinalState Etkinlik Tasarımcısı ve Geçiş Etkinliği Tasarımcısı.

Durum Makinesi Terminolojisi

Bu bölüm, bu konu başlığı boyunca kullanılan durum makinesi kelime dağarcığını tanımlar.

Devlet
Durum makinesi oluşturan temel birim. Durum makinesi belirli bir zamanda tek bir durumda olabilir.

Giriş Eylemi
Duruma girilirken yürütülen bir etkinlik

Çıkış Eylemi
Durumdan çıkılırken yürütülen bir etkinlik

Geçiş
Bir durum makinesinin belirli bir türdeki bir olayın oluşumuna tam yanıtını temsil eden iki durum arasında yönlendirilmiş ilişki.

Paylaşılan Geçiş
Kaynak durumu paylaşan ve bir veya daha fazla geçişle tetikleyen, ancak benzersiz bir koşulu ve eylemi olan bir geçiş.

Tetikleyici
Geçişin gerçekleşmesine neden olan tetikleme etkinliği.

Koşul
Tetikleyici gerçekleştikten sonra true olarak değerlendirilmesi gereken bir kısıtlama, geçişin tamamlanması için gereklidir.

Geçiş Eylemi
Belirli bir geçiş gerçekleştirilirken yürütülen bir etkinlik.

Koşullu Geçiş
Açık koşula sahip bir geçiş.

Özgeçiş
Bir durumdan kendisine geçiş sağlayan bir geçiş.

İlk Durum
Durum makinesinin başlangıç noktasını temsil eden durum.

Son Durum
Bir durum makinesinin tamamlanmasını temsil eden bir durum.

Ayrıca bakınız