ASP.NET WorkFlow with parameters






1.86/5 (6 votes)
Dec 19, 2006

41293

852
Use workflows with parameters in asp.net
Introduction
Simple Web Site ASP.NET using Microsoft Worflow Fundation. Parameters - Web Page - WorfFlow.
Using the code
Definicion Runtime in Global.asax
void Application_Start(object sender, EventArgs e) { // Code that runs on application startup System.Workflow.Runtime.WorkflowRuntime workflowRuntime = new System.Workflow.Runtime.WorkflowRuntime(); System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService manualService = new System.Workflow.Runtime.Hosting.ManualWorkflowSchedulerService(); workflowRuntime.AddService(manualService); workflowRuntime.StartRuntime(); Application["WorkflowRuntime"] = workflowRuntime; } void Application_End(object sender, EventArgs e) { // Code that runs on application shutdown System.Workflow.Runtime.WorkflowRuntime workflowRuntime = Application["WorkflowRuntime"] as System.Workflow.Runtime.WorkflowRuntime; workflowRuntime.StopRuntime(); }
Parameters
//Datos del Global.asax wr = Application["WorkflowRuntime"] as WorkflowRuntime; manualScheduler = wr.GetService(typeof(ManualWorkflowSchedulerService)) as ManualWorkflowSchedulerService; //parametros al workflow Dictionary<string, object> parameters = new Dictionary<string, object>(); parameters.Add("Valor", Int32.Parse(this.valor.Text)); //Eventos del WorkFlow wr.WorkflowCompleted += new EventHandler<WorkflowCompletedEventArgs>(wr_WorkflowCompleted); wr.WorkflowTerminated += new EventHandler<WorkflowTerminatedEventArgs>(wr_WorkflowTerminated); Type type = typeof(WorkflowLibrary1.Workflow1); WorkflowInstance wi = wr.CreateWorkflow(type, parameters); wi.Start(); //Ejecutar workflow manualScheduler.RunWorkflow(wi.InstanceId);
WorkFlow
namespace WorkflowLibrary1 { public sealed partial class Workflow1: SequentialWorkflowActivity { public Workflow1() { InitializeComponent(); } private string m_Resultado="Rechazado"; private int m_Valor; private DateTime m_FechaHora = DateTime.Now; public string Resultado { get { return m_Resultado; } } public int Valor { get { return m_Valor; } set { m_Valor = value; } } public DateTime FechaHora { get { return m_FechaHora; } } private void ExecuteCodeActivity1(object sender, EventArgs e) { if (m_Valor > 100) { m_Resultado = "Aceptado"; } } } }
WorkFlow
Simple use worflow in ASP.net. Using Parameters