@5minds/processcube_engine
Version:
The ProcessCube Engine. Stores and executes BPMNs.
66 lines (65 loc) • 4.51 kB
TypeScript
import { Transaction } from 'sequelize';
import { BaseError, BpmnType, ProcessInstanceSortSettings, ProcessInstanceState } from '@5minds/processcube_engine_sdk';
import { CreateProcessInstanceRequest, FinishProcessInstancePayload, InternalIdentity as Identity, ProcessInstanceInternal, ProcessInstanceInternalList, ProcessInstanceInternalQuery } from '../../Contracts/InternalDataModels/index';
import { DatabaseAdapter } from './BaseDatabaseAdapter';
export declare class ProcessInstanceDatabaseAdapter extends DatabaseAdapter {
initialize(): Promise<void>;
create(request: CreateProcessInstanceRequest): Promise<void>;
setMetadataValue(processInstanceId: string, metaDataKey: string, metaDataValue: string, flowNodeInstanceId: string): Promise<void>;
getMinimalRunningProcessInstances(): Promise<Array<{
processInstanceId: string;
state: string;
parentProcessInstanceId?: string;
}>>;
getProcessInstances(processInstanceIds: Array<string>): Promise<Array<ProcessInstanceInternal>>;
getDirectChildProcessInstanceIds(parentProcessInstanceId: string, parentFlowNodeType?: BpmnType.subProcess | BpmnType.callActivity, authorizationQuery?: {
allowedLanes?: Array<string>;
requestingUserId?: string;
}): Promise<Array<string>>;
getAllDescendantProcessInstanceIds(parentProcessInstanceId: string, parentFlowNodeType?: BpmnType.subProcess | BpmnType.callActivity, authorizationQuery?: {
allowedLanes?: Array<string>;
requestingUserId?: string;
}): Promise<Array<string>>;
getAncestorProcessInstanceIds(processInstanceId: string, onlyForEmbeddedProcesses?: boolean, authorizationQuery?: {
allowedLanes?: Array<string>;
requestingUserId?: string;
}): Promise<Array<string>>;
getProcessInstancesByProcessDefinitionIdAndState(processDefinitionId: string, state: ProcessInstanceState): Promise<Array<ProcessInstanceInternal>>;
countRunningInstancesForModel(processModelId: string): Promise<number>;
getRetryableChildProcessInstances(parentProcessInstanceIds: Array<string>): Promise<Array<ProcessInstanceInternal>>;
query(query: ProcessInstanceInternalQuery, offset?: number, limit?: number, sort?: ProcessInstanceSortSettings, includeXml?: boolean, includeDeleted?: boolean, includeCount?: boolean): Promise<ProcessInstanceInternalList>;
transferOwnership(processInstanceIds: Array<string>, newOwner: Identity): Promise<void>;
finish(processInstanceId: string, endEventData?: FinishProcessInstancePayload, includeFlowNodeInstances?: boolean): Promise<void>;
finishWithError(processInstanceId: string, error: Error, endEventData?: FinishProcessInstancePayload, includeFlowNodeInstances?: boolean): Promise<void>;
terminate(processInstanceId: string, error: BaseError, endEventData?: FinishProcessInstancePayload, includeFlowNodeInstances?: boolean): Promise<void>;
changeProcessDefinition(processInstanceId: string, newProcessModelHash: string): Promise<void>;
reset(processInstanceId: string, flowNodeInstanceIdsToReset: Array<string | {
flowNodeInstanceId: string;
isUnstartedSubProcess?: boolean;
}>, flowNodeInstanceIdsToDelete?: Array<string>, processInstanceIdsToDelete?: Array<string>): Promise<void>;
flagAsDeletedByIds(processInstanceIds: Array<string>): Promise<void>;
deleteByIds(processInstanceIds: Array<string>): Promise<void>;
static deleteByIds(processInstanceIds: Array<string>, transaction: Transaction): Promise<void>;
deleteByProcessDefinitionId(processDefinitionId: string): Promise<void>;
static deleteByProcessDefinitionId(processDefinitionId: string, deleteTransaction: Transaction): Promise<void>;
private execCreate;
private getProcessInstanceIdsList;
private getUnorderedProcessInstanceList;
private getProcessInstanceIdsToLoad;
private getIncludesForPlainQueries;
private buildProcessInstanceWhereClause;
private getProcessInstancesWithCount;
private getProcessInstancesWithoutCount;
private buildAuthorizationFilters;
private buildEventTypeFilter;
private storeCorrelation;
private static deleteEmptyCorrelations;
private deleteMetadataValueByFlowNodeInstanceIds;
private validateCreateRequest;
private findProcessInstanceAndVerifyRunningState;
private cleanupFlowNodeInstances;
private calculateTotalRuntime;
private calculateRegularRuntime;
private calculateRuntimeWithRetry;
private buildQueryOrderSettings;
}