SaaS CMS has officially launched! Learn more now.

Class WorkflowDefinition

Base class for Workflow definitions

Inheritance
System.Object
WorkflowDefinition
Implements
Inherited Members
System.Object.ToString()
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
Namespace: EPiServer.WorkflowFoundation
Assembly: EPiServer.WorkflowFoundation.dll
Version: 7.19.2
Syntax
public abstract class WorkflowDefinition : IItem, ISecurable
Remarks

implements IItem so definition can be stored in Object Store

Constructors

WorkflowDefinition(DefinitionType, String, String)

Creates a new instance of a workflow definition.

Declaration
protected WorkflowDefinition(DefinitionType definitionType, string name, string description)
Parameters
Type Name Description
DefinitionType definitionType

The type of the defintion (xoml or compiled)

System.String name

The name of the definition (must be unique)

System.String description

The description of the definition

Remarks

New instances should not be created directly, use RegisterDefinition on IDefinitionHandler to get definition

WorkflowDefinition(DefinitionType, String, String, AccessControlList)

Initializes a new instance of the WorkflowDefinition class.

Declaration
protected WorkflowDefinition(DefinitionType type, string name, string description, AccessControlList acl)
Parameters
Type Name Description
DefinitionType type

The type of the defintion (xoml or compiled)

System.String name

The name of the definition (must be unique)

System.String description

The description of the definition

AccessControlList acl

The access control list for the definition

Remarks

New instances should not be created directly, use RegisterDefinition on IDefinitionHandler to get definition

WorkflowDefinition(WorkflowDefinition)

Initializes a new instance of the WorkflowDefinition class. used for copy

Declaration
protected WorkflowDefinition(WorkflowDefinition definition)
Parameters
Type Name Description
WorkflowDefinition definition

The definition.

Properties

ACL

The access control list for the definition

The settings that will be checked for is:

Read - States who will see instances in e.g. instance lists

Create - States who have rights to manually create instances of definition

Delete - States who can terminate a running instance

Edit - States who can edit a running instance

Declaration
public AccessControlList ACL { get; set; }
Property Value
Type Description
AccessControlList

DefinitionId

Gets the definition id.

Declaration
public Guid DefinitionId { get; }
Property Value
Type Description
System.Guid

The definition id.

DefinitionName

The name of this Workflow definiton

Declaration
public string DefinitionName { get; set; }
Property Value
Type Description
System.String

DefinitionType

The type of the Workflow, Compiled or Xoml

Declaration
public DefinitionType DefinitionType { get; }
Property Value
Type Description
DefinitionType

Description

The description of this Workflow definiton

Declaration
public string Description { get; set; }
Property Value
Type Description
System.String

FileSystemStartEvents

Which file system that will start an instance of the Workflow. Can be ored

Declaration
public WorkflowFileSystemEvent FileSystemStartEvents { get; set; }
Property Value
Type Description
WorkflowFileSystemEvent

Id

Id for object store storage

Declaration
public object Id { get; }
Property Value
Type Description
System.Object

Layout

The layout for the definition, if any. Can be set for State machine workflows.

Declaration
public abstract string Layout { get; set; }
Property Value
Type Description
System.String
Remarks

It's only usage is to be able to display the state machine with correct layout.

Name

Name for object store, must be unique

Declaration
public string Name { get; }
Property Value
Type Description
System.String

PageRoot

Below PageRoot startevents are applied. PageReference.Empty interprets as everywhere

Declaration
public PageReference PageRoot { get; set; }
Property Value
Type Description
PageReference
Remarks

PageReference.EmptyReference is default value

PageStartEvents

Which episerver event(s) that will start an instance of the Workflow. Can be ored

Declaration
public WorkflowPageEvent PageStartEvents { get; set; }
Property Value
Type Description
WorkflowPageEvent

PageTypes

States for which pagetypes (given a page related startEvent) the Workflow should be started. If not given Workflow will start for all pagetypes

Declaration
public IList<string> PageTypes { get; set; }
Property Value
Type Description
System.Collections.Generic.IList<System.String>

PageTypesString

',' separted list of page types

Declaration
public string PageTypesString { get; set; }
Property Value
Type Description
System.String

StartParameters

Gets or sets the parameters that will be passed to created instances.

Declaration
public IDictionary<string, object> StartParameters { get; set; }
Property Value
Type Description
System.Collections.Generic.IDictionary<System.String, System.Object>

The start params.

Remarks

Stored objects should be serializable. If custom types is used their schema should be registered with Object Store

TriggeringDefinitions

If WorkflowCompleted is set as triggering event, this states which definition that should complete to create a new instance of this definition

Declaration
public IList<Guid> TriggeringDefinitions { get; set; }
Property Value
Type Description
System.Collections.Generic.IList<System.Guid>

Type

Gets the compiled type for the workflow definition

Declaration
public abstract Type Type { get; set; }
Property Value
Type Description
System.Type

The type.

TypeFullName

Gets the full name of the type, including assembly

Declaration
public string TypeFullName { get; }
Property Value
Type Description
System.String

The full name of the type.

Methods

ContainsPageType(String)

Checks if definition is set for a specific pagetype

Declaration
public bool ContainsPageType(string pageType)
Parameters
Type Name Description
System.String pageType

A page type to match against

Returns
Type Description
System.Boolean

true if definition applies to page type; otherwise, false.

Copy()

Makes a copy of definition

Declaration
public abstract WorkflowDefinition Copy()
Returns
Type Description
WorkflowDefinition

a copy of definition

GetSecurityDescriptor()

Declaration
public ISecurityDescriptor GetSecurityDescriptor()
Returns
Type Description
ISecurityDescriptor

IsBelowRootPage(PageReference)

checks wetter a given pagelink is below the pageroot

Declaration
public bool IsBelowRootPage(PageReference pageLink)
Parameters
Type Name Description
PageReference pageLink

The page link to match

Returns
Type Description
System.Boolean

true if given page is below specified pageroot; otherwise, false.

Remarks

PageReference.Empty interprets as everywhere

Implements

Extension Methods