@rytass/bpm-core-nestjs-module 0.14.0 → 0.16.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +100 -0
- package/README.md +19 -13
- package/package.json +5 -5
- package/src/lib/attachment/attachment-options.d.ts +23 -10
- package/src/lib/attachment/attachment-options.js +17 -31
- package/src/lib/attachment/attachment-options.js.map +1 -1
- package/src/lib/attachment/attachment-request-origin.d.ts +19 -0
- package/src/lib/attachment/attachment-request-origin.js +51 -0
- package/src/lib/attachment/attachment-request-origin.js.map +1 -0
- package/src/lib/attachment/attachment.module.d.ts +1 -2
- package/src/lib/attachment/attachment.module.js.map +1 -1
- package/src/lib/attachment/attachment.queries.d.ts +2 -2
- package/src/lib/attachment/attachment.queries.js +9 -4
- package/src/lib/attachment/attachment.queries.js.map +1 -1
- package/src/lib/attachment/attachment.service.d.ts +6 -1
- package/src/lib/attachment/attachment.service.js +12 -5
- package/src/lib/attachment/attachment.service.js.map +1 -1
- package/src/lib/bpm/bpm-root-options.d.ts +3 -3
- package/src/lib/bpm/bpm-root-options.js +7 -1
- package/src/lib/bpm/bpm-root-options.js.map +1 -1
- package/src/lib/bpm/bpm-root.module.d.ts +1 -2
- package/src/lib/bpm/bpm-root.module.js.map +1 -1
- package/src/lib/bpm-auth/bpm-auth.options.d.ts +1 -2
- package/src/lib/calendar/calendar.module.d.ts +1 -2
- package/src/lib/calendar/calendar.module.js.map +1 -1
- package/src/lib/form/form-member-value.validator.d.ts +16 -0
- package/src/lib/form/form-member-value.validator.js +37 -0
- package/src/lib/form/form-member-value.validator.js.map +1 -0
- package/src/lib/form/form-schema.validator.js +90 -1
- package/src/lib/form/form-schema.validator.js.map +1 -1
- package/src/lib/form-data-source/form-data-source.module.d.ts +1 -2
- package/src/lib/form-data-source/form-data-source.module.js.map +1 -1
- package/src/lib/identity/identity.module.d.ts +1 -2
- package/src/lib/identity/identity.module.js.map +1 -1
- package/src/lib/migrations/0000000026000-approval-instance-business-key.d.ts +20 -0
- package/src/lib/migrations/0000000026000-approval-instance-business-key.js +44 -0
- package/src/lib/migrations/0000000026000-approval-instance-business-key.js.map +1 -0
- package/src/lib/migrations/0000000027000-approval-instance-submitted-by.d.ts +19 -0
- package/src/lib/migrations/0000000027000-approval-instance-submitted-by.js +42 -0
- package/src/lib/migrations/0000000027000-approval-instance-submitted-by.js.map +1 -0
- package/src/lib/migrations/index.d.ts +2 -0
- package/src/lib/migrations/index.js +6 -0
- package/src/lib/migrations/index.js.map +1 -1
- package/src/lib/notification/notification-options.module.d.ts +1 -2
- package/src/lib/notification/notification-options.module.js.map +1 -1
- package/src/lib/notification/notification-template.js +1 -1
- package/src/lib/notification/notification-template.js.map +1 -1
- package/src/lib/notification/notification.service.d.ts +16 -0
- package/src/lib/notification/notification.service.js +54 -0
- package/src/lib/notification/notification.service.js.map +1 -1
- package/src/lib/organization/index.d.ts +1 -0
- package/src/lib/organization/index.js +1 -0
- package/src/lib/organization/index.js.map +1 -1
- package/src/lib/organization/organization-time-zone.d.ts +46 -0
- package/src/lib/organization/organization-time-zone.js +47 -0
- package/src/lib/organization/organization-time-zone.js.map +1 -0
- package/src/lib/organization/organization.service.d.ts +3 -1
- package/src/lib/organization/organization.service.js +8 -11
- package/src/lib/organization/organization.service.js.map +1 -1
- package/src/lib/signature/signature.module.d.ts +1 -2
- package/src/lib/signature/signature.module.js.map +1 -1
- package/src/lib/template/template.service.js +64 -0
- package/src/lib/template/template.service.js.map +1 -1
- package/src/lib/workflow-engine/approval-instance.entity.d.ts +13 -0
- package/src/lib/workflow-engine/approval-instance.entity.js +20 -0
- package/src/lib/workflow-engine/approval-instance.entity.js.map +1 -1
- package/src/lib/workflow-engine/instance-submitter.d.ts +2 -0
- package/src/lib/workflow-engine/instance-submitter.js +14 -0
- package/src/lib/workflow-engine/instance-submitter.js.map +1 -0
- package/src/lib/workflow-engine/task.entity.d.ts +9 -0
- package/src/lib/workflow-engine/task.entity.js +13 -0
- package/src/lib/workflow-engine/task.entity.js.map +1 -1
- package/src/lib/workflow-engine/workflow-dashboard-summary.object.js +18 -6
- package/src/lib/workflow-engine/workflow-dashboard-summary.object.js.map +1 -1
- package/src/lib/workflow-engine/workflow-engine.module.d.ts +1 -2
- package/src/lib/workflow-engine/workflow-engine.module.js.map +1 -1
- package/src/lib/workflow-engine/workflow-engine.mutations.js +5 -0
- package/src/lib/workflow-engine/workflow-engine.mutations.js.map +1 -1
- package/src/lib/workflow-engine/workflow-engine.service.d.ts +83 -6
- package/src/lib/workflow-engine/workflow-engine.service.js +731 -230
- package/src/lib/workflow-engine/workflow-engine.service.js.map +1 -1
- package/src/lib/workflow-webhook/workflow-webhook-options.module.d.ts +1 -2
- package/src/lib/workflow-webhook/workflow-webhook-options.module.js.map +1 -1
- package/src/lib/workflow-webhook/workflow-webhook.module.d.ts +1 -2
- package/src/lib/workflow-webhook/workflow-webhook.module.js.map +1 -1
|
@@ -8,6 +8,15 @@ const adhoc_enums_1 = require("./adhoc.enums");
|
|
|
8
8
|
const workflow_engine_enums_1 = require("./workflow-engine.enums");
|
|
9
9
|
let TaskEntity = class TaskEntity {
|
|
10
10
|
constructor() {
|
|
11
|
+
/**
|
|
12
|
+
* Display name of the workflow node (`node.data.label`), read from the
|
|
13
|
+
* instance's `workflow_snapshot` — never stored on the task row. `null`
|
|
14
|
+
* when the snapshot has no node with this `nodeId` (or the task came from a
|
|
15
|
+
* path that does not resolve it). An ad-hoc task keeps the label of the
|
|
16
|
+
* node it was spawned on; clients add their own 臨時加簽/會簽 marker from
|
|
17
|
+
* `isAdhoc` / `adhocType`.
|
|
18
|
+
*/
|
|
19
|
+
this.nodeLabel = null;
|
|
11
20
|
this.candidateMemberIds = [];
|
|
12
21
|
/**
|
|
13
22
|
* The candidates who can act on the task right now (`PENDING` or
|
|
@@ -130,6 +139,10 @@ tslib_1.__decorate([
|
|
|
130
139
|
tslib_1.__metadata("design:type", String),
|
|
131
140
|
tslib_1.__metadata("design:paramtypes", [])
|
|
132
141
|
], TaskEntity.prototype, "decisionPolicySnapshotJson", null);
|
|
142
|
+
tslib_1.__decorate([
|
|
143
|
+
(0, graphql_1.Field)(() => String, { nullable: true }),
|
|
144
|
+
tslib_1.__metadata("design:type", Object)
|
|
145
|
+
], TaskEntity.prototype, "nodeLabel", void 0);
|
|
133
146
|
tslib_1.__decorate([
|
|
134
147
|
(0, graphql_1.Field)(() => [String]),
|
|
135
148
|
tslib_1.__metadata("design:type", Array)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.entity.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/workflow-engine/task.entity.ts"],"names":[],"mappings":";;;;AAAA,6CAAwD;AACxD,qCAKiB;AACjB,+CAAuD;AACvD,mEAGiC;AAI1B,IAAM,UAAU,GAAhB,MAAM,UAAU;IAAhB;
|
|
1
|
+
{"version":3,"file":"task.entity.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/workflow-engine/task.entity.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,27 +7,39 @@ let WorkflowDashboardSummaryObject = class WorkflowDashboardSummaryObject {
|
|
|
7
7
|
};
|
|
8
8
|
exports.WorkflowDashboardSummaryObject = WorkflowDashboardSummaryObject;
|
|
9
9
|
tslib_1.__decorate([
|
|
10
|
-
(0, graphql_1.Field)(() => graphql_1.Int
|
|
10
|
+
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
11
|
+
description: '成員可讀取的簽核單中,進行中的件數',
|
|
12
|
+
}),
|
|
11
13
|
tslib_1.__metadata("design:type", Number)
|
|
12
14
|
], WorkflowDashboardSummaryObject.prototype, "activeInstanceCount", void 0);
|
|
13
15
|
tslib_1.__decorate([
|
|
14
|
-
(0, graphql_1.Field)(() => graphql_1.Int
|
|
16
|
+
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
17
|
+
description: '成員可讀取的簽核單中,已核准的件數',
|
|
18
|
+
}),
|
|
15
19
|
tslib_1.__metadata("design:type", Number)
|
|
16
20
|
], WorkflowDashboardSummaryObject.prototype, "completedInstanceCount", void 0);
|
|
17
21
|
tslib_1.__decorate([
|
|
18
|
-
(0, graphql_1.Field)(() => graphql_1.Int
|
|
22
|
+
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
23
|
+
description: '本人目前的待辦任務中,已超過 SLA 期限的件數(與待簽清單使用同一套判斷)',
|
|
24
|
+
}),
|
|
19
25
|
tslib_1.__metadata("design:type", Number)
|
|
20
26
|
], WorkflowDashboardSummaryObject.prototype, "overdueTaskCount", void 0);
|
|
21
27
|
tslib_1.__decorate([
|
|
22
|
-
(0, graphql_1.Field)(() => graphql_1.Int
|
|
28
|
+
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
29
|
+
description: '本人目前的待辦任務數(與待簽清單一致)',
|
|
30
|
+
}),
|
|
23
31
|
tslib_1.__metadata("design:type", Number)
|
|
24
32
|
], WorkflowDashboardSummaryObject.prototype, "pendingTaskCount", void 0);
|
|
25
33
|
tslib_1.__decorate([
|
|
26
|
-
(0, graphql_1.Field)(() => graphql_1.Int
|
|
34
|
+
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
35
|
+
description: '成員可讀取的簽核單中,已駁回的件數',
|
|
36
|
+
}),
|
|
27
37
|
tslib_1.__metadata("design:type", Number)
|
|
28
38
|
], WorkflowDashboardSummaryObject.prototype, "rejectedInstanceCount", void 0);
|
|
29
39
|
tslib_1.__decorate([
|
|
30
|
-
(0, graphql_1.Field)(() => graphql_1.Int
|
|
40
|
+
(0, graphql_1.Field)(() => graphql_1.Int, {
|
|
41
|
+
description: '成員可讀取的簽核單總件數',
|
|
42
|
+
}),
|
|
31
43
|
tslib_1.__metadata("design:type", Number)
|
|
32
44
|
], WorkflowDashboardSummaryObject.prototype, "totalInstanceCount", void 0);
|
|
33
45
|
exports.WorkflowDashboardSummaryObject = WorkflowDashboardSummaryObject = tslib_1.__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-dashboard-summary.object.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/workflow-engine/workflow-dashboard-summary.object.ts"],"names":[],"mappings":";;;;AAAA,6CAAyD;AAGlD,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;
|
|
1
|
+
{"version":3,"file":"workflow-dashboard-summary.object.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/workflow-engine/workflow-dashboard-summary.object.ts"],"names":[],"mappings":";;;;AAAA,6CAAyD;AAGlD,IAAM,8BAA8B,GAApC,MAAM,8BAA8B;CA+B1C,CAAA;AA/BY,wEAA8B;AAIzC;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,WAAW,EAAE,mBAAmB;KACjC,CAAC;;2EAC2B;AAK7B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,WAAW,EAAE,mBAAmB;KACjC,CAAC;;8EAC8B;AAMhC;IAJC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,WAAW,EACT,wCAAwC;KAC3C,CAAC;;wEACwB;AAK1B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,WAAW,EAAE,qBAAqB;KACnC,CAAC;;wEACwB;AAK1B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,WAAW,EAAE,mBAAmB;KACjC,CAAC;;6EAC6B;AAK/B;IAHC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE;QAChB,WAAW,EAAE,cAAc;KAC5B,CAAC;;0EAC0B;yCA9BjB,8BAA8B;IAD1C,IAAA,oBAAU,EAAC,0BAA0B,CAAC;GAC1B,8BAA8B,CA+B1C"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { DynamicModule, Provider } from '@nestjs/common';
|
|
2
|
-
import { ModuleMetadata } from '@nestjs/common/interfaces';
|
|
1
|
+
import { DynamicModule, ModuleMetadata, Provider } from '@nestjs/common';
|
|
3
2
|
import { BPMWorkflowServiceTaskDispatcher } from './workflow-service-task-dispatcher.token';
|
|
4
3
|
export interface WorkflowEngineModuleOptions extends Pick<ModuleMetadata, 'imports'> {
|
|
5
4
|
readonly serviceTaskDispatcherProvider?: Provider<BPMWorkflowServiceTaskDispatcher>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-engine.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/workflow-engine/workflow-engine.module.ts"],"names":[],"mappings":";;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"workflow-engine.module.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/workflow-engine/workflow-engine.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAKwB;AACxB,6CAAgD;AAChD,oEAAgE;AAChE,uEAAmE;AACnE,2FAAqF;AACrF,yFAAoF;AACpF,6EAAyE;AACzE,6EAAyE;AACzE,qEAAgE;AAChE,oEAAgE;AAChE,yEAAqE;AACrE,mGAA6F;AAC7F,mFAA8E;AAC9E,+DAA0D;AAC1D,qEAAgE;AAChE,yEAAoE;AACpE,iEAA4D;AAC5D,mEAA8D;AAC9D,+CAA2C;AAC3C,2EAAsE;AACtE,uEAAkE;AAClE,uEAAkE;AAClE,qEAAuE;AAEvE,mEAA8D;AA2CvD,IAAM,oBAAoB,4BAA1B,MAAM,oBAAoB;IAC/B,MAAM,CAAC,OAAO,CAAC,UAAuC,EAAE;QACtD,OAAO;YACL,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;YACpD,MAAM,EAAE,sBAAoB;YAC5B,qEAAqE;YACrE,wEAAwE;YACxE,uEAAuE;YACvE,SAAS,EAAE,OAAO,CAAC,6BAA6B;gBAC9C,CAAC,CAAC,CAAC,OAAO,CAAC,6BAA6B,CAAC;gBACzC,CAAC,CAAC,EAAE;SACP,CAAC;IACJ,CAAC;CACF,CAAA;AAbY,oDAAoB;+BAApB,oBAAoB;IAlChC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,kCAAe;YACf,oCAAgB;YAChB,wCAAkB;YAClB,kCAAe;YACf,uBAAa,CAAC,UAAU,CAAC;gBACvB,uCAAiB;gBACjB,6CAAoB;gBACpB,iDAAsB;gBACtB,iDAAsB;gBACtB,gEAA6B;gBAC7B,4DAA2B;gBAC3B,mDAAuB;gBACvB,oCAAgB;gBAChB,wCAAkB;gBAClB,+BAAa;gBACb,2CAAmB;gBACnB,yCAAkB;gBAClB,wBAAU;gBACV,2CAAmB;aACpB,CAAC;SACH;QACD,SAAS,EAAE;YACT,mDAAuB;YACvB,+CAAqB;YACrB,+CAAqB;YACrB;gBACE,OAAO,EAAE,oDAA2B;gBACpC,WAAW,EAAE,+CAAqB;aACnC;SACF;QACD,OAAO,EAAE,CAAC,oDAA2B,EAAE,+CAAqB,CAAC;KAC9D,CAAC;GACW,oBAAoB,CAahC"}
|
|
@@ -25,8 +25,13 @@ let WorkflowEngineMutations = class WorkflowEngineMutations {
|
|
|
25
25
|
async submitApprovalInstance(input, currentMemberId, authContext) {
|
|
26
26
|
return this.workflowEngineService.submitApprovalInstance({
|
|
27
27
|
...input,
|
|
28
|
+
// A business key is the host's to set; an end user never claims one.
|
|
29
|
+
businessKey: null,
|
|
28
30
|
initiatorMemberId: currentMemberId,
|
|
29
31
|
initiatorMetadataSnapshotJson: null,
|
|
32
|
+
// Never read from the input: the person pressing submit is whoever is
|
|
33
|
+
// signed in, so a client cannot claim someone else filed the document.
|
|
34
|
+
submittedByMemberId: currentMemberId,
|
|
30
35
|
}, authContext);
|
|
31
36
|
}
|
|
32
37
|
async processApprovalInstance(instanceId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workflow-engine.mutations.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/workflow-engine/workflow-engine.mutations.ts"],"names":[],"mappings":";;;;AAAA,6CAA+D;AAC/D,0CAMqB;AACrB,qEAAgE;AAChE,+CAGuB;AACvB,yEAAoE;AACpE,6EAAwE;AACxE,iEAA4D;AAC5D,yFAAmF;AACnF,+DAA0D;AAC1D,2FAAoF;AACpF,6FAAuF;AACvF,yFAAmF;AACnF,iEAA4D;AAC5D,+CAA2C;AAC3C,uEAAuE;AACvE,uEAAkE;AAI3D,IAAM,uBAAuB,GAA7B,MAAM,uBAAuB;IAClC,YAA6B,qBAA4C;QAA5C,0BAAqB,GAArB,qBAAqB,CAAuB;IAAG,CAAC;IAGvE,AAAN,KAAK,CAAC,sBAAsB,CACX,KAAkC,EAC3B,eAAuB,EACpB,WAA2B;QAEpD,OAAO,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,CACtD;YACE,GAAG,KAAK;YACR,iBAAiB,EAAE,eAAe;YAClC,6BAA6B,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"workflow-engine.mutations.js","sourceRoot":"","sources":["../../../../../../libs/bpm-core/src/lib/workflow-engine/workflow-engine.mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,10 +38,23 @@ import { BPMRootRuntimeOptions } from '../bpm/bpm-root-options';
|
|
|
38
38
|
*/
|
|
39
39
|
type SubmitApprovalInstanceCommand = SubmitApprovalInstanceInput & {
|
|
40
40
|
readonly initiatorMemberId: string;
|
|
41
|
+
/**
|
|
42
|
+
* The host document this instance stands for, unique within the template.
|
|
43
|
+
* Service-level only: it is not on the GraphQL input, and the mutation
|
|
44
|
+
* always passes `null`, so an end user can never claim a key.
|
|
45
|
+
*/
|
|
46
|
+
readonly businessKey?: string | null;
|
|
47
|
+
/**
|
|
48
|
+
* Service layer only: the GraphQL mutation always fills it with the
|
|
49
|
+
* authenticated member and the input type does not expose it. Absent means
|
|
50
|
+
* the initiator submitted the document themselves.
|
|
51
|
+
*/
|
|
52
|
+
readonly submittedByMemberId?: string | null;
|
|
41
53
|
};
|
|
42
54
|
type ResubmitApprovalInstanceCommand = ResubmitApprovalInstanceInput & {
|
|
43
55
|
readonly initiatorMemberId: string;
|
|
44
56
|
};
|
|
57
|
+
export declare const MAX_APPROVAL_INSTANCE_BUSINESS_KEY_LENGTH = 200;
|
|
45
58
|
/**
|
|
46
59
|
* Delegation-chain reason recorded for an approver-initiated transfer, as
|
|
47
60
|
* opposed to {@link SLA_ESCALATION_DELEGATION_REASON}.
|
|
@@ -93,7 +106,22 @@ export declare class WorkflowEngineService {
|
|
|
93
106
|
private readonly webhookDeliveryService?;
|
|
94
107
|
constructor(approvalInstanceRepository: Repository<ApprovalInstanceEntity>, workflowTokenRepository: Repository<WorkflowTokenEntity>, taskRepository: Repository<TaskEntity>, taskCandidateRepository: Repository<TaskCandidateEntity>, taskDecisionRepository: Repository<TaskDecisionEntity>, notificationRepository: Repository<NotificationEntity>, activityLogRepository: Repository<ActivityLogEntity>, adhocDirectiveRepository: Repository<AdhocDirectiveEntity>, approvalTemplateRepository: Repository<ApprovalTemplateEntity>, approvalTemplateVersionRepository: Repository<ApprovalTemplateVersionEntity>, formDefinitionVersionRepository: Repository<FormDefinitionVersionEntity>, attachmentService: AttachmentService, conditionService: ConditionService, delegationService: DelegationService, notificationService: NotificationService, signatureService: SignatureService, slaScheduleService: BPMSlaScheduleService, injectedServiceTaskDispatcher?: BPMWorkflowServiceTaskDispatcher, formDataSourceValueResolver?: BPMFormDataSourceValueResolver | undefined, rootOptions?: BPMRootRuntimeOptions, webhookDeliveryService?: WorkflowWebhookDeliveryService | undefined);
|
|
95
108
|
private readonly serviceTaskDispatcher;
|
|
109
|
+
private readonly organizationTimeZone;
|
|
110
|
+
/**
|
|
111
|
+
* Today's date as the organization sees it (`organizationTimeZone`), for
|
|
112
|
+
* comparing against the date-only `effectiveFrom` / `effectiveTo` of
|
|
113
|
+
* memberships and manager resolutions. Not for timestamp columns, which are
|
|
114
|
+
* compared as instants.
|
|
115
|
+
*/
|
|
116
|
+
private readOrganizationToday;
|
|
96
117
|
submitApprovalInstance(input: SubmitApprovalInstanceCommand, authContext?: BPMAuthContext): Promise<ApprovalInstanceEntity>;
|
|
118
|
+
/**
|
|
119
|
+
* The instance a host submitted for `businessKey` on `templateId`, whatever
|
|
120
|
+
* its state (a cancelled or rejected instance still holds its key), or
|
|
121
|
+
* `null`. The key is trimmed the way submit trims it, so a lookup finds what
|
|
122
|
+
* a submit stored.
|
|
123
|
+
*/
|
|
124
|
+
findApprovalInstanceByBusinessKey(templateId: string, businessKey: string): Promise<ApprovalInstanceEntity | null>;
|
|
97
125
|
private resolveFormDataOptionSnapshots;
|
|
98
126
|
private prepareResubmitFormDataOptions;
|
|
99
127
|
processInstance(instanceId: string): Promise<void>;
|
|
@@ -157,7 +185,12 @@ export declare class WorkflowEngineService {
|
|
|
157
185
|
dryRunApprovalWorkflow(input: DryRunApprovalWorkflowInput): WorkflowDryRunResultObject;
|
|
158
186
|
private simulateWorkflow;
|
|
159
187
|
private simulateWorkflowPath;
|
|
160
|
-
|
|
188
|
+
/**
|
|
189
|
+
* The edges a dry-run step continues along. A node a designer has left
|
|
190
|
+
* unfinished (nothing drawn out of it, or no branch of a gateway taken) ends
|
|
191
|
+
* its branch with a readable message instead of failing the whole dry run.
|
|
192
|
+
*/
|
|
193
|
+
private readDryRunOutgoing;
|
|
161
194
|
private evaluateDryRunEdge;
|
|
162
195
|
/**
|
|
163
196
|
* The dry-run assignee of a user task. Only resolvers whose dry run yields
|
|
@@ -166,8 +199,12 @@ export declare class WorkflowEngineService {
|
|
|
166
199
|
* others resolve to placeholders and are left as they are.
|
|
167
200
|
*/
|
|
168
201
|
private resolveDryRunAssignment;
|
|
202
|
+
/**
|
|
203
|
+
* The member ids a dry run resolves for a user task: an empty list when the
|
|
204
|
+
* resolver names nobody, `null` for resolvers that only resolve to a
|
|
205
|
+
* placeholder in a dry run.
|
|
206
|
+
*/
|
|
169
207
|
private readDryRunMemberIds;
|
|
170
|
-
private resolveDryRunAssigneeMemberId;
|
|
171
208
|
getApprovalInstance(id: string, scope?: WorkflowReadScope): Promise<ApprovalInstanceEntity>;
|
|
172
209
|
listApprovalInstances(scope?: WorkflowReadScope, options?: ListApprovalInstancesOptions): Promise<readonly ApprovalInstanceEntity[]>;
|
|
173
210
|
countApprovalInstances(scope?: WorkflowReadScope, options?: Omit<ListApprovalInstancesOptions, 'page' | 'pageSize'>): Promise<number>;
|
|
@@ -189,14 +226,35 @@ export declare class WorkflowEngineService {
|
|
|
189
226
|
readonly rejectedInstanceCount: number;
|
|
190
227
|
readonly totalInstanceCount: number;
|
|
191
228
|
}>;
|
|
229
|
+
private readDashboardOpenTasks;
|
|
192
230
|
listLaunchableApprovalTemplates(memberId: string): Promise<readonly ApprovalTemplateEntity[]>;
|
|
193
231
|
listWorkflowTokens(instanceId: string, scope?: WorkflowReadScope): Promise<readonly WorkflowTokenEntity[]>;
|
|
194
232
|
listTasks(instanceId: string, scope?: WorkflowReadScope): Promise<readonly TaskEntity[]>;
|
|
195
233
|
listInboxTasks(assigneeMemberId: string): Promise<readonly TaskEntity[]>;
|
|
234
|
+
/**
|
|
235
|
+
* The open tasks that are this member's own to act on — the single
|
|
236
|
+
* definition behind both the inbox list and the dashboard counters, so the
|
|
237
|
+
* two can never disagree. A task is theirs when it is assigned to them, or
|
|
238
|
+
* when they hold a PENDING or CLAIMED candidate row on it. A sequential
|
|
239
|
+
* chain's later candidates sit in WAITING until it is their turn, so a task
|
|
240
|
+
* that has not reached them is not theirs yet.
|
|
241
|
+
*/
|
|
242
|
+
private readOpenInboxTasks;
|
|
196
243
|
listApprovalHistoryTasks(assigneeMemberId: string): Promise<readonly TaskEntity[]>;
|
|
197
244
|
listTaskDecisions(taskId: string, scope?: WorkflowReadScope): Promise<readonly TaskDecisionEntity[]>;
|
|
198
245
|
listTaskCandidates(taskId: string, scope?: WorkflowReadScope): Promise<readonly TaskCandidateEntity[]>;
|
|
199
246
|
private attachTaskCandidateSummaries;
|
|
247
|
+
/**
|
|
248
|
+
* The display names of the nodes a page of tasks sits on, keyed by
|
|
249
|
+
* {@link readNodeLabelKey}. One query for the whole page, and Postgres picks
|
|
250
|
+
* the labels out of the snapshots: a workflow snapshot is a whole workflow
|
|
251
|
+
* definition, and every inbox, history and instance task list runs this, so
|
|
252
|
+
* shipping the snapshots to the app just to read one string each would cost
|
|
253
|
+
* page size × snapshot size on every refresh. A missing instance or node, a
|
|
254
|
+
* snapshot without a `nodes` array, and a blank or non-string label all
|
|
255
|
+
* leave the task without a label, as `readWorkflowNodeLabel` does.
|
|
256
|
+
*/
|
|
257
|
+
private readTaskNodeLabels;
|
|
200
258
|
private readDefaultInitiatorMetadataSnapshot;
|
|
201
259
|
listActivityLogs(instanceId: string, scope?: WorkflowReadScope): Promise<readonly ActivityLogEntity[]>;
|
|
202
260
|
private assertTaskReadable;
|
|
@@ -210,6 +268,7 @@ export declare class WorkflowEngineService {
|
|
|
210
268
|
private skipNodeByEntryCondition;
|
|
211
269
|
private skipNodeByInitiatorExclusion;
|
|
212
270
|
private skipNode;
|
|
271
|
+
private consumeToken;
|
|
213
272
|
private readAvailableOutgoingEdges;
|
|
214
273
|
private evaluateWorkflowEdge;
|
|
215
274
|
private readLastDecisionContext;
|
|
@@ -229,8 +288,8 @@ export declare class WorkflowEngineService {
|
|
|
229
288
|
* are kept: (task_id, member_id) is unique, and that member signs from the
|
|
230
289
|
* row they already have. On a node that excludes the initiator the stored
|
|
231
290
|
* values are kept as well when the new delegation path would run through the
|
|
232
|
-
* initiator: creation already filtered such paths out, and a
|
|
233
|
-
* while the candidate waited must not bring them back.
|
|
291
|
+
* initiator or the submitter: creation already filtered such paths out, and a
|
|
292
|
+
* delegation added while the candidate waited must not bring them back.
|
|
234
293
|
*/
|
|
235
294
|
private resolveActivationDelegation;
|
|
236
295
|
private markTaskCandidateDecision;
|
|
@@ -245,17 +304,33 @@ export declare class WorkflowEngineService {
|
|
|
245
304
|
private resolveInitiatorManagerReplacements;
|
|
246
305
|
private buildDelegationContext;
|
|
247
306
|
private delegateResolvedCandidates;
|
|
307
|
+
/** One member's delegation, grade-gated as {@link applyGradeGate} says. */
|
|
308
|
+
private resolveDelegation;
|
|
309
|
+
/**
|
|
310
|
+
* Manual transfer on a manager-chain node: the target must hold at least the
|
|
311
|
+
* grade of the member being replaced, i.e. the original principal of the
|
|
312
|
+
* deciding candidate (the first hop of its delegation chain when it was
|
|
313
|
+
* delegated, otherwise the actor). No grade on the principal means no
|
|
314
|
+
* constraint.
|
|
315
|
+
*/
|
|
316
|
+
private assertTransferTargetGrade;
|
|
248
317
|
private resolveApproverResolver;
|
|
249
318
|
private resolvePositionCandidates;
|
|
250
319
|
private resolveInitiatorManagerCandidates;
|
|
251
320
|
/**
|
|
252
321
|
* Walks up the initiator's manager chain, nearest manager first, until a
|
|
253
322
|
* manager whose position level reaches `minPositionLevel` is added. The
|
|
254
|
-
* list is returned nearest manager first.
|
|
323
|
+
* list is returned nearest manager first. Members in `skippedMemberIds` are
|
|
324
|
+
* walked past without joining the chain or counting as the stopping point.
|
|
255
325
|
*/
|
|
256
326
|
private resolveOrgManagerChainCandidates;
|
|
257
327
|
/** Highest position level over the member's active memberships, or `null`. */
|
|
258
328
|
private readMemberPositionLevel;
|
|
329
|
+
/**
|
|
330
|
+
* {@link readMemberPositionLevel} for several members in two queries: every
|
|
331
|
+
* requested member is in the map, `null` when they hold no graded position.
|
|
332
|
+
*/
|
|
333
|
+
private readMemberPositionLevels;
|
|
259
334
|
private resolveFallbackAssignee;
|
|
260
335
|
private resolveManagerMemberIdsFromOrganization;
|
|
261
336
|
private resolveManagerMemberIdsAtLevel;
|
|
@@ -265,7 +340,9 @@ export declare class WorkflowEngineService {
|
|
|
265
340
|
private resolveManagerResolutionCandidates;
|
|
266
341
|
private resolveOrgUnitMemberCandidates;
|
|
267
342
|
private resolveOrgUnitPositionCandidates;
|
|
268
|
-
private
|
|
343
|
+
private readPositionName;
|
|
344
|
+
/** The org unit's name and the ids it covers, or `null` once it is gone. */
|
|
345
|
+
private readOrgUnitScope;
|
|
269
346
|
private processExclusiveGateway;
|
|
270
347
|
private executeServiceTask;
|
|
271
348
|
private rejectInstance;
|