Runtime Workflow

Hey Gwener's, What's Up!
Workflow Foundation mempunyai 2 cara untuk eksekusi workflow dari suatu activity. Melaui host tersendiri atau langsung pada saat runtime. Untuk host biasanya kita harus membuat service sendiri, Namun team workflow sudah menyediakan farm dari workflow menager yang bisa digunakan untuk publish workflow. Workflow tersebut independent dan dijalankan melalui service bisa juga melalui HTTP. Selengkapnya sobat bisa baca disini Cara Publish Workflow using Workflow Manager
Pada ulasan kali saya akan menjelaskan bagaimana membuat runing workflow langsung pada saat runtime. Artinya tidak perlu host dan database yang diperlukan. Cara ini bisa sobat gunakan jika memang workflow tersebut tidak memerlukan LOG ataupun tidak proses waiting yang harus dilakukan. Sehingga workflow akan berjalan dari awal sampai akhir secara berurutan.
WorkflowApplication merupakan bagian dasar dari proses eksekusi workflow. Sobat bisa mendapatkan objek ini pada namespace System.Activities. Dengan objek ini sobat bisa melakukan manipulasi dan berinterasi secara runtime dengan suatu workflow. Berikut script yang bisa sobat gunakan untuk running workflow.
            AutoResetEvent syncEvent = new AutoResetEvent(false);
            WorkflowApplication app = new WorkflowApplication(CreateWorkflow()); // Create activity for workflow
            app.Idle = delegate(WorkflowApplicationIdleEventArgs e)
            {
                syncEvent.Set();
            };
            bool completed = false;
            app.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
            {
                syncEvent.Set();
                completed = true;
                Console.WriteLine("Workflow is Complete");
            };

            // start the application
            app.Run();
            syncEvent.WaitOne();
Perhatikan script diatas. WorfklowApplication akan sinkron dengan AutoResetEvent sehingga setiap activitas akan terhubung antar console maupun workflow aplication. Perlu saya tegaskan lagi antara workflow dan activity adalah hal bisa dibilang sama. Setiap activity bisa dianggap sebagai workflow. Nah, untuk pejelasan ditail baca disini Perbedaaan workflow dan activity pada workflow foundation

Workflow yang dijalankan pada saat runtime memang memiliki beberapa kekurang seperti, tidak ada management workflow. Sehingga proses application akan terus berlangsung sampai workflow tersebut selesai dieksekusi. Selain itu juga tidak ada LOG yang diamati maupun instance yang sedang active.
Saran terbaik untuk memanagement workflow adalah membuat host tersendiri yang memfasilitasi untuk interaksi dan report terhadap workflow tersebut. Salah fitur yang dihadirkan oleh team workflow foundation adalah memunculkan Workflow Manager seperti yang saya sebutkan diatas. Workflow Manager lebih mudah memanage instance yang berjalan dan juga bisa digunakan menjalankan berbagai macam workflow secara bersamaan. Karena bersifat farm workflow manager terpisah dari aplikasi yang sedang dibuat. Sehingga workflow bisa digunakan untuk berbagai client yang berbeda. Jika sobat belum memiliki workflow manager silahkan baca artikel berikut Cara install Workflow Manager 1.0

4 comments:

  1. Running workflow untuk runtime, tidak perlu hosting

    ReplyDelete
  2. Running workflow untuk runtime, tidak perlu hosting

    ReplyDelete
  3. izin nyimak dulu mas, saya belum paham tentang runing workflow foundation on runtime

    ReplyDelete
    Replies
    1. Ok mas yono, workflow bisa dijalankan menggunakan host terpisah atau langsung dijalan pada saat runtime. keduanya memiliki fungsi yang berbeda. Saya kira begitu gambarannya

      Delete