Workflow class

Parent Previous Next

The Workflow object represents a workflow definition.


Namespace:

IYOPRO.Api

Assembly:

IYOPRO.Api (in IYOPRO.Api.dll)


Syntax

       private class Workflow()


Members

ProcessInstance CreateProcessInstance()

Creates a new process instance based on the workflow definition.

void GetProcessInstances(List<string> names,DateTime startDate, DateTime endDate,ProcessInstanceState states, List<string> attributes, object userdata = null)

Retrieves process instances for the given workflow.

Names is an optional filter for process instance names.

StartDate and endDate are filters and specify the time range for the finishedDate of these process instances, which are finished.

States specifies, at what state the retrieved instances must be.

Attributes specify a list of process instance variable names, which schould be retrieved.

Userdata will be provided in the ProcessInstanceListLoadedEventEventArgs

int Id

Gets the Id of the workflow.

string Name

Gets the name of the workflow.

string PlainDescription

Gets the description of the Workflow

event ProcessInstanceListLoadedEvent ProcessInstanceListLoaded;

The ProcessInstanceListLoaded event is triggered if the GetProcessInstances method has finished.



Sample



// Load Workflow definition and create process instance

Workflows wf = session.Workflows;


// STEP 1: Load the Workflow

Workflows.WorkflowLoadedEvent handler = null;

handler = (s, args) =>

{

wf.WorkflowLoaded -= handler;

Workflow w = args.Workflow;

if (w == null) return;


// STEP 2: Create a Process Instance

ProcessInstance pi = w.CreateProcessInstance();

pi.Attributes.SetValue("email", "noreply@iyopro.com");


// STEP 3: Run the Process Instance

pi.Run();

};

wf.WorkflowLoaded += handler;

wf.Load(workflowid);




// Load process instances of that workflow


Workflows wf = session.Workflows;

Workflows.WorkflowLoadedEvent handler = null;

handler = (s, args) =>

{

wf.WorkflowLoaded -= handler;

Workflow w = args.Workflow;

Workflow.ProcessInstanceListLoadedEvent wlhandler = null;

wlhandler = (wls, wle) =>

{

w.ProcessInstanceListLoaded -= wlhandler;

List<ProcessInstance> instances = wle.Data;

...


};

w.ProcessInstanceListLoaded += wlhandler;

// Load only process instances with the name "my process instance name" 

List<string> names=new List<string>(){ "my process instance name"};

w.GetProcessInstances(names, DateTime.MinValue, DateTime.MaxValue, ProcessInstanceState.All, new List<string>() { "email","myuuid"});

};

wf.WorkflowLoaded += handler;

wf.Load(workflowid);