@cap-js/process 0.1.1 → 0.2.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/README.md +135 -10
- package/dist/lib/api/process-api-client.js.map +1 -1
- package/dist/lib/build/constants.js +9 -1
- package/dist/lib/build/constants.js.map +1 -1
- package/dist/lib/build/plugin.js +67 -71
- package/dist/lib/build/plugin.js.map +1 -1
- package/dist/lib/build/validation-utils.js +2 -2
- package/dist/lib/build/validation-utils.js.map +1 -1
- package/dist/lib/build/validations.js +44 -34
- package/dist/lib/build/validations.js.map +1 -1
- package/dist/lib/constants.js +24 -32
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/handlers/annotationCache.js +30 -20
- package/dist/lib/handlers/annotationCache.js.map +1 -1
- package/dist/lib/handlers/annotationHandlers.js +13 -17
- package/dist/lib/handlers/annotationHandlers.js.map +1 -1
- package/dist/lib/handlers/index.js +2 -7
- package/dist/lib/handlers/index.js.map +1 -1
- package/dist/lib/handlers/onDeleteUtils.js +5 -48
- package/dist/lib/handlers/onDeleteUtils.js.map +1 -1
- package/dist/lib/handlers/processActionHandler.js +42 -32
- package/dist/lib/handlers/processActionHandler.js.map +1 -1
- package/dist/lib/handlers/processCancel.js +3 -16
- package/dist/lib/handlers/processCancel.js.map +1 -1
- package/dist/lib/handlers/processResume.js +3 -16
- package/dist/lib/handlers/processResume.js.map +1 -1
- package/dist/lib/handlers/processStart.js +136 -75
- package/dist/lib/handlers/processStart.js.map +1 -1
- package/dist/lib/handlers/processSuspend.js +3 -16
- package/dist/lib/handlers/processSuspend.js.map +1 -1
- package/dist/lib/handlers/utils.js +3 -0
- package/dist/lib/handlers/utils.js.map +1 -1
- package/dist/lib/processImport/csnBuilder.js +196 -0
- package/dist/lib/processImport/csnBuilder.js.map +1 -0
- package/dist/lib/processImport/index.js +178 -0
- package/dist/lib/processImport/index.js.map +1 -0
- package/dist/lib/processImport/rawWorkflowConverter.js +148 -0
- package/dist/lib/processImport/rawWorkflowConverter.js.map +1 -0
- package/dist/lib/processImport/schemaMapper.js +200 -0
- package/dist/lib/processImport/schemaMapper.js.map +1 -0
- package/dist/lib/processImport/utils.js +33 -0
- package/dist/lib/processImport/utils.js.map +1 -0
- package/dist/lib/processImportRegistration.js +5 -1
- package/dist/lib/processImportRegistration.js.map +1 -1
- package/dist/lib/shared/annotations-helper.js +98 -0
- package/dist/lib/shared/annotations-helper.js.map +1 -0
- package/dist/lib/shared/businessKey-helper.js +1 -0
- package/dist/lib/shared/businessKey-helper.js.map +1 -1
- package/package.json +5 -3
- package/dist/lib/processImport.js +0 -449
- package/dist/lib/processImport.js.map +0 -1
|
@@ -1,55 +1,65 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.createProcessActionHandler = createProcessActionHandler;
|
|
4
|
-
exports.
|
|
7
|
+
exports.prefetchLifecycleDataForDelete = prefetchLifecycleDataForDelete;
|
|
8
|
+
const cds_1 = __importDefault(require("@sap/cds"));
|
|
5
9
|
const utils_1 = require("./utils");
|
|
6
10
|
const onDeleteUtils_1 = require("./onDeleteUtils");
|
|
7
11
|
const businessKey_helper_1 = require("../shared/businessKey-helper");
|
|
8
12
|
const constants_1 = require("../constants");
|
|
9
|
-
|
|
10
|
-
const targetAnnotations = target;
|
|
11
|
-
return {
|
|
12
|
-
on: targetAnnotations[annotations.ON],
|
|
13
|
-
cascade: targetAnnotations[annotations.CASCADE] ?? false,
|
|
14
|
-
conditionExpr: targetAnnotations[annotations.IF]
|
|
15
|
-
? targetAnnotations[annotations.IF].xpr
|
|
16
|
-
: undefined,
|
|
17
|
-
businessKey: targetAnnotations[constants_1.BUSINESS_KEY]?.['='],
|
|
18
|
-
};
|
|
19
|
-
}
|
|
13
|
+
const LOG = cds_1.default.log(constants_1.PROCESS_LOGGER_PREFIX);
|
|
20
14
|
function createProcessActionHandler(config) {
|
|
21
|
-
return async function handleProcessAction(req, data) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
15
|
+
return async function handleProcessAction(req, data, descriptor) {
|
|
16
|
+
const qualifierKey = descriptor.qualifier ?? '';
|
|
17
|
+
// For DELETE: look up pre-fetched data by qualifier
|
|
18
|
+
if (req.event === 'DELETE') {
|
|
19
|
+
const prefetched = (0, onDeleteUtils_1.getPrefetchedDataForDelete)(req, qualifierKey, config.action);
|
|
20
|
+
if (!prefetched) {
|
|
21
|
+
LOG.debug(config.logMessages.NOT_TRIGGERED);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
data = prefetched;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
data = (0, utils_1.getEntityDataFromRequest)(data, req.params);
|
|
28
|
+
}
|
|
30
29
|
// Get business key column
|
|
31
|
-
const businessKeyColumn = (0, businessKey_helper_1.getBusinessKeyColumnOrReject)(req,
|
|
30
|
+
const businessKeyColumn = (0, businessKey_helper_1.getBusinessKeyColumnOrReject)(req, descriptor.businessKey);
|
|
32
31
|
if (!businessKeyColumn)
|
|
33
32
|
return;
|
|
34
33
|
// fetch entity
|
|
35
|
-
const row = await (0, utils_1.resolveEntityRowOrReject)(req, data,
|
|
34
|
+
const row = await (0, utils_1.resolveEntityRowOrReject)(req, data, descriptor.conditionExpr, config.logMessages.FETCH_FAILED, config.logMessages.NOT_TRIGGERED, [businessKeyColumn]);
|
|
36
35
|
if (!row)
|
|
37
36
|
return;
|
|
38
37
|
// Emit process event
|
|
39
38
|
const payload = {
|
|
40
39
|
businessKey: row.businessKey,
|
|
41
|
-
cascade:
|
|
40
|
+
cascade: descriptor.cascade,
|
|
42
41
|
};
|
|
43
42
|
await (0, utils_1.emitProcessEvent)(config.action, req, payload, config.logMessages.FAILED);
|
|
44
43
|
};
|
|
45
44
|
}
|
|
46
|
-
function
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
45
|
+
async function prefetchLifecycleDataForDelete(req, annotations, action) {
|
|
46
|
+
const resultMap = new Map();
|
|
47
|
+
await Promise.all(annotations.map(async (ann) => {
|
|
48
|
+
const qualifierKey = ann.qualifier ?? '';
|
|
49
|
+
const conditionExpr = ann.conditionExpr ? { xpr: ann.conditionExpr } : undefined;
|
|
50
|
+
const where = (0, onDeleteUtils_1.buildWhereDeleteExpression)(req, conditionExpr);
|
|
51
|
+
if (!where)
|
|
52
|
+
return;
|
|
53
|
+
if (!ann.businessKey)
|
|
54
|
+
return;
|
|
55
|
+
const businessKeyColumn = (0, businessKey_helper_1.formatBusinessKeyColumn)(ann.businessKey);
|
|
56
|
+
const entity = await SELECT.one.from(req.subject).columns([businessKeyColumn]).where(where);
|
|
57
|
+
if (entity) {
|
|
58
|
+
resultMap.set(qualifierKey, entity);
|
|
59
|
+
}
|
|
60
|
+
}));
|
|
61
|
+
if (resultMap.size > 0) {
|
|
62
|
+
return { [action]: resultMap };
|
|
63
|
+
}
|
|
54
64
|
}
|
|
55
65
|
//# sourceMappingURL=processActionHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processActionHandler.js","sourceRoot":"","sources":["../../../lib/handlers/processActionHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processActionHandler.js","sourceRoot":"","sources":["../../../lib/handlers/processActionHandler.ts"],"names":[],"mappings":";;;;;AAmCA,gEA0CC;AAED,wEA2BC;AA1GD,mDAA2B;AAC3B,mCAMiB;AACjB,mDAIyB;AACzB,qEAGsC;AAEtC,4CAAqD;AAErD,MAAM,GAAG,GAAG,aAAG,CAAC,GAAG,CAAC,iCAAqB,CAAC,CAAC;AAe3C,SAAgB,0BAA0B,CAAC,MAA2B;IACpE,OAAO,KAAK,UAAU,mBAAmB,CACvC,GAAgB,EAChB,IAAe,EACf,UAAyC;QAEzC,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,IAAI,EAAE,CAAC;QAEhD,oDAAoD;QACpD,IAAI,GAAG,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC3B,MAAM,UAAU,GAAG,IAAA,0CAA0B,EAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAChF,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YACD,IAAI,GAAG,UAAU,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,IAAA,gCAAwB,EAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAc,CAAC;QACjE,CAAC;QAED,0BAA0B;QAC1B,MAAM,iBAAiB,GAAG,IAAA,iDAA4B,EAAC,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC;QACpF,IAAI,CAAC,iBAAiB;YAAE,OAAO;QAE/B,eAAe;QACf,MAAM,GAAG,GAAG,MAAM,IAAA,gCAAwB,EACxC,GAAG,EACH,IAAI,EACJ,UAAU,CAAC,aAAa,EACxB,MAAM,CAAC,WAAW,CAAC,YAAY,EAC/B,MAAM,CAAC,WAAW,CAAC,aAAa,EAChC,CAAC,iBAAiB,CAAC,CACpB,CAAC;QACF,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,qBAAqB;QACrB,MAAM,OAAO,GAA4B;YACvC,WAAW,EAAG,GAA+B,CAAC,WAAW;YACzD,OAAO,EAAE,UAAU,CAAC,OAAO;SAC5B,CAAC;QACF,MAAM,IAAA,wBAAgB,EAAC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IACjF,CAAC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,8BAA8B,CAClD,GAAyB,EACzB,WAA4C,EAC5C,MAAyB;IAEzB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;IAE/C,MAAM,OAAO,CAAC,GAAG,CACf,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,YAAY,GAAG,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC;QACzC,MAAM,aAAa,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACjF,MAAM,KAAK,GAAG,IAAA,0CAA0B,EAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAC7D,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,IAAI,CAAC,GAAG,CAAC,WAAW;YAAE,OAAO;QAC7B,MAAM,iBAAiB,GAAG,IAAA,4CAAuB,EAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAEnE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC5F,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,IAAI,SAAS,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACjC,CAAC;AACH,CAAC"}
|
|
@@ -1,28 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.handleProcessCancel = void 0;
|
|
4
4
|
const processActionHandler_1 = require("./processActionHandler");
|
|
5
|
-
const constants_1 = require("../constants");
|
|
6
|
-
const action = 'cancel';
|
|
7
5
|
exports.handleProcessCancel = (0, processActionHandler_1.createProcessActionHandler)({
|
|
8
|
-
action:
|
|
9
|
-
annotations: {
|
|
10
|
-
ON: constants_1.PROCESS_CANCEL_ON,
|
|
11
|
-
CASCADE: constants_1.PROCESS_CANCEL_CASCADE,
|
|
12
|
-
IF: constants_1.PROCESS_CANCEL_IF,
|
|
13
|
-
},
|
|
6
|
+
action: 'cancel',
|
|
14
7
|
logMessages: {
|
|
15
|
-
NOT_TRIGGERED:
|
|
8
|
+
NOT_TRIGGERED: 'Not canceling process as cancel condition(s) are not met.',
|
|
16
9
|
FETCH_FAILED: 'Failed to fetch entity for process cancellation.',
|
|
17
10
|
INVALID_KEY: 'Failed to build business key for process cancellation.',
|
|
18
11
|
EMPTY_KEY: 'Business key is empty for process cancellation.',
|
|
19
12
|
FAILED: 'Failed to cancel process with business key',
|
|
20
13
|
},
|
|
21
14
|
});
|
|
22
|
-
exports.addDeletedEntityToRequestCancel = (0, processActionHandler_1.createProcessActionAddDeletedEntityHandler)({
|
|
23
|
-
action: action,
|
|
24
|
-
annotations: {
|
|
25
|
-
IF: constants_1.PROCESS_CANCEL_IF,
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
15
|
//# sourceMappingURL=processCancel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processCancel.js","sourceRoot":"","sources":["../../../lib/handlers/processCancel.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"processCancel.js","sourceRoot":"","sources":["../../../lib/handlers/processCancel.ts"],"names":[],"mappings":";;;AAAA,iEAAoE;AAEvD,QAAA,mBAAmB,GAAG,IAAA,iDAA0B,EAAC;IAC5D,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE;QACX,aAAa,EAAE,2DAA2D;QAC1E,YAAY,EAAE,kDAAkD;QAChE,WAAW,EAAE,wDAAwD;QACrE,SAAS,EAAE,iDAAiD;QAC5D,MAAM,EAAE,4CAA4C;KACrD;CACF,CAAC,CAAC"}
|
|
@@ -1,28 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.handleProcessResume = void 0;
|
|
4
4
|
const processActionHandler_1 = require("./processActionHandler");
|
|
5
|
-
const constants_1 = require("../constants");
|
|
6
|
-
const action = 'resume';
|
|
7
5
|
exports.handleProcessResume = (0, processActionHandler_1.createProcessActionHandler)({
|
|
8
|
-
action:
|
|
9
|
-
annotations: {
|
|
10
|
-
ON: constants_1.PROCESS_RESUME_ON,
|
|
11
|
-
CASCADE: constants_1.PROCESS_RESUME_CASCADE,
|
|
12
|
-
IF: constants_1.PROCESS_RESUME_IF,
|
|
13
|
-
},
|
|
6
|
+
action: 'resume',
|
|
14
7
|
logMessages: {
|
|
15
|
-
NOT_TRIGGERED:
|
|
8
|
+
NOT_TRIGGERED: 'Not resuming process as resume condition(s) are not met.',
|
|
16
9
|
FETCH_FAILED: 'Failed to fetch entity for process resume.',
|
|
17
10
|
INVALID_KEY: 'Failed to build business key for process resume.',
|
|
18
11
|
EMPTY_KEY: 'Business key is empty for process resume.',
|
|
19
12
|
FAILED: 'Failed to resume process with business key',
|
|
20
13
|
},
|
|
21
14
|
});
|
|
22
|
-
exports.addDeletedEntityToRequestResume = (0, processActionHandler_1.createProcessActionAddDeletedEntityHandler)({
|
|
23
|
-
action: action,
|
|
24
|
-
annotations: {
|
|
25
|
-
IF: constants_1.PROCESS_RESUME_IF,
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
15
|
//# sourceMappingURL=processResume.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processResume.js","sourceRoot":"","sources":["../../../lib/handlers/processResume.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"processResume.js","sourceRoot":"","sources":["../../../lib/handlers/processResume.ts"],"names":[],"mappings":";;;AAAA,iEAAoE;AAEvD,QAAA,mBAAmB,GAAG,IAAA,iDAA0B,EAAC;IAC5D,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE;QACX,aAAa,EAAE,0DAA0D;QACzE,YAAY,EAAE,4CAA4C;QAC1D,WAAW,EAAE,kDAAkD;QAC/D,SAAS,EAAE,2CAA2C;QACtD,MAAM,EAAE,4CAA4C;KACrD;CACF,CAAC,CAAC"}
|
|
@@ -3,9 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.addDeletedEntityToRequestStartBusinessKey = exports.addDeletedEntityToRequestStart = void 0;
|
|
7
|
-
exports.getColumnsForProcessStart = getColumnsForProcessStart;
|
|
8
6
|
exports.handleProcessStart = handleProcessStart;
|
|
7
|
+
exports.prefetchStartDataForDelete = prefetchStartDataForDelete;
|
|
9
8
|
const utils_1 = require("./utils");
|
|
10
9
|
const constants_1 = require("./../constants");
|
|
11
10
|
const input_parser_1 = require("../shared/input-parser");
|
|
@@ -13,91 +12,123 @@ const cds_1 = __importDefault(require("@sap/cds"));
|
|
|
13
12
|
const onDeleteUtils_1 = require("./onDeleteUtils");
|
|
14
13
|
const businessKey_helper_1 = require("../shared/businessKey-helper");
|
|
15
14
|
const LOG = cds_1.default.log(constants_1.PROCESS_LOGGER_PREFIX);
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
const PROCESS_INPUTS_FROM_DEFINITION = 'No inputs annotation defined. Filtering entity fields by process definition inputs.';
|
|
16
|
+
const PROCESS_NOT_STARTED = 'Not starting process as start condition(s) are not met.';
|
|
17
|
+
const FAILED_FETCH_BUSINESS_KEY = 'Failed to fetch business key for process start.';
|
|
18
|
+
const FAILED_FETCH = 'Failed to fetch entity for process start.';
|
|
19
|
+
function getColumnsForDescriptor(startAnnotation, target) {
|
|
20
|
+
const inputs = parseInputToTreeFromInputs(startAnnotation.inputs, target);
|
|
21
|
+
if (inputs.length === 0) {
|
|
22
|
+
LOG.debug(PROCESS_INPUTS_FROM_DEFINITION);
|
|
23
|
+
if (startAnnotation.id) {
|
|
24
|
+
return resolveColumnsFromProcessDefinition(startAnnotation.id, target);
|
|
25
|
+
}
|
|
26
|
+
return [input_parser_1.WILDCARD];
|
|
27
|
+
}
|
|
28
|
+
return convertToColumnsExpr(inputs);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolves business key value for process start
|
|
32
|
+
* rejects if business key value exceeds maximum length
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
35
|
+
async function resolveBusinessKeyValue(req, data, startAnnotation, qualifierKey) {
|
|
36
|
+
const businessKeyColumn = (0, businessKey_helper_1.getBusinessKeyColumn)(startAnnotation.businessKey);
|
|
37
|
+
if (!businessKeyColumn)
|
|
38
|
+
return undefined;
|
|
39
|
+
let businessKeyValue;
|
|
40
|
+
if (req.event === 'DELETE') {
|
|
41
|
+
const businessKeyData = getDeletePrefetchedBusinessKey(req, qualifierKey);
|
|
42
|
+
businessKeyValue = businessKeyData?.businessKey;
|
|
22
43
|
}
|
|
23
44
|
else {
|
|
24
|
-
|
|
45
|
+
const businessKeyRow = await (0, utils_1.resolveEntityRowOrReject)(req, data, startAnnotation.conditionExpr, FAILED_FETCH_BUSINESS_KEY, PROCESS_NOT_STARTED, [businessKeyColumn]);
|
|
46
|
+
businessKeyValue = businessKeyRow?.businessKey;
|
|
47
|
+
}
|
|
48
|
+
if (businessKeyValue && businessKeyValue.length > constants_1.BUSINESS_KEY_MAX_LENGTH) {
|
|
49
|
+
const msg = `Business key value exceeds maximum length of ${constants_1.BUSINESS_KEY_MAX_LENGTH} characters. Process start will fail.`;
|
|
50
|
+
LOG.error(msg);
|
|
51
|
+
return req.reject({ status: 400, message: msg });
|
|
25
52
|
}
|
|
53
|
+
return businessKeyValue;
|
|
26
54
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
//
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
55
|
+
/**
|
|
56
|
+
* Returns the pre-fetched business key data for a given start qualifier on DELETE,
|
|
57
|
+
* or undefined if no business key was pre-fetched.
|
|
58
|
+
*/
|
|
59
|
+
function getDeletePrefetchedBusinessKey(req, qualifierKey) {
|
|
60
|
+
return req._Process?.startBusinessKey?.get(qualifierKey);
|
|
61
|
+
}
|
|
62
|
+
async function handleProcessStart(req, data, startAnnotation) {
|
|
63
|
+
const qualifierKey = startAnnotation.qualifier ?? '';
|
|
64
|
+
// For DELETE: use pre-fetched data for this qualifier; for other events: resolve from request
|
|
65
|
+
if (req.event === 'DELETE') {
|
|
66
|
+
const prefetched = (0, onDeleteUtils_1.getPrefetchedDataForDelete)(req, qualifierKey, 'start');
|
|
67
|
+
if (!prefetched) {
|
|
68
|
+
LOG.debug(PROCESS_NOT_STARTED);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
data = prefetched;
|
|
41
72
|
}
|
|
42
73
|
else {
|
|
43
|
-
|
|
74
|
+
data = (0, utils_1.getEntityDataFromRequest)(data, req.params);
|
|
44
75
|
}
|
|
45
|
-
const
|
|
76
|
+
const target = req.target;
|
|
77
|
+
const columns = getColumnsForDescriptor(startAnnotation, target);
|
|
46
78
|
// fetch entity data (without businessKey to avoid alias collision)
|
|
47
|
-
const row = await (0, utils_1.resolveEntityRowOrReject)(req, data,
|
|
79
|
+
const row = await (0, utils_1.resolveEntityRowOrReject)(req, data, startAnnotation.conditionExpr, FAILED_FETCH, PROCESS_NOT_STARTED, columns);
|
|
48
80
|
if (!row)
|
|
49
81
|
return;
|
|
50
|
-
|
|
51
|
-
if (businessKeyColumn) {
|
|
52
|
-
if (req.event === 'DELETE') {
|
|
53
|
-
const businessKeyData = req._Process?.[onDeleteUtils_1.PROCESS_EVENT_MAP['startBusinessKey']];
|
|
54
|
-
businessKeyValue = businessKeyData?.businessKey;
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
const businessKeyRow = await (0, utils_1.resolveEntityRowOrReject)(req, data, startSpecs.conditionExpr, 'Failed to fetch business key for process start.', constants_1.LOG_MESSAGES.PROCESS_NOT_STARTED, [businessKeyColumn]);
|
|
58
|
-
businessKeyValue = businessKeyRow?.businessKey;
|
|
59
|
-
}
|
|
60
|
-
if (businessKeyValue && businessKeyValue.length > constants_1.BUSINESS_KEY_MAX_LENGTH) {
|
|
61
|
-
const msg = `Business key value exceeds maximum length of ${constants_1.BUSINESS_KEY_MAX_LENGTH} characters. Process start will fail.`;
|
|
62
|
-
LOG.error(msg);
|
|
63
|
-
return req.reject({ status: 400, message: msg });
|
|
64
|
-
}
|
|
65
|
-
}
|
|
82
|
+
const businessKeyValue = await resolveBusinessKeyValue(req, data, startAnnotation, qualifierKey);
|
|
66
83
|
// emit process start
|
|
67
|
-
const payload = { definitionId:
|
|
68
|
-
await (0, utils_1.emitProcessEvent)('start', req, payload, `Failed to start process with definition ID ${
|
|
84
|
+
const payload = { definitionId: startAnnotation.id, context: row };
|
|
85
|
+
await (0, utils_1.emitProcessEvent)('start', req, payload, `Failed to start process with definition ID ${startAnnotation.id}.`, businessKeyValue);
|
|
69
86
|
}
|
|
70
87
|
/**
|
|
71
|
-
*
|
|
72
|
-
|
|
73
|
-
exports.addDeletedEntityToRequestStart = (0, onDeleteUtils_1.createAddDeletedEntityHandler)({
|
|
74
|
-
action: 'start',
|
|
75
|
-
ifAnnotation: constants_1.PROCESS_START_IF,
|
|
76
|
-
getColumns: (req) => getColumnsForProcessStart(req.target),
|
|
77
|
-
});
|
|
78
|
-
/**
|
|
79
|
-
* Fetches and attaches businessKey data separately for DELETE operations
|
|
80
|
-
* to avoid alias collision with entity fields named "businessKey"
|
|
88
|
+
* Pre-fetches entity data and business key for all start annotations before DELETE.
|
|
89
|
+
* Returns a partial _Process object with Maps keyed by qualifier ('' for unqualified).
|
|
81
90
|
*/
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
91
|
+
async function prefetchStartDataForDelete(req, startAnnotations) {
|
|
92
|
+
const target = req.target;
|
|
93
|
+
const deleteReq = req;
|
|
94
|
+
const startMap = new Map();
|
|
95
|
+
const businessKeyMap = new Map();
|
|
96
|
+
await Promise.all(startAnnotations.map(async (ann) => {
|
|
97
|
+
const qualifierKey = ann.qualifier ?? '';
|
|
98
|
+
const conditionExpr = ann.conditionExpr ? { xpr: ann.conditionExpr } : undefined;
|
|
99
|
+
const where = (0, onDeleteUtils_1.buildWhereDeleteExpression)(deleteReq, conditionExpr);
|
|
100
|
+
if (!where)
|
|
101
|
+
return;
|
|
102
|
+
// Fetch entity data columns for this annotation
|
|
103
|
+
const columns = getColumnsForDescriptor(ann, target);
|
|
104
|
+
const selectColumns = columns.length > 0 ? columns : [input_parser_1.WILDCARD];
|
|
105
|
+
const entity = await SELECT.one.from(req.subject).columns(selectColumns).where(where);
|
|
106
|
+
if (entity) {
|
|
107
|
+
if (startMap.has(qualifierKey)) {
|
|
108
|
+
LOG.warn(`Duplicate start annotation qualifier '${qualifierKey}' detected; the previous prefetch will be overwritten.`);
|
|
109
|
+
}
|
|
110
|
+
startMap.set(qualifierKey, entity);
|
|
111
|
+
}
|
|
112
|
+
// Fetch business key separately (to avoid alias collision)
|
|
113
|
+
const businessKeyColumn = (0, businessKey_helper_1.getBusinessKeyColumn)(ann.businessKey);
|
|
114
|
+
if (businessKeyColumn) {
|
|
115
|
+
const bkEntity = await SELECT.one
|
|
116
|
+
.from(req.subject)
|
|
117
|
+
.columns([businessKeyColumn])
|
|
118
|
+
.where(where);
|
|
119
|
+
if (bkEntity) {
|
|
120
|
+
businessKeyMap.set(qualifierKey, bkEntity);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}));
|
|
124
|
+
const result = {};
|
|
125
|
+
if (startMap.size > 0) {
|
|
126
|
+
result.start = startMap;
|
|
127
|
+
}
|
|
128
|
+
if (businessKeyMap.size > 0) {
|
|
129
|
+
result.startBusinessKey = businessKeyMap;
|
|
130
|
+
}
|
|
131
|
+
return result;
|
|
101
132
|
}
|
|
102
133
|
/**
|
|
103
134
|
* Creates an EntityContext for runtime cds.entity
|
|
@@ -116,12 +147,42 @@ function createRuntimeEntityContext(entity) {
|
|
|
116
147
|
},
|
|
117
148
|
};
|
|
118
149
|
}
|
|
119
|
-
|
|
120
|
-
|
|
150
|
+
/**
|
|
151
|
+
* Parses inputs from a raw InputCSNEntry array (from the annotation descriptor)
|
|
152
|
+
* and builds the input tree against the entity context.
|
|
153
|
+
*/
|
|
154
|
+
function parseInputToTreeFromInputs(inputsCSN, target) {
|
|
121
155
|
const parsedEntries = (0, input_parser_1.parseInputsArray)(inputsCSN);
|
|
122
156
|
const runtimeContext = createRuntimeEntityContext(target);
|
|
123
157
|
return (0, input_parser_1.buildInputTree)(parsedEntries, runtimeContext);
|
|
124
158
|
}
|
|
159
|
+
function getProcessInputFieldNames(definitionId) {
|
|
160
|
+
const definitions = cds_1.default.model?.definitions;
|
|
161
|
+
if (!definitions)
|
|
162
|
+
return undefined;
|
|
163
|
+
let serviceName;
|
|
164
|
+
for (const name in definitions) {
|
|
165
|
+
const def = definitions[name];
|
|
166
|
+
if (def.kind === 'service' && def[constants_1.PROCESS_PREFIX] === definitionId) {
|
|
167
|
+
serviceName = name;
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (!serviceName)
|
|
172
|
+
return undefined;
|
|
173
|
+
const processInputsType = definitions[`${serviceName}.ProcessInputs`];
|
|
174
|
+
if (!processInputsType?.elements)
|
|
175
|
+
return undefined;
|
|
176
|
+
return Object.keys(processInputsType.elements);
|
|
177
|
+
}
|
|
178
|
+
function resolveColumnsFromProcessDefinition(definitionId, target) {
|
|
179
|
+
const processFields = getProcessInputFieldNames(definitionId);
|
|
180
|
+
if (!processFields)
|
|
181
|
+
return [input_parser_1.WILDCARD];
|
|
182
|
+
const entityElements = Object.keys(target.elements ?? {});
|
|
183
|
+
const matchingFields = processFields.filter((f) => entityElements.includes(f));
|
|
184
|
+
return matchingFields;
|
|
185
|
+
}
|
|
125
186
|
function convertToColumnsExpr(array) {
|
|
126
187
|
const result = [];
|
|
127
188
|
for (const item of array) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processStart.js","sourceRoot":"","sources":["../../../lib/handlers/processStart.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"processStart.js","sourceRoot":"","sources":["../../../lib/handlers/processStart.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,28 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.handleProcessSuspend = void 0;
|
|
4
4
|
const processActionHandler_1 = require("./processActionHandler");
|
|
5
|
-
const constants_1 = require("../constants");
|
|
6
|
-
const action = 'suspend';
|
|
7
5
|
exports.handleProcessSuspend = (0, processActionHandler_1.createProcessActionHandler)({
|
|
8
|
-
action:
|
|
9
|
-
annotations: {
|
|
10
|
-
ON: constants_1.PROCESS_SUSPEND_ON,
|
|
11
|
-
CASCADE: constants_1.PROCESS_SUSPEND_CASCADE,
|
|
12
|
-
IF: constants_1.PROCESS_SUSPEND_IF,
|
|
13
|
-
},
|
|
6
|
+
action: 'suspend',
|
|
14
7
|
logMessages: {
|
|
15
|
-
NOT_TRIGGERED:
|
|
8
|
+
NOT_TRIGGERED: 'Not suspending process as suspend condition(s) are not met.',
|
|
16
9
|
FETCH_FAILED: 'Failed to fetch entity for process suspend.',
|
|
17
10
|
INVALID_KEY: 'Failed to build business key for process suspend.',
|
|
18
11
|
EMPTY_KEY: 'Business key is empty for process suspend.',
|
|
19
12
|
FAILED: 'Failed to suspend process with business key',
|
|
20
13
|
},
|
|
21
14
|
});
|
|
22
|
-
exports.addDeletedEntityToRequestSuspend = (0, processActionHandler_1.createProcessActionAddDeletedEntityHandler)({
|
|
23
|
-
action: action,
|
|
24
|
-
annotations: {
|
|
25
|
-
IF: constants_1.PROCESS_SUSPEND_IF,
|
|
26
|
-
},
|
|
27
|
-
});
|
|
28
15
|
//# sourceMappingURL=processSuspend.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"processSuspend.js","sourceRoot":"","sources":["../../../lib/handlers/processSuspend.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"processSuspend.js","sourceRoot":"","sources":["../../../lib/handlers/processSuspend.ts"],"names":[],"mappings":";;;AAAA,iEAAoE;AAEvD,QAAA,oBAAoB,GAAG,IAAA,iDAA0B,EAAC;IAC7D,MAAM,EAAE,SAAS;IACjB,WAAW,EAAE;QACX,aAAa,EAAE,6DAA6D;QAC5E,YAAY,EAAE,6CAA6C;QAC3D,WAAW,EAAE,mDAAmD;QAChE,SAAS,EAAE,4CAA4C;QACvD,MAAM,EAAE,6CAA6C;KACtD;CACF,CAAC,CAAC"}
|
|
@@ -14,6 +14,9 @@ async function fetchEntity(results, request, condition, columns) {
|
|
|
14
14
|
if (typeof results !== 'object') {
|
|
15
15
|
results = {};
|
|
16
16
|
}
|
|
17
|
+
if (columns.length === 0) {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
17
20
|
const keyFields = getKeyFieldsForEntity(request.target);
|
|
18
21
|
// build where clause
|
|
19
22
|
const where = buildWhereClause(keyFields, results, condition);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/handlers/utils.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/handlers/utils.ts"],"names":[],"mappings":"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"}
|