@rytass/bpm-core-shared 0.23.0 → 0.24.0
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 +23 -0
- package/README.md +14 -4
- package/package.json +1 -1
- package/src/lib/field-access-lint.d.ts +5 -3
- package/src/lib/field-access-lint.js +7 -0
- package/src/lib/field-access-lint.js.map +1 -1
- package/src/lib/workflow-graph.d.ts +61 -5
- package/src/lib/workflow-graph.js +208 -4
- package/src/lib/workflow-graph.js.map +1 -1
- package/src/lib/workflow-toolset.js +67 -25
- package/src/lib/workflow-toolset.js.map +1 -1
- package/src/lib/workflow.d.ts +41 -3
- package/src/lib/workflow.js +48 -16
- package/src/lib/workflow.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,26 @@
|
|
|
1
|
+
## 0.24.0 (2026-11-14)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- **bpm-core:** page the stuck approval instance list ([6cd50975](https://github.com/Rytass/BPMCore/commit/6cd50975))
|
|
6
|
+
- **bpm-core-react:** mount the stuck approval instances page like the other admin pages ([fc19c298](https://github.com/Rytass/BPMCore/commit/fc19c298))
|
|
7
|
+
- let reassignMemberTasks take an optional list of task ids ([4b3c22a1](https://github.com/Rytass/BPMCore/commit/4b3c22a1))
|
|
8
|
+
- **shared:** let a manager chain continue an earlier chain or skip when its start already qualifies ([fbcd813c](https://github.com/Rytass/BPMCore/commit/fbcd813c))
|
|
9
|
+
|
|
10
|
+
### 🩹 Fixes
|
|
11
|
+
|
|
12
|
+
- **bpm-core:** tell the initiator of an administrator cancel only after it commits ([2fca97e7](https://github.com/Rytass/BPMCore/commit/2fca97e7))
|
|
13
|
+
- **bpm-core:** export the administrator cancel input like the other workflow inputs ([988981ae](https://github.com/Rytass/BPMCore/commit/988981ae))
|
|
14
|
+
|
|
15
|
+
### 🔥 Performance
|
|
16
|
+
|
|
17
|
+
- **workflow-engine:** index the ADVANCE_FAILED rows the stuck list reads ([2cf16d8d](https://github.com/Rytass/BPMCore/commit/2cf16d8d))
|
|
18
|
+
|
|
19
|
+
### ❤️ Thank You
|
|
20
|
+
|
|
21
|
+
- Chia Yu Pai @fantasywind
|
|
22
|
+
- Kai-Chieh Yang
|
|
23
|
+
|
|
1
24
|
## 0.23.0 (2026-11-14)
|
|
2
25
|
|
|
3
26
|
### 🚀 Features
|
package/README.md
CHANGED
|
@@ -70,10 +70,20 @@ without a `mode` normalize to `single`; `radio` is always single and
|
|
|
70
70
|
`POSITION`). The `POSITION` fallback type is not released yet (it landed after
|
|
71
71
|
`v0.16.2`); older engines reject it at run time.
|
|
72
72
|
`ORG_MANAGER_CHAIN` also takes `startFrom` (`OrgManagerChainStart`: the
|
|
73
|
-
initiator, the person picked in a form field,
|
|
74
|
-
earlier stage
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
initiator, the person picked in a form field, the person who approved an
|
|
74
|
+
earlier stage, or `CHAIN_CONTINUATION` to continue an earlier manager-chain
|
|
75
|
+
stage by `nodeId`), `startPositionLevel` (managers below it are walked past)
|
|
76
|
+
and `skipWhenStartReached` (skip the whole stage when the start person's own
|
|
77
|
+
position level already reaches `minPositionLevel`); all are optional. A
|
|
78
|
+
continuation only signs managers above the level the earlier stage actually
|
|
79
|
+
reached, and skips the stage when that level already reaches its own
|
|
80
|
+
`minPositionLevel`. `CHAIN_CONTINUATION` and `skipWhenStartReached: true`
|
|
81
|
+
exclude each other, and a notify node may use neither
|
|
82
|
+
(`readOrgManagerChainIssue`); `readChainContinuationSourceIssues` checks the
|
|
83
|
+
earlier stage. An engine that knows `startFrom` but not `CHAIN_CONTINUATION`
|
|
84
|
+
refuses it by name; an engine from before `startFrom` ignores `startFrom` and
|
|
85
|
+
`startPositionLevel` and climbs from the initiator, and one from before
|
|
86
|
+
`skipWhenStartReached` ignores that key and runs the stage as before.
|
|
77
87
|
- Service task actions (`ServiceAction`) have three types. The workflow engine
|
|
78
88
|
executes all three at run time:
|
|
79
89
|
- `NOTIFY`: `channels`, `recipients` (an `ApproverResolver`), optional
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@ export { isOnOwnParallelBranch, readReachableWorkflowNodeIds, readWorkflowParall
|
|
|
11
11
|
* filled it in) stays in the backend: it needs the expression sources of
|
|
12
12
|
* every node, which the matrix does not show.
|
|
13
13
|
*/
|
|
14
|
-
export type FieldAccessIssueCode = 'applicantRuleReadsApproverFilled' | 'approverFilledFieldDataSource' | 'approverFilledFieldFileUpload' | 'approverFilledFieldFormRule' | 'approverFilledMultipleFillNodesOnPath' | 'approverFilledTableDataSourceColumn' | 'fieldAccessAutoApprove' | 'fieldAccessDuplicate' | 'fieldAccessFillHidden' | 'fieldAccessGroupPolicy' | 'fieldAccessInvalid' | 'fieldAccessSkipNode' | 'fieldAccessUnknownField' | 'legacyFieldPermissions' | 'setFormFieldApproverFilled';
|
|
14
|
+
export type FieldAccessIssueCode = 'applicantRuleReadsApproverFilled' | 'approverFilledFieldDataSource' | 'approverFilledFieldFileUpload' | 'approverFilledFieldFormRule' | 'approverFilledMultipleFillNodesOnPath' | 'approverFilledTableDataSourceColumn' | 'fieldAccessAutoApprove' | 'fieldAccessDuplicate' | 'fieldAccessFillHidden' | 'fieldAccessGroupPolicy' | 'fieldAccessInvalid' | 'fieldAccessManagerChainReached' | 'fieldAccessSkipNode' | 'fieldAccessUnknownField' | 'legacyFieldPermissions' | 'setFormFieldApproverFilled';
|
|
15
15
|
export interface FieldAccessIssue {
|
|
16
16
|
readonly code: FieldAccessIssueCode;
|
|
17
17
|
/** The top-level fields the issue is about, the offending one first. */
|
|
@@ -25,9 +25,11 @@ export interface FieldAccessIssue {
|
|
|
25
25
|
* Why a user task node cannot let its approver fill fields in: a decision
|
|
26
26
|
* shared by several approvers (`PARALLEL_ALL` / `QUORUM`) has no single
|
|
27
27
|
* filler, and a node that can approve or skip itself would pass without
|
|
28
|
-
* anybody filling anything in.
|
|
28
|
+
* anybody filling anything in. A manager chain that skips itself when its
|
|
29
|
+
* start person already reaches its level (`skipWhenStartReached`, or a
|
|
30
|
+
* continuation of an earlier chain) can pass the same way.
|
|
29
31
|
*/
|
|
30
|
-
export type UserTaskFillConflict = 'autoApprove' | 'groupPolicy' | 'skipNode';
|
|
32
|
+
export type UserTaskFillConflict = 'autoApprove' | 'groupPolicy' | 'managerChainReached' | 'skipNode';
|
|
31
33
|
export declare function readUserTaskFillConflicts(node: UserTaskNode): readonly UserTaskFillConflict[];
|
|
32
34
|
export declare const FIELD_ACCESS_DISPLAYS: readonly FieldAccessDisplay[];
|
|
33
35
|
export declare const FIELD_ACCESS_FILLS: readonly FieldAccessFill[];
|
|
@@ -30,6 +30,9 @@ function readUserTaskFillConflicts(node) {
|
|
|
30
30
|
...(((_d = node.data.excludeInitiator) === null || _d === void 0 ? void 0 : _d.whenEmpty) === 'SKIP_NODE'
|
|
31
31
|
? ['skipNode']
|
|
32
32
|
: []),
|
|
33
|
+
...((0, workflow_graph_1.canUserTaskBeSkippedByManagerChain)(node)
|
|
34
|
+
? ['managerChainReached']
|
|
35
|
+
: []),
|
|
33
36
|
];
|
|
34
37
|
}
|
|
35
38
|
const FILL_CONFLICT_ISSUES = {
|
|
@@ -41,6 +44,10 @@ const FILL_CONFLICT_ISSUES = {
|
|
|
41
44
|
code: 'fieldAccessGroupPolicy',
|
|
42
45
|
message: workflow_graph_1.WORKFLOW_LINT_MESSAGES.fieldAccessGroupPolicy,
|
|
43
46
|
},
|
|
47
|
+
managerChainReached: {
|
|
48
|
+
code: 'fieldAccessManagerChainReached',
|
|
49
|
+
message: workflow_graph_1.WORKFLOW_LINT_MESSAGES.fieldAccessManagerChainReached,
|
|
50
|
+
},
|
|
44
51
|
skipNode: {
|
|
45
52
|
code: 'fieldAccessSkipNode',
|
|
46
53
|
message: workflow_graph_1.WORKFLOW_LINT_MESSAGES.fieldAccessSkipNode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-access-lint.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/field-access-lint.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"field-access-lint.js","sourceRoot":"","sources":["../../../../../libs/shared/src/lib/field-access-lint.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,6 +87,7 @@ export declare const WORKFLOW_LINT_MESSAGES: Readonly<{
|
|
|
87
87
|
fieldAccessFillHidden: (nodeId: string, fieldKey: string) => string;
|
|
88
88
|
fieldAccessGroupPolicy: (nodeId: string) => string;
|
|
89
89
|
fieldAccessInvalid: (nodeId: string) => string;
|
|
90
|
+
fieldAccessManagerChainReached: (nodeId: string) => string;
|
|
90
91
|
fieldAccessSkipNode: (nodeId: string) => string;
|
|
91
92
|
fieldAccessUnknownField: (nodeId: string, fieldKey: string) => string;
|
|
92
93
|
legacyFieldPermissions: (nodeId: string) => string;
|
|
@@ -317,9 +318,11 @@ export declare function readExcludeNodeActorsIssues(definition: WorkflowDefiniti
|
|
|
317
318
|
*/
|
|
318
319
|
export declare function isOrgManagerChainDecisionPolicyInvalid(resolver: ApproverResolver, decisionPolicy: DecisionPolicy | undefined): boolean;
|
|
319
320
|
/**
|
|
320
|
-
* The designer-facing issue with the
|
|
321
|
-
* `ORG_MANAGER_CHAIN` (`minPositionLevel`, `startFrom`, `startPositionLevel
|
|
322
|
-
* or `null` when all are well-formed.
|
|
321
|
+
* The designer-facing issue with the optional settings of an
|
|
322
|
+
* `ORG_MANAGER_CHAIN` (`minPositionLevel`, `startFrom`, `startPositionLevel`,
|
|
323
|
+
* `skipWhenStartReached`), or `null` when all are well-formed. A
|
|
324
|
+
* `CHAIN_CONTINUATION` start and `skipWhenStartReached` exclude each other,
|
|
325
|
+
* and a notify node may use neither. `subject` names the node kind in the
|
|
323
326
|
* sentence; a notify node's chain may only start at the initiator (it has no
|
|
324
327
|
* earlier stage and no form pick to start from). Reads defensively: on the
|
|
325
328
|
* backend the definition is parsed JSON that no DTO has validated. The form
|
|
@@ -341,14 +344,24 @@ export declare function readApproverResolverIssue(resolver: ApproverResolver): s
|
|
|
341
344
|
* - `skipNodeByNodeActors`: `excludeNodeActors.whenEmpty: 'SKIP_NODE'` skips
|
|
342
345
|
* it when removing an earlier stage's approvers leaves nobody;
|
|
343
346
|
* - `autoApprove`: `sla.onTimeout: 'AUTO_APPROVE'` lets the timeout approve
|
|
344
|
-
* it, and the engine does not count an SLA approval as anyone's signature
|
|
347
|
+
* it, and the engine does not count an SLA approval as anyone's signature;
|
|
348
|
+
* - `managerChainReached`: a manager chain with `skipWhenStartReached: true`,
|
|
349
|
+
* or one that continues an earlier chain (`CHAIN_CONTINUATION`), skips the
|
|
350
|
+
* whole stage when the start person already reaches its level.
|
|
345
351
|
*
|
|
346
352
|
* `[]` means the node always has a real signer once it has run. The designer's
|
|
347
353
|
* stage pickers, `readNodeActorSourceIssues` and
|
|
348
354
|
* `readExcludeNodeActorsIssues` all read this list, so they cannot disagree on
|
|
349
355
|
* which stages qualify.
|
|
350
356
|
*/
|
|
351
|
-
export type NodeActorSourceSkipReason = 'autoApprove' | 'entryCondition' | 'skipNode' | 'skipNodeByNodeActors';
|
|
357
|
+
export type NodeActorSourceSkipReason = 'autoApprove' | 'entryCondition' | 'managerChainReached' | 'skipNode' | 'skipNodeByNodeActors';
|
|
358
|
+
/**
|
|
359
|
+
* `true` when an `ORG_MANAGER_CHAIN` user task can skip its whole stage
|
|
360
|
+
* because the start person already reaches the chain's level: it sets
|
|
361
|
+
* `skipWhenStartReached: true`, or continues an earlier chain. Reads the raw
|
|
362
|
+
* resolver, which can be missing or malformed on a draft.
|
|
363
|
+
*/
|
|
364
|
+
export declare function canUserTaskBeSkippedByManagerChain(node: UserTaskNode): boolean;
|
|
352
365
|
export declare function readNodeActorSourceSkipReasons(node: UserTaskNode): readonly NodeActorSourceSkipReason[];
|
|
353
366
|
/**
|
|
354
367
|
* The graph checks behind a `NODE_ACTOR` / `NODE_ACTOR_MANAGER` node: the
|
|
@@ -412,6 +425,49 @@ export declare function canUserTaskHaveMultipleApprovers(node: UserTaskNode): bo
|
|
|
412
425
|
* user task is reported there, not here.
|
|
413
426
|
*/
|
|
414
427
|
export declare function readSingleApproverSourceIssues(definition: WorkflowDefinition, sourceNodeIds: readonly string[]): readonly string[];
|
|
428
|
+
/**
|
|
429
|
+
* The publish-time issues with a manager-chain stage that continues an earlier
|
|
430
|
+
* one (`startFrom: { type: 'CHAIN_CONTINUATION', nodeId }`); `[]` when `nodeId`
|
|
431
|
+
* is not such a stage or everything is sound. Returns Chinese issue lines for
|
|
432
|
+
* the designer and the publish lint. `nodeId` is the continuing stage (T); the
|
|
433
|
+
* stage it names is S. The shape of the start itself is
|
|
434
|
+
* {@link readOrgManagerChainIssue}'s.
|
|
435
|
+
*
|
|
436
|
+
* About S, and reported on its own (nothing else about S is read once one of
|
|
437
|
+
* them fails):
|
|
438
|
+
*
|
|
439
|
+
* 1. it is not T itself, exists and is a `userTask`;
|
|
440
|
+
* 2. its approver is an `ORG_MANAGER_CHAIN`;
|
|
441
|
+
* 3. it is not a continuation itself: stages are not chained more than once;
|
|
442
|
+
* 4. its start is the initiator or an earlier stage's approver
|
|
443
|
+
* (`INITIATOR` / `NODE_ACTOR`, absent reads as the initiator). A
|
|
444
|
+
* `FORM_MEMBER` start can change when the applicant revises the form, while
|
|
445
|
+
* the approvals T reads are those of the old start.
|
|
446
|
+
*
|
|
447
|
+
* Then, reported together:
|
|
448
|
+
*
|
|
449
|
+
* 5. S may not be skipped by `entryCondition`, `skipNode` or
|
|
450
|
+
* `skipNodeByNodeActors`. This deliberately does **not** reuse
|
|
451
|
+
* {@link readNodeActorSourceSkipReasons} as a whole, which
|
|
452
|
+
* {@link readExcludeNodeActorsIssues} does: S skipped for
|
|
453
|
+
* `managerChainReached` is read by the engine as "nobody reached a level"
|
|
454
|
+
* and S with an SLA auto-approval is not counted, so both stay allowed;
|
|
455
|
+
* 6. every path from the start to T goes through S, and S is upstream of T
|
|
456
|
+
* (the coverage and upstream rules of {@link readExcludeNodeActorsIssues}).
|
|
457
|
+
*
|
|
458
|
+
* About T itself, always reported:
|
|
459
|
+
*
|
|
460
|
+
* 7. T's `minPositionLevel` is higher than S's: at or below it, any S that
|
|
461
|
+
* reaches its own level would skip T every time, which is almost never
|
|
462
|
+
* intended;
|
|
463
|
+
* 8. T may not hand over to the initiator's manager when it runs out of people
|
|
464
|
+
* (`whenEmpty: INITIATOR_MANAGER` of `excludeInitiator` or
|
|
465
|
+
* `excludeNodeActors`): that manager ignores the level S reached and may be
|
|
466
|
+
* the person who just signed.
|
|
467
|
+
*
|
|
468
|
+
* The graph is a DAG: the publish lint refuses cycles before this runs.
|
|
469
|
+
*/
|
|
470
|
+
export declare function readChainContinuationSourceIssues(definition: WorkflowDefinition, nodeId: string): readonly string[];
|
|
415
471
|
export declare function hasConfiguredConditionEdges(definition: WorkflowDefinition): boolean;
|
|
416
472
|
export declare function readServiceTaskMemberIds(action: ServiceAction): readonly string[];
|
|
417
473
|
export declare const NOTIFY_WEBHOOK_TARGET_LIMIT = 10;
|
|
@@ -40,10 +40,12 @@ exports.readExcludeNodeActorsIssues = readExcludeNodeActorsIssues;
|
|
|
40
40
|
exports.isOrgManagerChainDecisionPolicyInvalid = isOrgManagerChainDecisionPolicyInvalid;
|
|
41
41
|
exports.readOrgManagerChainIssue = readOrgManagerChainIssue;
|
|
42
42
|
exports.readApproverResolverIssue = readApproverResolverIssue;
|
|
43
|
+
exports.canUserTaskBeSkippedByManagerChain = canUserTaskBeSkippedByManagerChain;
|
|
43
44
|
exports.readNodeActorSourceSkipReasons = readNodeActorSourceSkipReasons;
|
|
44
45
|
exports.readNodeActorSourceIssues = readNodeActorSourceIssues;
|
|
45
46
|
exports.canUserTaskHaveMultipleApprovers = canUserTaskHaveMultipleApprovers;
|
|
46
47
|
exports.readSingleApproverSourceIssues = readSingleApproverSourceIssues;
|
|
48
|
+
exports.readChainContinuationSourceIssues = readChainContinuationSourceIssues;
|
|
47
49
|
exports.hasConfiguredConditionEdges = hasConfiguredConditionEdges;
|
|
48
50
|
exports.readServiceTaskMemberIds = readServiceTaskMemberIds;
|
|
49
51
|
exports.defaultNotifyWebhookTargetId = defaultNotifyWebhookTargetId;
|
|
@@ -169,6 +171,7 @@ exports.WORKFLOW_LINT_MESSAGES = Object.freeze({
|
|
|
169
171
|
fieldAccessFillHidden: (nodeId, fieldKey) => `workflow.nodes.${nodeId}.fieldAccess cannot let a field be filled in while it is hidden: ${fieldKey}`,
|
|
170
172
|
fieldAccessGroupPolicy: (nodeId) => `workflow.nodes.${nodeId}.fieldAccess cannot make fields fillable on a PARALLEL_ALL or QUORUM node`,
|
|
171
173
|
fieldAccessInvalid: (nodeId) => `workflow.nodes.${nodeId}.fieldAccess is invalid`,
|
|
174
|
+
fieldAccessManagerChainReached: (nodeId) => `workflow.nodes.${nodeId}.approverResolver cannot set skipWhenStartReached or continue another chain on a node with fillable fields`,
|
|
172
175
|
fieldAccessSkipNode: (nodeId) => `workflow.nodes.${nodeId}.excludeInitiator.whenEmpty cannot be SKIP_NODE on a node with fillable fields`,
|
|
173
176
|
fieldAccessUnknownField: (nodeId, fieldKey) => `workflow.nodes.${nodeId}.fieldAccess must name a field of the bound form: ${fieldKey}`,
|
|
174
177
|
legacyFieldPermissions: (nodeId) => `workflow.nodes.${nodeId}.fieldPermissions is no longer supported: remove it and use fieldAccess instead`,
|
|
@@ -881,9 +884,11 @@ function isOrgManagerChainDecisionPolicyInvalid(resolver, decisionPolicy) {
|
|
|
881
884
|
(decisionPolicy === null || decisionPolicy === void 0 ? void 0 : decisionPolicy.type) !== 'PARALLEL_ALL');
|
|
882
885
|
}
|
|
883
886
|
/**
|
|
884
|
-
* The designer-facing issue with the
|
|
885
|
-
* `ORG_MANAGER_CHAIN` (`minPositionLevel`, `startFrom`, `startPositionLevel
|
|
886
|
-
* or `null` when all are well-formed.
|
|
887
|
+
* The designer-facing issue with the optional settings of an
|
|
888
|
+
* `ORG_MANAGER_CHAIN` (`minPositionLevel`, `startFrom`, `startPositionLevel`,
|
|
889
|
+
* `skipWhenStartReached`), or `null` when all are well-formed. A
|
|
890
|
+
* `CHAIN_CONTINUATION` start and `skipWhenStartReached` exclude each other,
|
|
891
|
+
* and a notify node may use neither. `subject` names the node kind in the
|
|
887
892
|
* sentence; a notify node's chain may only start at the initiator (it has no
|
|
888
893
|
* earlier stage and no form pick to start from). Reads defensively: on the
|
|
889
894
|
* backend the definition is parsed JSON that no DTO has validated. The form
|
|
@@ -913,11 +918,29 @@ function readOrgManagerChainIssue(resolver, subject) {
|
|
|
913
918
|
(!Array.isArray(start.nodeIds) || start.nodeIds.length === 0)) {
|
|
914
919
|
return `${subject}需要指定主管鏈起點的前面簽核關卡。`;
|
|
915
920
|
}
|
|
921
|
+
if (start.type === 'CHAIN_CONTINUATION' &&
|
|
922
|
+
(typeof start.nodeId !== 'string' || !start.nodeId.trim())) {
|
|
923
|
+
return `${subject}需要指定要接續的前一段主管鏈關卡。`;
|
|
924
|
+
}
|
|
925
|
+
}
|
|
926
|
+
const rawSkip = resolver.skipWhenStartReached;
|
|
927
|
+
if (rawSkip !== undefined &&
|
|
928
|
+
rawSkip !== null &&
|
|
929
|
+
typeof rawSkip !== 'boolean') {
|
|
930
|
+
return `${subject}的「起點本人已達簽到職等時略過」只能是勾選或不勾選。`;
|
|
916
931
|
}
|
|
917
932
|
if (subject === '知會節點' &&
|
|
918
933
|
!(0, workflow_1.isOrgManagerChainStartedFromInitiator)(resolver)) {
|
|
919
934
|
return '知會節點的主管鏈只能從發起人開始。';
|
|
920
935
|
}
|
|
936
|
+
if (subject === '知會節點' &&
|
|
937
|
+
(0, workflow_1.isOrgManagerChainSkippingWhenStartReached)(resolver)) {
|
|
938
|
+
return '知會節點的主管鏈不能設定「起點本人已達簽到職等時略過」。';
|
|
939
|
+
}
|
|
940
|
+
if ((0, workflow_1.isOrgManagerChainContinuation)(resolver) &&
|
|
941
|
+
(0, workflow_1.isOrgManagerChainSkippingWhenStartReached)(resolver)) {
|
|
942
|
+
return `${subject}不能同時接續前一段主管鏈又設定「起點本人已達簽到職等時略過」。`;
|
|
943
|
+
}
|
|
921
944
|
const rawStartLevel = resolver.startPositionLevel;
|
|
922
945
|
if (rawStartLevel === undefined || rawStartLevel === null) {
|
|
923
946
|
return null;
|
|
@@ -994,6 +1017,18 @@ function readApproverResolverIssue(resolver) {
|
|
|
994
1017
|
}
|
|
995
1018
|
return null;
|
|
996
1019
|
}
|
|
1020
|
+
/**
|
|
1021
|
+
* `true` when an `ORG_MANAGER_CHAIN` user task can skip its whole stage
|
|
1022
|
+
* because the start person already reaches the chain's level: it sets
|
|
1023
|
+
* `skipWhenStartReached: true`, or continues an earlier chain. Reads the raw
|
|
1024
|
+
* resolver, which can be missing or malformed on a draft.
|
|
1025
|
+
*/
|
|
1026
|
+
function canUserTaskBeSkippedByManagerChain(node) {
|
|
1027
|
+
const resolver = node.data.approverResolver;
|
|
1028
|
+
return ((resolver === null || resolver === void 0 ? void 0 : resolver.type) === 'ORG_MANAGER_CHAIN' &&
|
|
1029
|
+
((0, workflow_1.isOrgManagerChainSkippingWhenStartReached)(resolver) ||
|
|
1030
|
+
(0, workflow_1.isOrgManagerChainContinuation)(resolver)));
|
|
1031
|
+
}
|
|
997
1032
|
function readNodeActorSourceSkipReasons(node) {
|
|
998
1033
|
var _a, _b, _c, _d;
|
|
999
1034
|
return [
|
|
@@ -1007,11 +1042,15 @@ function readNodeActorSourceSkipReasons(node) {
|
|
|
1007
1042
|
...(((_d = node.data.sla) === null || _d === void 0 ? void 0 : _d.onTimeout) === 'AUTO_APPROVE'
|
|
1008
1043
|
? ['autoApprove']
|
|
1009
1044
|
: []),
|
|
1045
|
+
...(canUserTaskBeSkippedByManagerChain(node)
|
|
1046
|
+
? ['managerChainReached']
|
|
1047
|
+
: []),
|
|
1010
1048
|
];
|
|
1011
1049
|
}
|
|
1012
1050
|
const NODE_ACTOR_SOURCE_SKIP_ISSUES = {
|
|
1013
1051
|
autoApprove: (label) => `簽核來源的前面關卡 ${label} 設有逾時自動核准,可能沒有人實際簽核。`,
|
|
1014
1052
|
entryCondition: (label) => `簽核來源的前面關卡 ${label} 設有進入條件,可能被跳過、沒有人簽核。`,
|
|
1053
|
+
managerChainReached: (label) => `簽核來源的前面關卡 ${label} 的主管鏈在起點本人已達簽到職等時會整關略過,可能沒有人簽核。`,
|
|
1015
1054
|
skipNode: (label) => `簽核來源的前面關卡 ${label} 在排除發起人後沒人時會跳過此關,可能沒有人簽核。`,
|
|
1016
1055
|
skipNodeByNodeActors: (label) => `簽核來源的前面關卡 ${label} 在排除前面關卡的簽核者後沒人時會跳過此關,可能沒有人簽核。`,
|
|
1017
1056
|
};
|
|
@@ -1026,6 +1065,7 @@ const EXCLUDE_NODE_ACTORS_STAGE_TEXTS = {
|
|
|
1026
1065
|
skip: {
|
|
1027
1066
|
autoApprove: (stageLabel) => `排除對象的前面關卡 ${stageLabel} 設有逾時自動核准,可能沒有人實際簽核,這一關就排除不到任何人。請移除逾時自動核准,或改選其他關卡。`,
|
|
1028
1067
|
entryCondition: (stageLabel) => `排除對象的前面關卡 ${stageLabel} 設有進入條件,可能被跳過;被跳過時會改讀到上一輪的簽核者。請改用分流,把兩關放在同一條路線上。`,
|
|
1068
|
+
managerChainReached: (stageLabel) => `排除對象的前面關卡 ${stageLabel} 的主管鏈在起點本人已達簽到職等時會整關略過,可能被跳過;被跳過時會改讀到上一輪的簽核者。請改選其他關卡。`,
|
|
1029
1069
|
skipNode: (stageLabel) => `排除對象的前面關卡 ${stageLabel} 在排除發起人後沒人時會跳過此關,可能被跳過;被跳過時會改讀到上一輪的簽核者。請改選其他處理方式。`,
|
|
1030
1070
|
skipNodeByNodeActors: (stageLabel) => `排除對象的前面關卡 ${stageLabel} 在排除前面關卡的簽核者後沒人時會跳過此關,可能被跳過;被跳過時會改讀到上一輪的簽核者。請改選其他處理方式。`,
|
|
1031
1071
|
},
|
|
@@ -1057,6 +1097,21 @@ function readSourceStageIssues(definition, nodeId, stageIds, coverageGroups, tex
|
|
|
1057
1097
|
? readNodeActorSourceSkipReasons(node).map((reason) => texts.skip[reason](labelOf(node.id)))
|
|
1058
1098
|
: [];
|
|
1059
1099
|
});
|
|
1100
|
+
return [
|
|
1101
|
+
...skippableIssues,
|
|
1102
|
+
...readSourceStagePositionIssues(definition, nodeId, stageIds, coverageGroups, texts),
|
|
1103
|
+
];
|
|
1104
|
+
}
|
|
1105
|
+
/**
|
|
1106
|
+
* The coverage and upstream halves of {@link readSourceStageIssues}, without
|
|
1107
|
+
* its skip-reason rule: for a reader (the manager-chain continuation) that
|
|
1108
|
+
* accepts some of the reasons a stage may be skipped for and brings its own.
|
|
1109
|
+
*/
|
|
1110
|
+
function readSourceStagePositionIssues(definition, nodeId, stageIds, coverageGroups, texts) {
|
|
1111
|
+
const labelOf = (id) => {
|
|
1112
|
+
const node = definition.nodes.find((candidate) => candidate.id === id);
|
|
1113
|
+
return (node === null || node === void 0 ? void 0 : node.data.label) ? `「${node.data.label}」` : `「${id}」`;
|
|
1114
|
+
};
|
|
1060
1115
|
const startNodeIds = definition.nodes
|
|
1061
1116
|
.filter((node) => node.type === 'startEvent')
|
|
1062
1117
|
.map((node) => node.id);
|
|
@@ -1066,7 +1121,7 @@ function readSourceStageIssues(definition, nodeId, stageIds, coverageGroups, tex
|
|
|
1066
1121
|
const notUpstreamIssues = stageIds
|
|
1067
1122
|
.filter((id) => !(0, workflow_reachability_1.readReachableWorkflowNodeIds)(definition.edges, [id]).has(nodeId))
|
|
1068
1123
|
.map((id) => texts.notUpstream(labelOf(id), labelOf(nodeId)));
|
|
1069
|
-
return [...
|
|
1124
|
+
return [...coverageIssues, ...notUpstreamIssues];
|
|
1070
1125
|
}
|
|
1071
1126
|
/**
|
|
1072
1127
|
* The graph checks behind a `NODE_ACTOR` / `NODE_ACTOR_MANAGER` node: the
|
|
@@ -1195,6 +1250,155 @@ function readSingleApproverSourceIssues(definition, sourceNodeIds) {
|
|
|
1195
1250
|
];
|
|
1196
1251
|
});
|
|
1197
1252
|
}
|
|
1253
|
+
/**
|
|
1254
|
+
* The reasons a previous chain stage may be skipped that a continuation still
|
|
1255
|
+
* refuses: in each of them the stage did not run this round, so the approvals
|
|
1256
|
+
* the continuation would read belong to an earlier round. A stage skipped for
|
|
1257
|
+
* `managerChainReached` is accepted (the engine reads its skip record and
|
|
1258
|
+
* treats the reached level as unknown), and so is an SLA auto-approval (the
|
|
1259
|
+
* engine does not count it).
|
|
1260
|
+
*/
|
|
1261
|
+
const CHAIN_CONTINUATION_REFUSED_SKIP_REASONS = ['entryCondition', 'skipNode', 'skipNodeByNodeActors'];
|
|
1262
|
+
const CHAIN_CONTINUATION_SKIP_ISSUES = {
|
|
1263
|
+
entryCondition: (stageLabel) => `接續的前一段主管鏈 ${stageLabel} 設有進入條件,可能被跳過;被跳過時會讀到上一輪的簽核紀錄。請改用分流,把兩關放在同一條路線上。`,
|
|
1264
|
+
skipNode: (stageLabel) => `接續的前一段主管鏈 ${stageLabel} 在排除發起人後沒人時會跳過此關;被跳過時會讀到上一輪的簽核紀錄。請改選其他處理方式。`,
|
|
1265
|
+
skipNodeByNodeActors: (stageLabel) => `接續的前一段主管鏈 ${stageLabel} 在排除前面關卡的簽核者後沒人時會跳過此關;被跳過時會讀到上一輪的簽核紀錄。請改選其他處理方式。`,
|
|
1266
|
+
};
|
|
1267
|
+
const CHAIN_CONTINUATION_POSITION_TEXTS = {
|
|
1268
|
+
coverage: (stageLabels, nodeLabel) => `有一條路徑不會經過接續的前一段主管鏈 ${stageLabels.join('、')} 就走到 ${nodeLabel},那一趟沒有可以接續的簽核紀錄。請改用分流,把兩關放在同一條路線上。`,
|
|
1269
|
+
notUpstream: (stageLabel, nodeLabel) => `接續的前一段主管鏈 ${stageLabel} 不在 ${nodeLabel} 的上游,走不到這個節點,無法接續。`,
|
|
1270
|
+
};
|
|
1271
|
+
/**
|
|
1272
|
+
* The publish-time issues with a manager-chain stage that continues an earlier
|
|
1273
|
+
* one (`startFrom: { type: 'CHAIN_CONTINUATION', nodeId }`); `[]` when `nodeId`
|
|
1274
|
+
* is not such a stage or everything is sound. Returns Chinese issue lines for
|
|
1275
|
+
* the designer and the publish lint. `nodeId` is the continuing stage (T); the
|
|
1276
|
+
* stage it names is S. The shape of the start itself is
|
|
1277
|
+
* {@link readOrgManagerChainIssue}'s.
|
|
1278
|
+
*
|
|
1279
|
+
* About S, and reported on its own (nothing else about S is read once one of
|
|
1280
|
+
* them fails):
|
|
1281
|
+
*
|
|
1282
|
+
* 1. it is not T itself, exists and is a `userTask`;
|
|
1283
|
+
* 2. its approver is an `ORG_MANAGER_CHAIN`;
|
|
1284
|
+
* 3. it is not a continuation itself: stages are not chained more than once;
|
|
1285
|
+
* 4. its start is the initiator or an earlier stage's approver
|
|
1286
|
+
* (`INITIATOR` / `NODE_ACTOR`, absent reads as the initiator). A
|
|
1287
|
+
* `FORM_MEMBER` start can change when the applicant revises the form, while
|
|
1288
|
+
* the approvals T reads are those of the old start.
|
|
1289
|
+
*
|
|
1290
|
+
* Then, reported together:
|
|
1291
|
+
*
|
|
1292
|
+
* 5. S may not be skipped by `entryCondition`, `skipNode` or
|
|
1293
|
+
* `skipNodeByNodeActors`. This deliberately does **not** reuse
|
|
1294
|
+
* {@link readNodeActorSourceSkipReasons} as a whole, which
|
|
1295
|
+
* {@link readExcludeNodeActorsIssues} does: S skipped for
|
|
1296
|
+
* `managerChainReached` is read by the engine as "nobody reached a level"
|
|
1297
|
+
* and S with an SLA auto-approval is not counted, so both stay allowed;
|
|
1298
|
+
* 6. every path from the start to T goes through S, and S is upstream of T
|
|
1299
|
+
* (the coverage and upstream rules of {@link readExcludeNodeActorsIssues}).
|
|
1300
|
+
*
|
|
1301
|
+
* About T itself, always reported:
|
|
1302
|
+
*
|
|
1303
|
+
* 7. T's `minPositionLevel` is higher than S's: at or below it, any S that
|
|
1304
|
+
* reaches its own level would skip T every time, which is almost never
|
|
1305
|
+
* intended;
|
|
1306
|
+
* 8. T may not hand over to the initiator's manager when it runs out of people
|
|
1307
|
+
* (`whenEmpty: INITIATOR_MANAGER` of `excludeInitiator` or
|
|
1308
|
+
* `excludeNodeActors`): that manager ignores the level S reached and may be
|
|
1309
|
+
* the person who just signed.
|
|
1310
|
+
*
|
|
1311
|
+
* The graph is a DAG: the publish lint refuses cycles before this runs.
|
|
1312
|
+
*/
|
|
1313
|
+
function readChainContinuationSourceIssues(definition, nodeId) {
|
|
1314
|
+
var _a, _b;
|
|
1315
|
+
const self = definition.nodes.find((node) => node.id === nodeId);
|
|
1316
|
+
const selfResolver = ((self === null || self === void 0 ? void 0 : self.type) === 'userTask' ? self.data.approverResolver : undefined);
|
|
1317
|
+
if ((self === null || self === void 0 ? void 0 : self.type) !== 'userTask' ||
|
|
1318
|
+
(selfResolver === null || selfResolver === void 0 ? void 0 : selfResolver.type) !== 'ORG_MANAGER_CHAIN' ||
|
|
1319
|
+
!(0, workflow_1.isOrgManagerChainContinuation)(selfResolver)) {
|
|
1320
|
+
return [];
|
|
1321
|
+
}
|
|
1322
|
+
const selfStart = selfResolver.startFrom;
|
|
1323
|
+
const sourceId = selfStart
|
|
1324
|
+
.nodeId;
|
|
1325
|
+
// A missing id is the shape rule's to report (`readOrgManagerChainIssue`).
|
|
1326
|
+
if (typeof sourceId !== 'string' || sourceId.trim() === '') {
|
|
1327
|
+
return [];
|
|
1328
|
+
}
|
|
1329
|
+
const labelOf = (id) => {
|
|
1330
|
+
const node = definition.nodes.find((candidate) => candidate.id === id);
|
|
1331
|
+
return (node === null || node === void 0 ? void 0 : node.data.label) ? `「${node.data.label}」` : `「${id}」`;
|
|
1332
|
+
};
|
|
1333
|
+
const handOverIssues = [
|
|
1334
|
+
...(((_a = self.data.excludeInitiator) === null || _a === void 0 ? void 0 : _a.whenEmpty) === 'INITIATOR_MANAGER'
|
|
1335
|
+
? [
|
|
1336
|
+
`接續關卡 ${labelOf(nodeId)} 的「申請人不可簽核自己的單」不能選擇改派給申請人的直屬主管,這會繞過前一段已簽到的職等。`,
|
|
1337
|
+
]
|
|
1338
|
+
: []),
|
|
1339
|
+
...(((_b = self.data.excludeNodeActors) === null || _b === void 0 ? void 0 : _b.whenEmpty) === 'INITIATOR_MANAGER'
|
|
1340
|
+
? [
|
|
1341
|
+
`接續關卡 ${labelOf(nodeId)} 的「不可與前面關卡同一人」不能選擇改派給申請人的直屬主管,這會繞過前一段已簽到的職等。`,
|
|
1342
|
+
]
|
|
1343
|
+
: []),
|
|
1344
|
+
];
|
|
1345
|
+
const source = definition.nodes.find((node) => node.id === sourceId);
|
|
1346
|
+
if (sourceId === nodeId) {
|
|
1347
|
+
return ['接續的前一段主管鏈不可以是自己。', ...handOverIssues];
|
|
1348
|
+
}
|
|
1349
|
+
if (source === undefined) {
|
|
1350
|
+
return [`接續的前一段主管鏈「${sourceId}」不存在。`, ...handOverIssues];
|
|
1351
|
+
}
|
|
1352
|
+
if (source.type !== 'userTask') {
|
|
1353
|
+
return [
|
|
1354
|
+
`接續的前一段主管鏈 ${labelOf(sourceId)} 不是簽核關卡。`,
|
|
1355
|
+
...handOverIssues,
|
|
1356
|
+
];
|
|
1357
|
+
}
|
|
1358
|
+
const sourceResolver = source.data.approverResolver;
|
|
1359
|
+
if ((sourceResolver === null || sourceResolver === void 0 ? void 0 : sourceResolver.type) !== 'ORG_MANAGER_CHAIN') {
|
|
1360
|
+
return [
|
|
1361
|
+
`接續的前一段 ${labelOf(sourceId)} 的簽核來源不是「沿主管鏈簽核」。`,
|
|
1362
|
+
...handOverIssues,
|
|
1363
|
+
];
|
|
1364
|
+
}
|
|
1365
|
+
if ((0, workflow_1.isOrgManagerChainContinuation)(sourceResolver)) {
|
|
1366
|
+
return [
|
|
1367
|
+
`接續的前一段主管鏈 ${labelOf(sourceId)} 本身也是接續型主管鏈,不支援多段串接。`,
|
|
1368
|
+
...handOverIssues,
|
|
1369
|
+
];
|
|
1370
|
+
}
|
|
1371
|
+
const sourceStart = sourceResolver.startFrom;
|
|
1372
|
+
const sourceStartType = typeof sourceStart === 'object' && sourceStart !== null
|
|
1373
|
+
? sourceStart.type
|
|
1374
|
+
: undefined;
|
|
1375
|
+
if (sourceStart !== undefined &&
|
|
1376
|
+
sourceStart !== null &&
|
|
1377
|
+
sourceStartType !== 'INITIATOR' &&
|
|
1378
|
+
sourceStartType !== 'NODE_ACTOR') {
|
|
1379
|
+
return [
|
|
1380
|
+
`接續的前一段主管鏈 ${labelOf(sourceId)} 的起點只能是申請人或前面關卡的簽核者,不能是表單欄位或其他起點。`,
|
|
1381
|
+
...handOverIssues,
|
|
1382
|
+
];
|
|
1383
|
+
}
|
|
1384
|
+
const skipIssues = readNodeActorSourceSkipReasons(source)
|
|
1385
|
+
.filter((reason) => CHAIN_CONTINUATION_REFUSED_SKIP_REASONS.includes(reason))
|
|
1386
|
+
.flatMap((reason) => {
|
|
1387
|
+
const text = CHAIN_CONTINUATION_SKIP_ISSUES[reason];
|
|
1388
|
+
return text === undefined ? [] : [text(labelOf(sourceId))];
|
|
1389
|
+
});
|
|
1390
|
+
const positionIssues = readSourceStagePositionIssues(definition, nodeId, [sourceId], [[sourceId]], CHAIN_CONTINUATION_POSITION_TEXTS);
|
|
1391
|
+
const selfLevel = selfResolver.minPositionLevel;
|
|
1392
|
+
const sourceLevel = sourceResolver.minPositionLevel;
|
|
1393
|
+
const levelIssues = Number.isInteger(selfLevel) &&
|
|
1394
|
+
Number.isInteger(sourceLevel) &&
|
|
1395
|
+
selfLevel <= sourceLevel
|
|
1396
|
+
? [
|
|
1397
|
+
`接續關卡 ${labelOf(nodeId)} 的職等門檻(${String(selfLevel)})必須高於前一段主管鏈 ${labelOf(sourceId)} 的職等門檻(${String(sourceLevel)});否則前一段只要簽到自己的職等,這一關就一定被略過。`,
|
|
1398
|
+
]
|
|
1399
|
+
: [];
|
|
1400
|
+
return [...skipIssues, ...positionIssues, ...levelIssues, ...handOverIssues];
|
|
1401
|
+
}
|
|
1198
1402
|
function hasConfiguredConditionEdges(definition) {
|
|
1199
1403
|
return definition.edges.some((edge) => isExclusiveGatewaySourceEdge(edge, definition.nodes) &&
|
|
1200
1404
|
Boolean(edge.data.condition ||
|