Parent Previous Next

The ProcessInstance object provides general information about the current Process Instance. These are:


       public class ProcessInstance


int Id

The Id of the process instance

Guid GuId

The GuId of the process instance

string Name

The Name of the process instance

DateTime CreatedAt

The time stamp, the process instance has been created

User Created

This Attribute contains all attributes of the initiator of the process instance. If the process instance has been created anonymously, this attribute will be null.

Roles Roles

A list of roles that have been defined in the process context

string Details

Gets or sets process instance details that are displayed in the overview of running instances

byte[] ReadFileBytes(string filename)

Read the bytes of a process instance file into a byte array

Stream ReadFileToStream(string filename)

Read a process instance file into a stream

void WriteFileBytes(string filename,byte[] bytes)

Write the bytes of a byte array to a process instance file

void WriteFileFromMemoryStream(string filename, System.IO.MemoryStream mem)

Write the content of a memory stream to a process instance file

void GetFileUrl(string filename)

Get the URL required to download a process instance file

void Warn(string message)

Append a warning into the process instance log

void Info(string message)

Append an information to the process instance log

void Error(string message)

Append an error to the process instance log

CAUTION: This will force the process instance to halt in error state

void RegisterCallback(ProcessInstanceCallbackType callbackType, string script, string method)

Register a callback on certain event types.

object GetWorkflowAttribute(string name)

Retrieves a workflow attribute from the instance even if it has not been imported

void SetWorkflowAttribute(string name, object value)

Stores a workflow attribute in the instance even if it has not been imported

string GetFileUrl(string filename)

Retrieve the URL to a file

string GetRepositoryFileUrl(string relativefilename)

Retrieves the repository file url of the given relative file name. The path must be relative based on the workflow file

void TriggerRolesChanged(IEnumerable<string> rolenames)

Method triggers the roles changed event

DataSet GetRootDataSet()

Get the record of the root dataset

DataSet GetCurrentDataSet()

Get the current dataset


       public enum ProcessInstanceCallbackType


None = 0


UserTaskStarted = 1

Indicates that a user task has been started

UserTaskFinished = 2

Indicates that a user task has been finished

UserTaskAccepted = 3

Indicates that a user task has been accepted

ProcessInstanceFinished = 4

Indicates that the process instance has been finished

RolesChanged = 5

Indicates that the roles of the process instance have been modified

TaskFinished = 6

Indicates that a task has been finished

SubProcessStarted = 7

Indicates that the sub process has been started

ProcessInstancePreDelete = 8

Indicates that the process instance is about to be deleted


This sample retrieves the email address of the process instance initiator

mailto = ProcessInstance.Created.Email

This sample modifies the content of a word document. The variable myfile points to a file which may either be uploaded from a web form or which could be retrieved out of a data store.

import clr


from IYOPRO.WORD import *

data = ProcessInstance.ReadFileBytes(myfile)

with Adapter() as word:


  word.ReplaceBookmark('MyBookMark','Hello World')

  stream = word.GetDocumentStream()


This sample registers a callback every time, a user has accepted a user task.


The method that you implement for the callback must have a parameter. This parameter represents an array that enables access to Token and UserTask.

(Example: for UserAccepted(args) it would be args[0] for Token and args[1] for UserTask)