cleaned up
This commit is contained in:
@@ -1,11 +1,9 @@
|
|||||||
const utils = require('./utils')
|
|
||||||
|
|
||||||
const cds = require('@sap/cds')
|
const cds = require('@sap/cds')
|
||||||
module.exports = cds.service.impl (async()=>{
|
module.exports = cds.service.impl (async()=>{
|
||||||
|
|
||||||
// We are mashing up three services...
|
// We are mashing up three services...
|
||||||
const admin = await cds.connect.to ('AdminService')
|
|
||||||
const bupa = await cds.connect.to ('API_BUSINESS_PARTNER')
|
const bupa = await cds.connect.to ('API_BUSINESS_PARTNER')
|
||||||
|
const admin = await cds.connect.to ('AdminService')
|
||||||
const db = await cds.connect.to ('db')
|
const db = await cds.connect.to ('db')
|
||||||
|
|
||||||
// Using reflected definitions from connected services/database
|
// Using reflected definitions from connected services/database
|
||||||
@@ -15,9 +13,9 @@ module.exports = cds.service.impl (async ()=>{
|
|||||||
|
|
||||||
// Delegate ValueHelp requests to S/4 backend, fetching current user's addresses from there
|
// Delegate ValueHelp requests to S/4 backend, fetching current user's addresses from there
|
||||||
admin.on ('READ', 'Addresses', (req) => {
|
admin.on ('READ', 'Addresses', (req) => {
|
||||||
const UsersAddresses = req.query.from (externalAddresses) .where ({ contact: req.user.id || 'anonymous' })
|
console.log ('Delegating to S/4 bupa service...')
|
||||||
//> redirecting the incoming query with req.query.from preserves all .columns and .where clauses
|
const UsersAddresses = SELECT.from (externalAddresses) .where ({ contact: req.user.id || 'anonymous' })
|
||||||
return bupa.tx(req) .read (UsersAddresses)
|
return bupa.tx(req) .run (UsersAddresses.where (req.query.SELECT.where))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
@@ -81,3 +79,4 @@ module.exports = cds.service.impl (async ()=>{
|
|||||||
})
|
})
|
||||||
|
|
||||||
})
|
})
|
||||||
|
require('./utils') // ugly workaround for AppStudio
|
||||||
|
|||||||
@@ -16,56 +16,37 @@ extend service API_BUSINESS_PARTNER with {
|
|||||||
PostalCode as postalCode,
|
PostalCode as postalCode,
|
||||||
StreetName as streetName,
|
StreetName as streetName,
|
||||||
HouseNumber as houseNumber
|
HouseNumber as houseNumber
|
||||||
};
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Re-modelling the event which is currently not available declaratively from S/4
|
* Re-modelling the event which is currently not available declaratively from S/4
|
||||||
*/
|
*/
|
||||||
// @messaging.topic:'${prefix}/BusinessPartner/Changed'
|
entity BusinessPartner as projection on external.A_BusinessPartner;
|
||||||
// event "BusinessPartner/Changed" {
|
@messaging.topic:'${prefix}/BusinessPartner/Changed'
|
||||||
// "KEY": array of {
|
event BusinessPartner_CHANGED {
|
||||||
// BUSINESSPARTNER : external.A_BusinessPartner.BusinessPartner
|
_KEY: array of {
|
||||||
// }
|
BUSINESSPARTNER : external.A_BusinessPartner.BusinessPartner
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Mashup w/ services to also serve shipping addresses
|
|
||||||
*/
|
|
||||||
// using { AdminService } from './admin-service';
|
|
||||||
// extend service AdminService { // for ValueHelps from S/4 backend
|
|
||||||
// @readonly entity usersAddresses as projection on external.Addresses;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // TODO: not used so far...
|
|
||||||
// using { CatalogService } from './cat-service';
|
|
||||||
// extend service CatalogService { // for ValueHelps from S/4 backend
|
|
||||||
// @requires:'authenticated-user'
|
|
||||||
// @readonly entity usersAddresses as projection on external.Addresses;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// have external Addresses auto-exposed as targets
|
|
||||||
annotate external.Addresses with @cds.autoexpose;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Mashup w/ domain model for federated data access
|
|
||||||
*/
|
|
||||||
using { sap.capire.bookshop } from '../db/schema';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add an entity to replicate external address data for quick access,
|
* Add an entity to replicate external address data for quick access,
|
||||||
* e.g. when displaying lists of orders.
|
* e.g. when displaying lists of orders.
|
||||||
*/
|
*/
|
||||||
@cds.persistence:{table,skip:false}
|
@cds.persistence:{table,skip:false} //> create a table with the view's inferred signature
|
||||||
|
@cds.autoexpose //> auto-expose in services as targets for ValueHelps and joins
|
||||||
entity sap.capire.bookshop.Addresses as SELECT from external.Addresses { *,
|
entity sap.capire.bookshop.Addresses as SELECT from external.Addresses { *,
|
||||||
false as tombstone : Boolean
|
false as tombstone : Boolean
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extend Orders to with references to replicated external Addresses
|
* Extend Orders with references to replicated external Addresses
|
||||||
*/
|
*/
|
||||||
|
using { sap.capire.bookshop } from '../db/schema';
|
||||||
extend bookshop.Orders with {
|
extend bookshop.Orders with {
|
||||||
shippingAddress : Association to bookshop.Addresses;
|
shippingAddress : Association to bookshop.Addresses;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user