pdm annotations
This commit is contained in:
@@ -1,37 +1,51 @@
|
|||||||
// Proxy for importing schema from bookshop sample
|
// Proxy for importing schema from bookshop sample
|
||||||
using { sap.capire.bookshop } from './schema';
|
using {sap.capire.bookshop} from './schema';
|
||||||
|
|
||||||
// annotations for Data Privacy
|
// annotations for Data Privacy
|
||||||
annotate bookshop.Customers with @PersonalData.DataSubjectRole: 'Customer';
|
annotate bookshop.Customers with @PersonalData : {
|
||||||
annotate bookshop.Customers with @PersonalData.EntitySemantics: 'DataSubject'
|
DataSubjectRole : 'Customer',
|
||||||
{
|
EntitySemantics : 'DataSubject'
|
||||||
ID @PersonalData.FieldSemantics: 'DataSubjectID';
|
}
|
||||||
emailAddress @PersonalData.IsPotentiallyPersonal;
|
{
|
||||||
firstName @PersonalData.IsPotentiallyPersonal;
|
ID @PersonalData.FieldSemantics : 'DataSubjectID';
|
||||||
lastName @PersonalData.IsPotentiallyPersonal;
|
emailAddress @PersonalData.IsPotentiallyPersonal;
|
||||||
creditCardNo @PersonalData.IsPotentiallySensitive;
|
firstName @PersonalData.IsPotentiallyPersonal;
|
||||||
dateOfBirth @PersonalData.IsPotentiallyPersonal;
|
lastName @PersonalData.IsPotentiallyPersonal;
|
||||||
}
|
creditCardNo @PersonalData.IsPotentiallySensitive;
|
||||||
|
dateOfBirth @PersonalData.IsPotentiallyPersonal;
|
||||||
|
}
|
||||||
|
|
||||||
annotate bookshop.CustomerPostalAddress with @PersonalData.DataSubjectRole: 'Customer';
|
annotate bookshop.CustomerPostalAddress with @PersonalData : {
|
||||||
annotate bookshop.CustomerPostalAddress with @PersonalData.EntitySemantics: 'DataSubjectDetails'
|
DataSubjectRole : 'Customer',
|
||||||
{
|
EntitySemantics : 'DataSubjectDetails'
|
||||||
Customer @PersonalData.FieldSemantics: 'DataSubjectID';
|
}
|
||||||
street @PersonalData.IsPotentiallyPersonal;
|
{
|
||||||
town @PersonalData.IsPotentiallyPersonal;
|
Customer @PersonalData.FieldSemantics : 'DataSubjectID';
|
||||||
country @PersonalData.IsPotentiallyPersonal;
|
street @PersonalData.IsPotentiallyPersonal;
|
||||||
}
|
town @PersonalData.IsPotentiallyPersonal;
|
||||||
|
country @PersonalData.IsPotentiallyPersonal;
|
||||||
|
}
|
||||||
|
|
||||||
// annotations for Personal Data Manager - Search Fields
|
// annotations for Personal Data Manager - Search Fields
|
||||||
annotate bookshop.Customers with @(Communication.Contact : {
|
annotate bookshop.Customers with @(Communication.Contact : {
|
||||||
n : {
|
n : {
|
||||||
surname: lastName,
|
surname : lastName,
|
||||||
given: firstName
|
given : firstName
|
||||||
},
|
},
|
||||||
bday: dateOfBirth
|
bday : dateOfBirth
|
||||||
});
|
});
|
||||||
|
|
||||||
// annotations for Audit Log
|
// annotations for Audit Log
|
||||||
annotate bookshop.Customers with @AuditLog.Operation: {Read: true, Insert: true, Update: true, Delete: true};
|
annotate bookshop.Customers with @AuditLog.Operation : {
|
||||||
|
Read : true,
|
||||||
|
Insert : true,
|
||||||
|
Update : true,
|
||||||
|
Delete : true
|
||||||
|
};
|
||||||
|
|
||||||
annotate bookshop.CustomerPostalAddress with @AuditLog.Operation: {Read: true, Insert: true, Update: true, Delete: true};
|
annotate bookshop.CustomerPostalAddress with @AuditLog.Operation : {
|
||||||
|
Read : true,
|
||||||
|
Insert : true,
|
||||||
|
Update : true,
|
||||||
|
Delete : true
|
||||||
|
};
|
||||||
|
|||||||
@@ -1,36 +1,35 @@
|
|||||||
//using from '@capire/orders';
|
//using from '@capire/orders';
|
||||||
using { sap.capire.bookshop as db } from '../db/data-privacy';
|
using {sap.capire.bookshop as db} from '../db/data-privacy';
|
||||||
using { sap.capire.bookshop.Books } from '@capire/bookshop';
|
using {sap.capire.bookshop.Books} from '@capire/bookshop';
|
||||||
using { sap.capire.bookshop.Orders } from '@capire/orders';
|
using {sap.capire.bookshop.Orders} from '@capire/orders';
|
||||||
using { sap.capire.bookshop.OrderItems } from '@capire/orders';
|
using {sap.capire.bookshop.OrderItems} from '@capire/orders';
|
||||||
|
|
||||||
//@requires: 'system-user'
|
// @requires:'system-user' - todo - security check
|
||||||
service PDMService {
|
service PDMService{
|
||||||
|
|
||||||
entity Customers as projection on db.Customers;
|
entity Customers as projection on db.Customers;
|
||||||
|
entity CustomerPostalAddress as projection on db.CustomerPostalAddress;
|
||||||
|
|
||||||
entity CustomerPostalAddress as projection on db.CustomerPostalAddress;
|
// create view on Orders and Items as flat projection
|
||||||
|
entity OrderItemView as
|
||||||
|
select from Orders {
|
||||||
|
ID,
|
||||||
|
key Items.ID as Item_ID,
|
||||||
|
OrderNo,
|
||||||
|
Customer.ID as Customer_ID,
|
||||||
|
Customer.email as Customer_Email,
|
||||||
|
Items.book.ID as Item_Book_ID,
|
||||||
|
Items.amount as Item_Amount,
|
||||||
|
Items.netAmount as Item_NetAmount
|
||||||
|
};
|
||||||
|
|
||||||
// create view on Orders and Items as flat projection
|
// annotate new view
|
||||||
entity OrderItemView as
|
annotate PDMService.OrderItemView with @(PersonalData.EntitySemantics : 'Other') {
|
||||||
SELECT from Orders
|
Item_ID @PersonalData.FieldSemantics : 'ContractRelatedID';
|
||||||
{ ID,
|
Customer_ID @PersonalData.FieldSemantics : 'DataSubjectID';
|
||||||
key Items.ID as Item_ID,
|
Customer_Email @PersonalData.IsPotentiallyPersonal;
|
||||||
OrderNo,
|
};
|
||||||
Customer.ID as Customer_ID,
|
|
||||||
Customer.email as Customer_Email,
|
|
||||||
Items.book.ID as Item_Book_ID,
|
|
||||||
Items.amount as Item_Amount,
|
|
||||||
Items.netAmount as Item_NetAmount};
|
|
||||||
|
|
||||||
// annotate new view
|
|
||||||
annotate PDMService.OrderItemView with @(PersonalData.EntitySemantics: 'ContractRelated')
|
|
||||||
{
|
|
||||||
Item_ID @PersonalData.FieldSemantics: 'LegalGroundID';
|
|
||||||
Customer_ID @PersonalData.FieldSemantics: 'DataSubjectID';
|
|
||||||
Customer_Email @PersonalData.IsPotentiallyPersonal;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Data Privacy annotations on 'Customers' and 'CustomerPostalAddress' are derived from original entity definitions
|
// Data Privacy annotations on 'Customers' and 'CustomerPostalAddress' are derived from original entity definitions
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user