This commit is contained in:
Daniel
2021-07-16 07:09:19 +02:00
parent 67643b8d95
commit fc69311ebe
14 changed files with 89 additions and 3285 deletions

View File

@@ -21,18 +21,18 @@
},
"requires": {
"API_BUSINESS_PARTNER": {
"kind": "odata",
"kind": "odata-v2",
"model": "@capire/suppliers"
},
"auth": {
"strategy": "dummy"
},
"ReviewsService": {
"kind": "odata",
"kind": "odata-v4",
"model": "@capire/reviews"
},
"OrdersService": {
"kind": "odata",
"kind": "odata-v4",
"model": "@capire/orders"
},
"db": {

View File

@@ -23,3 +23,9 @@ using { sap.capire.orders.Orders_Items } from '@capire/orders';
extend Orders_Items with {
book : Association to Books on product.ID = book.ID
}
using { OrdersService.Orders } from '@capire/orders';
// extend service CatalogService with {
// entity OrdereredBooks as projection on Orders;
// }

9
orders/api/external.cds Normal file
View File

@@ -0,0 +1,9 @@
context external {
/** This is a stand-in for arbitrary ordered Products */
entity Products @(cds.persistence.skip:'always') {
key ID : String;
data : String;
}
}

View File

@@ -0,0 +1,21 @@
using { cuid, managed, User, Currency } from '@sap/cds/common';
using { sap.capire.orders as my } from '../db/schema';
using { external.Products } from './external';
service OrdersService {
entity Orders : cuid, managed {
OrderNo : String @title:'Order Number'; //> readable key
Items : Composition of many {
key ID : UUID;
product : Association to Products;
amount : Integer;
title : String; //> intentionally replicated as snapshot from product.title
price : Double;
};
buyer : User;
currency : Currency;
}
}

View File

@@ -0,0 +1,40 @@
using { cuid, managed, User, Currency } from '@sap/cds/common';
using { sap.capire.orders as my } from '../db/schema';
using { external.Products } from './external';
// GET Orders
// GET Orders()/Items
// GET Orders?$Items
service OwnService {
entity Orders as projection on OrdersService.Orders;
entity Products as projection on OrdersService.Products;
}
service OrdersService {
entity Orders : cuid, managed {
OrderNo : String @title:'Order Number'; //> readable key
Items : Composition of many Orders_Items; // on Items.up_ = $self;
// MoreItems : Composition of many Orders_Items; // on Items.up_ = $self;
// Items_ID
buyer : User;
currency : Currency;
}
entity Orders_Items {
key ID : UUID;
// up_ : Association to Orders;
product : Association to Products; //> {ID}
// product_ID
amount : Integer;
title : String; //> intentionally replicated as snapshot from product.title
price : Double;
}
// entity Products {
// key ID : UUID;
// }
}

View File

@@ -1 +0,0 @@
using from './srv/mashup';

View File

@@ -25,16 +25,8 @@
}
}
},
"[local-hybrid]": {
"messaging": {
"kind": "file-based-messaging"
}
},
"[hybrid]": {
"messaging": {
"kind": "enterprise-messaging-shared"
}
}
"[local-hybrid]": { "messaging": { "kind": "file-based-messaging" }},
"[hybrid]": { "messaging": { "kind": "enterprise-messaging-shared" }}
}
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +0,0 @@
const cds = require('@sap/cds');
module.exports = cds.service.impl(function () {
const { A_BusinessPartner } = this.entities;
// https://api.sap.com/event/SAPS4HANACloudBusinessEvents_BusinessPartner/resource
this.after('UPDATE', A_BusinessPartner, async data => {
await this.emit("BusinessPartner.Changed", { BusinessPartner: data.BusinessPartner });
});
});

View File

Can't render this file because it contains an unexpected character in line 2 and column 30.

1
suppliers/test/index.cds Normal file
View File

@@ -0,0 +1 @@
using from '../srv/mashup';

7
suppliers/test/mocked.js Normal file
View File

@@ -0,0 +1,7 @@
let { API_BUSINESS_PARTNER:S4 } = cds.services
// Mocking event emitter according to:
// https://api.sap.com/event/SAPS4HANACloudBusinessEvents_BusinessPartner/resource
S4.after ('UPDATE', 'A_BusinessPartner', data =>
S4.emit ('BusinessPartner.Changed', { BusinessPartner: data.BusinessPartner })
)