Skip to main content

Assignment Plugin API

AssignmentPlugin API

This Plugin implements the basic functions for working with assignments.

The AssignmentPlugin use cases.

Assignment​

Properties:

AssignmentId : Guid

Unique id.

AssignmentCode : String

Required assignment code.

ProcessId : Guid

Required process id.

Name : String

Required assignment name.

Description : string

Assignment description.

DateCreation : DateTime

Date of creation.

DateStart : DateTime?

Date of start.

DateFinish : DateTime?

Date of finish.

DeadlineToStart : DateTime?

Deadline to start.

DeadlineToComplete : DateTime?

Deadline to complete.

Executor : String

Executor identity.

Observers : List<String>

List of user identities.

Tags : List<String>

List of tag.

StatusState : String

Assignment status.

IsActive : Boolean

Property for managing the assignment from the designer.

IsDeleted : Boolean

If true, then the assignment is marked as deleted.

Settings​

Setting_CheckDeadlineInterval​

Allows changing auto deadline check interval. The default value is 1 minute. This setting can be applied only before the Workflow runtime is started.

assignmentPlugin.Setting_CheckDeadlineInterval = "10 seconds";

Setting_StartAutoCheckDeadlinesProcess​

Enables auto check deadlines.

info

This function requires additional schema and dedicated process and won't work without license key.

assignmentPlugin.Setting_StartAutoCheckDeadlinesProcess = true;

WithStatuses​

Method that overrides the default list of statuses.

Parameters:

statuses : List<String>

List of new statuses. The list should contain the default status.

defaultStatus : String

Default status. This status will be assigned to assignments when they are created.

OnDeadlineToStartAsync​

The delegate that is called when AssignmentCheckDeadline is executed (DeadlineType: ToStart / All). There is no need to compare the deadline with the current time, this happens automatically on the plugin side.

Parameters:

assignment : Assignment

Assignment for which the start deadline has been checked.

condition : AssignmentCheckDeadlineCondition

Deadline check conditions.

Handler syntax:

async void CheckDeadlineToStart(Assignment assignment
AssignmentCheckDeadlineCondition condition)
{
if (condition == AssignmentCheckDeadlineCondition.Equal
&& assignment.StatusState == AssignmentPlugin.DefaultStatus)
{
assignment.Tags.Add("Overdue start deadline");
await Runtime.UpdateAssignmentAsync(assignment);
}
}

OnDeadlineToCompleteAsync​

The delegate that is called when AssignmentCheckDeadline is executed (DeadlineType: ToComplete / All).There is no need to compare the deadline with the current time, this happens automatically on the plugin side.

Parameters:

assignment : Assignment

Assignment for which the completion deadline has been checked.

condition : AssignmentCheckDeadlineCondition

Deadline check conditions.

Handler syntax:

async void CheckDeadlineToComplete(Assignment assignment,
AssignmentCheckDeadlineCondition condition)
{
if (condition == AssignmentCheckDeadlineCondition.Equal
&& (assignment.StatusState == AssignmentPlugin.DefaultStatus
|| assignment.StatusState == AssignmentPlugin.DefaultStartStatus))
{
assignment.Tags.Add("Overdue finish deadline");
await Runtime.UpdateAssignmentAsync(assignment);
}
}

Actions​

Read about actions.

AssignmentCreate​

Creating new assignments.

Parameters:

Name : String *

Required assignment name.

Code : String *

Required assignment code.

Executors : List<Executor> *

If IsActor: true, then the assignment executors are all users belonging to the actor with the Name: Value. If IsActor: false, then a specific user is the executor of the assignment and his identity is in Value.

Is active : Boolean *

Property for managing the assignment from the designer.

Description : String

Assignment description.

Deadline to start : String

The string has the format: 1y 1mm 1d 1h 1m 1s. The value is used to generate the deadline to start when the current action is executed.

Deadline to complete : String

The string has the format: 1y 1mm 1d 1h 1m 1s.The value is used to generate the deadline to complete when the current action is executed.

Observers : List<UserIdentity>

List of observer UserIdentities.

Tags : List<String>

List of tags.

AssignmentChange​

Updating assignments.

Parameters:

Code : String *

Required assignment code.

Replacement of executors : List<ReplacementExecutor>

Executor replacement list.

If Value in OldExecutor is null, then all old executors are selected for replacement.

If IsActor in OldExecutor is true, then all old executors belonging to the specified actor are selected for replacement.

If IsActor in OldExecutor is false, then specific old executor is selected for replacement.

Change[Property] : Boolean

Indicates whether to update the selected Property.

Status state : String

New status for the assignment, if ChangeStatus is selected.

Is active : Boolean

New state for the assignment, if ChangeState is selected.

Deadline to start : String

New deadline to start for the assignment, if ChangeDeadlineToStart is selected.

The string has the format: 1y 1mm 1d 1h 1m 1s. The value is used to generate the deadline to start when the current action is executed.

Deadline to complete : String

New deadline to complete for the assignment, if ChangeDeadlineToComplete is selected.

The string has the format: 1y 1mm 1d 1h 1m 1s. The value is used to generate the deadline to complete when the current action is executed.

Observers : List<UserIdentity>

New list of observer UserIdentities, if ChangeObservers is selected.

Tags : List<String>

New list of tag strings, if ChangeTags is selected.

AssignmentDelete​

Deleting assignment.

Parameters:

Assignment code : String *

Required assignment code.

Is hard removal : Boolean *

if Is hard removal is true, assignment will be deleted permanently from the database.

if Is hard removal is false, assignment will be marked as deleted (IsDeleted:true).

AssignmentCheckDeadline​

Checking assignment deadlines.

Parameters:

Assignment code : String

Required assignment code.

Check deadline condition : AssignmentCheckDeadlineCondition *

Deadline comparison type.

Deadline type : AssignmentDeadlineType *

The type of deadline to be checked.

Conditions​

Read about conditions.

AssignmentsAny​

Checks if at least one assignment exists in the current process. Assignments with IsDeleted: true are ignored.

AssignmentsAllHaveCertainStatus​

Checks if all assignment sets with the specified Codes have a certain Status state.

Parameters:

Status state : String *

Status for comparison.

Assignments : List<AssignmentCodeConditionItem> *

List of AssignmentCodeConditionItem.

AssignmentsAnyHaveCertainStatus​

Checks if at least one set of assignments with the specified Code have a certain Status state.

Parameters:

Status state : String *

Status for comparison

Assignments : List<AssignmentCodeConditionItem> *

List of AssignmentCodeConditionItem.

Elements​

AssignmentCheckDeadlineCondition​

Allowable values:

  • Equal (accurate to the minute)
  • Expired
  • NotExpired

AssignmentDeadlineType​

Allowable values:

  • ToStart
  • ToComplete
  • All (both deadline types)

AssignmentCodeCondition​

Allowable values:

  • All
  • Any

UserIdentity​

class UserIdentity
{
// unique user id
public string Identity { get; set; }
// user name
public string UserName { get; set; }
}

Executor​

class Executor 
{
public string Value { get; set; }

public string Name { get; set; }

public bool IsActor { get; set; }
}

ReplacementExecutor​

class ReplacementExecutor
{
public Executor OldExecutor { get; set; }

public UserIdentity NewExecutor { get; set; }
}

AssignmentCodeConditionItem​

class AssignmentCodeConditionItem
{
public string Code { get; set; }

public AssignmentCodeCondition Condition { get; set; }
}