pdm annotations
This commit is contained in:
@@ -1,37 +1,51 @@
|
||||
// Proxy for importing schema from bookshop sample
|
||||
using { sap.capire.bookshop } from './schema';
|
||||
using {sap.capire.bookshop} from './schema';
|
||||
|
||||
// annotations for Data Privacy
|
||||
annotate bookshop.Customers with @PersonalData.DataSubjectRole: 'Customer';
|
||||
annotate bookshop.Customers with @PersonalData.EntitySemantics: 'DataSubject'
|
||||
{
|
||||
ID @PersonalData.FieldSemantics: 'DataSubjectID';
|
||||
emailAddress @PersonalData.IsPotentiallyPersonal;
|
||||
firstName @PersonalData.IsPotentiallyPersonal;
|
||||
lastName @PersonalData.IsPotentiallyPersonal;
|
||||
creditCardNo @PersonalData.IsPotentiallySensitive;
|
||||
dateOfBirth @PersonalData.IsPotentiallyPersonal;
|
||||
}
|
||||
annotate bookshop.Customers with @PersonalData : {
|
||||
DataSubjectRole : 'Customer',
|
||||
EntitySemantics : 'DataSubject'
|
||||
}
|
||||
{
|
||||
ID @PersonalData.FieldSemantics : 'DataSubjectID';
|
||||
emailAddress @PersonalData.IsPotentiallyPersonal;
|
||||
firstName @PersonalData.IsPotentiallyPersonal;
|
||||
lastName @PersonalData.IsPotentiallyPersonal;
|
||||
creditCardNo @PersonalData.IsPotentiallySensitive;
|
||||
dateOfBirth @PersonalData.IsPotentiallyPersonal;
|
||||
}
|
||||
|
||||
annotate bookshop.CustomerPostalAddress with @PersonalData.DataSubjectRole: 'Customer';
|
||||
annotate bookshop.CustomerPostalAddress with @PersonalData.EntitySemantics: 'DataSubjectDetails'
|
||||
{
|
||||
Customer @PersonalData.FieldSemantics: 'DataSubjectID';
|
||||
street @PersonalData.IsPotentiallyPersonal;
|
||||
town @PersonalData.IsPotentiallyPersonal;
|
||||
country @PersonalData.IsPotentiallyPersonal;
|
||||
}
|
||||
annotate bookshop.CustomerPostalAddress with @PersonalData : {
|
||||
DataSubjectRole : 'Customer',
|
||||
EntitySemantics : 'DataSubjectDetails'
|
||||
}
|
||||
{
|
||||
Customer @PersonalData.FieldSemantics : 'DataSubjectID';
|
||||
street @PersonalData.IsPotentiallyPersonal;
|
||||
town @PersonalData.IsPotentiallyPersonal;
|
||||
country @PersonalData.IsPotentiallyPersonal;
|
||||
}
|
||||
|
||||
// annotations for Personal Data Manager - Search Fields
|
||||
annotate bookshop.Customers with @(Communication.Contact : {
|
||||
n : {
|
||||
surname: lastName,
|
||||
given: firstName
|
||||
},
|
||||
bday: dateOfBirth
|
||||
});
|
||||
annotate bookshop.Customers with @(Communication.Contact : {
|
||||
n : {
|
||||
surname : lastName,
|
||||
given : firstName
|
||||
},
|
||||
bday : dateOfBirth
|
||||
});
|
||||
|
||||
// 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 { sap.capire.bookshop as db } from '../db/data-privacy';
|
||||
using { sap.capire.bookshop.Books } from '@capire/bookshop';
|
||||
using { sap.capire.bookshop.Orders } from '@capire/orders';
|
||||
using { sap.capire.bookshop.OrderItems } from '@capire/orders';
|
||||
using {sap.capire.bookshop as db} from '../db/data-privacy';
|
||||
using {sap.capire.bookshop.Books} from '@capire/bookshop';
|
||||
using {sap.capire.bookshop.Orders} from '@capire/orders';
|
||||
using {sap.capire.bookshop.OrderItems} from '@capire/orders';
|
||||
|
||||
//@requires: 'system-user'
|
||||
service PDMService {
|
||||
// @requires:'system-user' - todo - security check
|
||||
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
|
||||
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};
|
||||
|
||||
// annotate new view
|
||||
annotate PDMService.OrderItemView with @(PersonalData.EntitySemantics: 'ContractRelated')
|
||||
{
|
||||
Item_ID @PersonalData.FieldSemantics: 'LegalGroundID';
|
||||
Customer_ID @PersonalData.FieldSemantics: 'DataSubjectID';
|
||||
Customer_Email @PersonalData.IsPotentiallyPersonal;
|
||||
};
|
||||
// annotate new view
|
||||
annotate PDMService.OrderItemView with @(PersonalData.EntitySemantics : 'Other') {
|
||||
Item_ID @PersonalData.FieldSemantics : 'ContractRelatedID';
|
||||
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