# Class DecisionTable OptimaJet.Workflow.Core.Plugins.BasicsPlugin.DecisionTable Namespace: [OptimaJet.Workflow.Core.Plugins.BasicsPlugin](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Plugins.BasicsPlugin/) ```csharp public class DecisionTable : ActivityBase ``` ## Type Hierarchy - [FormBase](https://api.workflowengine.io/core/OptimaJet.Workflow.Core/FormBase/) - [ActivityBase](https://api.workflowengine.io/core/OptimaJet.Workflow.Core/ActivityBase/) - DecisionTable Current type ## Properties `public override string Type { get; }` Gets or sets the form type identifier. `public override string SVGTemplate { get; }` Gets or sets the name of the SVG element template used by the workflow designer to draw nodes of this activity type on the scheme canvas. `public override string Title { get; }` Gets or sets the human-readable title for the form. `public override string Template { get; }` Gets or sets the form template name used by UI renderers. `public override string Description { get; }` Gets or sets the explanatory text displayed in the information tooltip for this activity in the workflow designer's element palette. `public override bool AllowCycleTransition { get; }` Gets a value indicating whether the workflow designer allows a user to create a transition from a node of this activity type back to the same node. ### Remarks This property controls the designer interaction; it is not a runtime validation rule for schemes created or modified through other APIs. `public override bool IsOutgoingTransitionsReadonly { get; }` Gets a value indicating whether outgoing transitions are configured through this activity's editor instead of the standard transition editor. ### Remarks Set this property when the custom activity form owns the configuration of its outgoing branches, as decision activity forms do. `public override SaveToAnnotationsPolicy SaveToAnnotationsPolicy { get; }` Gets the policy that the workflow designer applies when saving values returned by this activity's editor to [ActivityDefinition.Annotations](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActivityDefinition/). ### Remarks Regardless of this policy, the designer preserves the internal annotation used to associate an activity node with its custom type. `public override Dictionary DefaultValues { get; }` Gets or sets form-specific default values. ## Methods `public override Task ExecutionAsync(WorkflowRuntime runtime, ProcessInstance processInstance, Dictionary parameters, CancellationToken token)` Executes the form operation during normal workflow execution. ### Parameters | Name | Type | Description | | --- | --- | --- | | `runtime` | `WorkflowRuntime` | The [WorkflowRuntime](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime/WorkflowRuntime/) invoking the execution. | | `processInstance` | `ProcessInstance` | The current [ProcessInstance](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessInstance/). | | `parameters` | `Dictionary` | Runtime parameter values for the executed form operation, keyed by parameter name. | | `token` | `CancellationToken` | The [CancellationToken](https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken) passed from the execution pipeline. | ### Returns | Type | Description | | --- | --- | | `Task` | A [Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task) that represents the asynchronous execution. | `public override Task PreExecutionAsync(WorkflowRuntime runtime, ProcessInstance processInstance, Dictionary parameters, CancellationToken token)` Executes the form operation during pre-execution simulation. ### Parameters | Name | Type | Description | | --- | --- | --- | | `runtime` | `WorkflowRuntime` | The [WorkflowRuntime](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime/WorkflowRuntime/) invoking the simulation. | | `processInstance` | `ProcessInstance` | The current [ProcessInstance](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessInstance/). | | `parameters` | `Dictionary` | Runtime parameter values for the simulated operation, keyed by parameter name. | | `token` | `CancellationToken` | The [CancellationToken](https://learn.microsoft.com/dotnet/api/system.threading.cancellationtoken) passed from the execution pipeline. | ### Returns | Type | Description | | --- | --- | | `Task` | A [Task](https://learn.microsoft.com/dotnet/api/system.threading.tasks.task) that represents the asynchronous simulation. | [Previous Decision](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Plugins.BasicsPlugin/Decision/) [Next IActorProvider](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Plugins.BasicsPlugin.ActorProviders/IActorProvider/)