@5minds/processcube_engine
Version:
The ProcessCube Engine. Stores and executes BPMNs.
33 lines (32 loc) • 2.46 kB
TypeScript
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>;
}