UNPKG

@5minds/processcube_engine

Version:

The ProcessCube Engine. Stores and executes BPMNs.

33 lines (32 loc) 2.46 kB
import { BaseError, FlowNodeInstance, Model } from '@5minds/processcube_engine_sdk'; import { FlowNodeInstanceDatabaseAdapter } from '../../../../Tools/DatabaseAdaptersSequelize/FlowNodeInstanceAdapter'; import { ProcessInstance } from '../../../ProcessInstance'; import { ActivityHandler } from '../ActivityHandler'; import { ActivityInstanceHandler } from '../ActivityInstanceHandler'; export declare abstract class ActivityExecutionStrategy<TActivity extends Model.Activities.Activity> { protected readonly flowNodeInstanceDatabaseAdapter: FlowNodeInstanceDatabaseAdapter; protected readonly activityHandler: ActivityHandler<TActivity>; protected readonly processInstance: ProcessInstance; protected readonly activityInstanceHandlers: Array<ActivityInstanceHandler<TActivity>>; protected _timeoutBetweenLoopIterations?: number; protected _maxLoopIterations?: number; constructor(flowNodeInstanceDatabaseAdapter: FlowNodeInstanceDatabaseAdapter, activityHander: ActivityHandler<TActivity>, processInstance: ProcessInstance); set timeoutBetweenLoopIterations(timeout: number); set maxLoopIterations(timeout: number); get flowNodeInstanceId(): string; private get activeFlowNodeInstances(); abstract execute(startToken: Record<string, any> | Array<any>, executionCanceledCallback?: Function): Promise<Record<string, any> | Array<any>>; abstract resume(flowNodeInstancesToResume: Array<FlowNodeInstance>, startToken: Record<string, any> | Array<any>, resumptionCanceledCallback?: Function): Promise<Record<string, any> | Array<any>>; endWithTermination(): Promise<void>; endWithError(error: BaseError, force?: boolean): Promise<void>; endWithPreError(error: BaseError, force?: boolean): Promise<void>; endWithPostError(error: BaseError, force?: boolean): Promise<void>; terminate(): Promise<void>; cancel(): Promise<void>; protected createNewActivityInstanceHandler(previousFlowNodeInstanceId?: string, instanceContext?: { [key: string]: any; }): ActivityInstanceHandler<TActivity>; protected runOnAllFlowNodeInstances(executor: (fni: ActivityInstanceHandler<TActivity>) => Promise<void>): Promise<void>; protected runOnActiveFlowNodeInstances(executor: (fni: ActivityInstanceHandler<TActivity>) => Promise<void>): Promise<void>; protected runOnLastFlowNodeInstance(executor: (fni: ActivityInstanceHandler<TActivity>) => Promise<void>): Promise<void>; }