Table of Contents

Class Activity

Namespace
DCR.Workflow
Assembly
DCR.Workflow.dll
public class Activity
Inheritance
Activity
Inherited Members
Extension Methods

Properties

ActivityType

[JsonIgnore]
public ActivityType? ActivityType { get; }

Property Value

ActivityType

AuthorizedReadRoles

public string[] AuthorizedReadRoles { get; }

Property Value

string[]

AuthorizedWriteRoles

public string[] AuthorizedWriteRoles { get; }

Property Value

string[]

Children

[JsonConverter(typeof(ActivityReferencesConverter))]
public IEnumerable<Activity> Children { get; }

Property Value

IEnumerable<Activity>

Data

[JsonConverter(typeof(DataTypeConverter))]
public Type Data { get; }

Property Value

Type

Deadline

public DateTimeOffset? Deadline { get; }

Property Value

DateTimeOffset?

Description

public string Description { get; }

Property Value

string

EffectParameters

[JsonIgnore]
public IEnumerable<KeyValuePair<string, string>> EffectParameters { get; }

Property Value

IEnumerable<KeyValuePair<string, string>>

EffectiveWriteRoles

public string[] EffectiveWriteRoles { get; }

Property Value

string[]

Executed

public DateTimeOffset? Executed { get; }

Property Value

DateTimeOffset?

FormCancelTitle

public string? FormCancelTitle { get; }

Property Value

string

FormSubmitTitle

public string? FormSubmitTitle { get; }

Property Value

string

Id

public string Id { get; }

Property Value

string

InstanceRequiredParameters

[JsonIgnore]
public string[] InstanceRequiredParameters { get; }

Property Value

string[]

IsContainer

public bool IsContainer { get; }

Property Value

bool

IsEnabled

public bool IsEnabled { get; }

Property Value

bool

IsEvent

public bool IsEvent { get; }

Property Value

bool

IsForm

public bool IsForm { get; }

Property Value

bool

IsInForm

public bool IsInForm { get; }

Property Value

bool

IsIncluded

Returns true iff the activity and all its subprocess-ancestors are included.

public bool IsIncluded { get; }

Property Value

bool

Remarks

In academic literature and in earlier engine versions, this property is called 'effectively included'

IsLocallyAccepting

public bool IsLocallyAccepting { get; }

Property Value

bool

IsLocallyIncluded

public bool IsLocallyIncluded { get; }

Property Value

bool

IsLocallyPending

public bool IsLocallyPending { get; }

Property Value

bool

IsMaterial

public bool IsMaterial { get; }

Property Value

bool

IsPastDeadline

public bool IsPastDeadline { get; }

Property Value

bool

IsPending

public bool IsPending { get; }

Property Value

bool

IsProductive

public bool IsProductive { get; }

Property Value

bool

IsSubprocess

public bool IsSubprocess { get; }

Property Value

bool

IsTopLevel

public bool IsTopLevel { get; }

Property Value

bool

Kind

[JsonConverter(typeof(KindConverter))]
public Process.Kind Kind { get; }

Property Value

Process.Kind

Label

public string Label { get; }

Property Value

string

Model

[JsonIgnore]
public Model Model { get; }

Property Value

Model

Parent

[JsonConverter(typeof(ActivityReferenceConverter))]
public Activity? Parent { get; }

Property Value

Activity

Phases

public Phase[] Phases { get; }

Property Value

Phase[]

Purpose

public string Purpose { get; }

Property Value

string

ReadRoles

public Role[] ReadRoles { get; }

Property Value

Role[]

Responsibles

public string[] Responsibles { get; }

Property Value

string[]

Roles

public Role[] Roles { get; }

Property Value

Role[]

Sequence

Return the sequence number of this activity

public int Sequence { get; }

Property Value

int

Remarks

Use the sequence number for visual representation, e.g., ordering of form fields. DCR XML currently has sequence numbers in the raw event and in dataType tags. We use only the latter, and compute subprocess sequences numbers recursively as the maximum of their descendants

Note that this property is unlikely to give you the results you want if your graph contains dynamically spawned subgraphs.

Tags

public IEnumerable<string> Tags { get; }

Property Value

IEnumerable<string>

Value

[JsonConverter(typeof(ValueConverter))]
public value Value { get; }

Property Value

value

Whynot

[JsonConverter(typeof(WhyNotConverter))]
public List<Process.Reason> Whynot { get; }

Property Value

List<Process.Reason>

Methods

CheckPrecondition(out string?, string?)

public bool CheckPrecondition(out string? errorMsg, string? user = null)

Parameters

errorMsg string
user string

Returns

bool

Equals(object?)

public override bool Equals(object? obj)

Parameters

obj object

Returns

bool

GetHashCode()

public override int GetHashCode()

Returns

int

HasPhase(string)

public bool HasPhase(string phase)

Parameters

phase string

Returns

bool

HasReadRole(string)

public bool HasReadRole(string role)

Parameters

role string

Returns

bool

HasRole(string)

public bool HasRole(string role)

Parameters

role string

Returns

bool

HasTag(string)

Check if this activity has the given tag

public bool HasTag(string tag)

Parameters

tag string

Returns

bool

Remarks

Note that "tags" in the portal are called "groups" in the DCR XML. Note moreover that DCR.Core has a different notion of tags. This method does not check DCR.Core tags.

IsDescendantOf(Activity)

public bool IsDescendantOf(Activity other)

Parameters

other Activity

Returns

bool

IsPendingUnder(Activity)

Returns true iff every ancestor of this activity below and including the parameter is locally included and locally pending.

public bool IsPendingUnder(Activity ancestor)

Parameters

ancestor Activity

Returns

bool

Remarks

This is useful to execute part of a DCR graph, disregarding the part above the ancestor parameter. In particular, it can be used to emulate form execution under transactional/"Split" behaviour.

ToJson()

public string ToJson()

Returns

string

ToString()

public override string ToString()

Returns

string

ToString(string)

public string ToString(string fmt)

Parameters

fmt string

Returns

string