logo


Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
mehmetzekikir  
#1 Gönderildi : 10 Mayıs 2014 Cumartesi 07:42:02(UTC)
mehmetzekikir

Sıralama: Administration

Gruplar: Administrators
Katılan: 6.05.2014(UTC)
Mesajlar: 670

19 Kere Teşekkür Etti.
152 Mesajına Toplam 253 Kere Teşekkür Edildi.
Bilgehan Yıldıza Değerli bilgileri için teşekkür ederiz,

WORKFLOW FOUNDATION VE CODE ACTIVITY

CodeActivity abstract bir class olup, Custom Activityler oluşturabilmek için kullanırız

Projeye Workflow — >AddNew Item– >Worklow — >CodeActivity seçerek bize şablon bir class üretir veya projemize bir class ekledikten sonra FirstCustomWorkflow : CodeActivity oluşturduğumuz sınıfımızı CodeActivity sınıfından türeterek de bu işlemi yapabiliriz.

UserPostedImage

Bu şekilde seçilince classımız otomatik olarak aşağıdaki şablondaki gibi yaratılır

Kod:

public sealed class FirstCustomWorkflow : CodeActivity

{

// Define an activity input argument of type string

public InArgument<string> Text { get; set; }

// If your activity returns a value, derive from CodeActivity<TResult>

// and return the value from the Execute method.

protected override void Execute(CodeActivityContext context)

{

// Obtain the runtime value of the Text input argument

string text = context.GetValue(this.Text);

}

}


Senaryomuz şöyle olsun İki Sayıyı toplayarak hem sonucu bir Output parametresine ,hemde ayrıca execute edilirken dönecek sonucuda ayrı bir output parametresine yazacak bir Code Activity yazalım.Bunun için aşağıdaki 4 tane argumanı projemize ekliyoruz

UserPostedImage

Eğer Custom Activity execute metodundan bir değer dönecekse classtan türetme yaparken geri dönüş tipimizi belirtmemiz gerekiyor FirstCustomWorkflow : CodeActivity<string> gibi Gelen Input Parametrelerinin değerini okuyabilmek için context.GetValue,benzer şekilde Parametrelere değer atayabilmek için context.SetValue kodlarını kullanıyoruz.

Kod:

public sealed class FirstCustomWorkflow : CodeActivity<string>

{

// Input Argumentlar tanımlamak için

public InArgument<int> Number1 { get; set; }

public InArgument<int> Number2 { get; set; }

// If your activity returns a value, derive from CodeActivity<TResult>

// and return the value from the Execute method.

protected override string Execute(CodeActivityContext context)

{

// Obtain the runtime value of the Text input argument

int Sayi1 = context.GetValue(this.Number1);//context.GetValue<int>(this.Number1);

int Sayi2=context.GetValue<int>(this.Number2);

int total = Sayi1 + Sayi2;

context.SetValue(MyResult,”Sonuc:” + total.ToString());

return “Execute Sonucu dönecek Mesaj Değerimiz”;

}

//Output Argumentlar tanımlamak için

public OutArgument<string> MyResult { get; set; }


Bu şekilde classımızı build ettikten sonra artık hazırladığımız Custom Flow Toolboxtan kullanmamıza hazır hale geliyor

UserPostedImage

Daha sonra Activity Designerımızın içinde Sequence kontrolü atıyoruz ve içine bu Custom flowumuzu sürükle bırak yapıyoruz.Bu flow çalıştığında ekrana custom workflowdan çıkış argümanını ve execute edildiği andaki return değerini ekrana yazdırıyor olacağız.

UserPostedImage

Custom workflowumuzu tıklayarak bu flowdaki argumanlarımızı activityimizin genelindeki parametrelerle eşleştirmemiz gerekmektedir.

UserPostedImage

Kod:

class Program

{

static void Main(string[] args)

{

int Number1 = 5;

int Number2 = 10;

Dictionary<string, object> argumentlist = new Dictionary<string, object>();

argumentlist.Add(“Number1″, Number1);

argumentlist.Add(“Number2″, Number2);

WorkflowInvoker.Invoke(new Calculator(), argumentlist);

Console.ReadLine();

}

}


Yukarıdaki Program csdede çalışacak oluşan activity ve input argumentların değerlerini belirterek örneğimizi tamamlıyoruz.Ekrandada görüldüğümü gibi Sonuc:15 Output Argumentin değeri Execute sonucu dönecek Mesaj Değerimiz yazan satır ise Custom workflowun return value dur.

UserPostedImage

Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınız

twitter.com/dbakademi
Dua ve teşekkür en büyük servetlere bedel...


Bu konudaki kullanıcılar
Guest
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.