2008-09-16 38 views
2

Yapılandırma yönetimi sorumluluklarımın bir parçası olarak her hafta yürüttüğüm tekrarlanabilir bir iş sürecim var. Süreç değişmiyor: Excel'de değişiklik ayrıntılarını indiriyorum, elektronik tabloyu açıp makroya göre ayrıntıları kopyalayın, bir gündem şablonundan bir Word belgesi oluşturun, Excel verileriyle gündemi güncelleyin, Word belgesinden PDF'ler oluşturun ve onları e-postayla gönder. WF'de bir durum makinesi mi yoksa sıralı iş akışı mı kullanmalıyım?

Bu süreç

çok kolay bir dizi iş akışında temsil edilir ve bu otomatik olarak Excel ve Word parçaları işlemek için COM otomasyon ile, bugüne kadar buna sahip nasıl. Dişlilerdeki anahtar, "gündemi oluştur" ve "onu dışarı gönderme" arasında bir insan adımı olduğu ve değişim detaylarını gözden geçirip, bunlarla ilgili soruları formüle ettiğim, gündeme eklenen bir adım. Şu anda işlemin bu parçasını yaparken iş akışını askıya almak için bir Askıya Alma etkinliğim var.

Sorum Ben bir iş sürecinde insan etkileşimi için bir iyi uygulama takip etmek durum makinesi yapmak benim iş akışını yeniden gerekir, ya da askıya aktivite makul bir çözüm mü?

cevap

2

Hayır, bu iş akışı için devlet makinesini kullanmak zorunda olduğunu düşünmüyorum.

SuspendActivity aktivite geçici akım akışı yürütülmesini durdurur: Ama, çünkü Askıya aktivitesini değiştirmek için öneriyoruz. Genellikle, bir yönetici tarafından dikkat gerektirdiğini için SuspendActivity faaliyeti bir hata durumunu yansıtan kullanın.

Bir iş akışı örneği askıya alındığında, bir hata günlüğe kaydedilir. Yönetici SuspendActivity Hata mülkiyet sorunu teşhis yardım etmek hatayı eşlik edecek bir mesaj dize belirtebilirsiniz. Askıya alınmış bir iş akışı örneği, iş akışı yeniden başlatılana kadar sıraya alınan iletilerini almaya devam edebilir. iş akışı örneği için tüm bilgileri kaydedilir ve örneği yeniden başlatıldığında (Resume kullanılarak) yeniden etkinleştirilir. MSDN

bir iş akışı, bir insan görevi eklemek için tipik bir şekilde (ya da dizisi veya durum makinesi), bir dış veri alışverişi arabirimi tanımlar ve bir HandleExternalEvent aktivitesini kullanmaktır (ve muhtemelen bir Kaynak:

CallExternalMethod etkinliği). Daha fazla ayrıntı için aşağıdaki makalelere bakın:

+0

Harika, harika cevap. Çok teşekkür ederim. –

+0

Yararlı linkler, teşekkürler. –

2

Güncelleme: Panos iyi bir noktaya yaklaşık Etkinliği Askıya yapar. İş akışı otomatında farklı bir amacı olduğunu kabul ediyorum. Eğer çeşitli devletler arasındaki iş akışı geçiş hakkında daha fazla endişe edilir düşünüyorsanız

ardından durum makinesi iş akışı idealdir. Aksi takdirde, sıra sadece iyi.

Çözmeyi denemeniz gereken asıl sorun, iş akışının insan etkileşimini (iş parçacığı çevikliğini) beklerken bir iş parçacığı bağlamaması gerektiğidir. İş akışı bu süre zarfında (SqlWorkflowPersistenceService kullanımı gibi) boşta ve devam ediyorsa, sorun olmamalıdır.