@5minds/processcube_engine
Version:
The ProcessCube Engine. Stores and executes BPMNs.
72 lines (71 loc) • 4.67 kB
TypeScript
import { Transaction } from 'sequelize';
import { EventInstance, FlowNodeInstance, FlowNodeInstanceList, FlowNodeInstanceSortSettings, Model } from '@5minds/processcube_engine_sdk';
import { CreateFlowNodeInstanceRequest, InternalFlowNodeInstanceQuery, PersistDataObjectData, PersistOnStateChangeAdditionalData } from '../../Contracts/InternalDataModels/index';
import { DatabaseAdapter } from './BaseDatabaseAdapter';
type FlowNodeWithLane = Model.Base.FlowNode & {
lane: string | null;
};
export declare class FlowNodeInstanceDatabaseAdapter extends DatabaseAdapter {
initialize(): Promise<void>;
findByInstanceId(flowNodeInstanceId: string): Promise<FlowNodeInstance | undefined>;
query(query: InternalFlowNodeInstanceQuery, offset?: number, limit?: number, sort?: FlowNodeInstanceSortSettings, includeDeleted?: boolean, includeCount?: boolean): Promise<FlowNodeInstanceList>;
getFlowNodeExecutionCount(flowNodeId: string, processInstanceId: string): Promise<number>;
getFlowNodeInstancesForProcessInstanceIds(processInstanceId: Array<string>): Promise<Array<{
flowNodeId: string;
flowNodeName: string;
flowNodeLane: string | null;
}>>;
getActiveMessageCatchEventsInProcessModel(processModelId: string, messageName: string): Promise<Array<EventInstance>>;
cleanupOrphanedFlowNodeInstances(): Promise<void>;
persistOnEnter<TTokenPayload>(payload: CreateFlowNodeInstanceRequest<TTokenPayload>): Promise<void>;
batchPersistOnEnter<TTokenPayload>(payloads: Array<CreateFlowNodeInstanceRequest<TTokenPayload>>): Promise<void>;
persistOnSuspend(flowNodeInstanceId: string, data: PersistOnStateChangeAdditionalData): Promise<void>;
persistOnExit(flowNodeInstanceId: string, data: PersistOnStateChangeAdditionalData): Promise<void>;
persistOnCancel(flowNodeInstanceId: string, data: PersistOnStateChangeAdditionalData): Promise<void>;
persistOnError(flowNodeInstanceId: string, data: PersistOnStateChangeAdditionalData): Promise<void>;
persistOnTerminate(flowNodeInstanceId: string, data: PersistOnStateChangeAdditionalData): Promise<void>;
updateStartToken(flowNodeInstanceIds: Array<string>, tokenPayload: any): Promise<void>;
deleteByProcessDefinitionId(processDefinitionId: string): Promise<void>;
/**
* This is dangerous, because it can potentially break a process instance.
* Deletion should usually be done in the context of deleting or resetting a Process Instance, or when undeploying a diagram.
* Use for tests or cleanup procedures only.
*/
UNSAFE_deleteById(flowNodeInstanceId: string): Promise<void>;
saveMultiInstanceMetadata(multiInstanceMetadataId: string, startToken?: any, endToken?: any): Promise<void>;
loadFlowNodeInstancesForMultiInstance(multiInstanceMetadataId: string): Promise<Array<FlowNodeInstance>>;
updateFlowNodesInProcessInstance(processInstanceIds: Array<string>, flowNodes: Array<FlowNodeWithLane>): Promise<void>;
static reset(flowNodeInstanceId: string, transaction: Transaction, isUnstartedSubProcess?: boolean): Promise<void>;
private static execReset;
static deleteByProcessDefinitionId(processDefinitionId: string, deleteTransaction: Transaction): Promise<void>;
static deleteByProcessInstanceIds(processInstanceIds: Array<string>, deleteTransaction: Transaction): Promise<void>;
static deleteByIds(flowNodeInstanceIds: Array<string>, deleteTransaction: Transaction): Promise<void>;
changeProcessTokenPayload(flowNodeInstanceId: string, processTokenType: 'startToken' | 'endToken', payload: any): Promise<void>;
private determineRequiredJoinsOnMetadataTables;
private getFlowNodeTypesRequiringMetadata;
private execPersistOnEnter;
private execBatchPersistOnEnter;
private persistOnStateChange;
saveDataObjectInstances(data: PersistDataObjectData): Promise<void>;
private ensureStateTransitionIsValid;
private saveFlowNodeInstanceTypeSpecificData;
private saveBatchFlowNodeInstanceTypeSpecificData;
private saveCallActivityData;
private saveBatchCallActivityData;
private saveSubprocessData;
private saveBatchSubprocessData;
private saveCatchEventData;
private saveBatchCatchEventData;
private saveThrowEventData;
private saveBatchThrowEventData;
private saveManualTaskData;
private saveBatchManualTaskData;
private saveExternalServiceTaskData;
private saveBatchExternalServiceTaskData;
private saveHttpServiceTaskData;
private saveBatchHttpServiceTaskData;
private saveUserTaskData;
private saveBatchUserTaskData;
private static deleteFlowNodeInstancesInBatches;
}
export {};