Adding Custom Logic

This commit is contained in:
2026-07-26 12:33:10 +00:00
parent 0cba22ab0b
commit 022b4f034b
2 changed files with 69 additions and 0 deletions

46
app/launchpage.html Normal file
View File

@@ -0,0 +1,46 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script>
window['sap-ushell-config'] = {
defaultRenderer: 'fiori2',
services: {
NavTargetResolution: {
config: {
allowTestUrlComponentConfig: true,
enableClientSideTargetResolution: true
}
}
},
applications: {
"incidents-app": {
title: 'Incident-Management',
description: 'Incidents',
additionalInformation: 'SAPUI5.Component=ns.incidents',
applicationType: 'URL',
url: "./incidents/webapp",
navigationMode: 'embedded'
}
}
}
</script>
<script src="https://ui5.sap.com/test-resources/sap/ushell/bootstrap/sandbox.js"></script>
<script
src="https://ui5.sap.com/resources/sap-ui-core.js"
data-sap-ui-libs="sap.m, sap.ushell, sap.fe.templates"
data-sap-ui-compatVersion="edge"
data-sap-ui-theme="sap_horizon"
data-sap-ui-frameOptions="allow"
data-sap-ui-bindingSyntax="complex"
></script>
<script>
sap.ui.getCore().attachInit(function() {
sap.ushell.Container.createRenderer().placeAt('content');
});
</script>
</head>
<body class="sapUiBody" id="content"></body>
</html>

23
srv/services.js Normal file
View File

@@ -0,0 +1,23 @@
const cds = require('@sap/cds')
class ProcessorService extends cds.ApplicationService {
/** Registering custom event handlers */
init() {
this.before("UPDATE", "Incidents", (req) => this.onUpdate(req));
this.before("CREATE", "Incidents", (req) => this.changeUrgencyDueToSubject(req.data));
return super.init();
}
changeUrgencyDueToSubject(data) {
let urgent = data.title?.match(/urgent/i)
if (urgent) data.urgency_code = 'H'
}
/** Custom Validation */
async onUpdate (req) {
let closed = await SELECT.one(1) .from (req.subject) .where `status.code = 'C'`
if (closed) req.reject `Can't modify a closed incident!`
}
}
module.exports = { ProcessorService }