fixed bugs - do not change key names

This commit is contained in:
D065023
2019-12-11 11:46:55 +01:00
parent e686b1819b
commit 3b06003328
6 changed files with 36 additions and 35 deletions

View File

@@ -17,5 +17,5 @@ houseNumber = House Number
streetName = Street Name streetName = Street Name
postalCode = Postal Code postalCode = Postal Code
country = Country country = Country
addressID = Address ID AddressID = Address ID
businessPartner = Business Partner BusinessPartner = Business Partner

View File

@@ -74,8 +74,8 @@ annotate my.Authors with {
} }
annotate my.ShippingAddresses with { annotate my.ShippingAddresses with {
addressID @title:'{i18n>addressID}'; AddressID @title:'{i18n>AddressID}';
businessPartner @title:'{i18n>businessPartner}'; BusinessPartner @title:'{i18n>BusinessPartner}';
cityName @title:'{i18n>cityName}'; cityName @title:'{i18n>cityName}';
streetName @title:'{i18n>streetName}'; streetName @title:'{i18n>streetName}';
postalCode @title:'{i18n>postalCode}'; postalCode @title:'{i18n>postalCode}';

View File

@@ -29,8 +29,8 @@ annotate AdminService.Orders with {
Label: 'Addresses', Label: 'Addresses',
SearchSupported: 'true', SearchSupported: 'true',
Parameters: [ Parameters: [
{ $Type: 'Common.ValueListParameterOut', LocalDataProperty: 'shippingAddress_addressID', ValueListProperty: 'addressID'}, { $Type: 'Common.ValueListParameterOut', LocalDataProperty: 'shippingAddress_AddressID', ValueListProperty: 'AddressID'},
{ $Type: 'Common.ValueListParameterOut', LocalDataProperty: 'shippingAddress_businessPartner', ValueListProperty: 'businessPartner'}, { $Type: 'Common.ValueListParameterOut', LocalDataProperty: 'shippingAddress_BusinessPartner', ValueListProperty: 'BusinessPartner'},
{ $Type: 'Common.ValueListParameterDisplayOnly', ValueListProperty: 'postalCode'}, { $Type: 'Common.ValueListParameterDisplayOnly', ValueListProperty: 'postalCode'},
{ $Type: 'Common.ValueListParameterDisplayOnly', ValueListProperty: 'cityName'}, { $Type: 'Common.ValueListParameterDisplayOnly', ValueListProperty: 'cityName'},
{ $Type: 'Common.ValueListParameterDisplayOnly', ValueListProperty: 'country'}, { $Type: 'Common.ValueListParameterDisplayOnly', ValueListProperty: 'country'},
@@ -40,7 +40,7 @@ annotate AdminService.Orders with {
}, },
SideEffects : { SideEffects : {
EffectTypes : #ValueChange, EffectTypes : #ValueChange,
SourceProperties : [shippingAddress_addressID], SourceProperties : [shippingAddress_AddressID],
TargetProperties : [ TargetProperties : [
shippingAddress.country, shippingAddress.country,
shippingAddress.houseNumber, shippingAddress.houseNumber,
@@ -115,7 +115,7 @@ annotate AdminService.Orders with @(
}, },
FieldGroup#ShippingAddress: { FieldGroup#ShippingAddress: {
Data: [ Data: [
{Value: shippingAddress_addressID, Label:'{i18n>shippingAddress}'}, {Value: shippingAddress_AddressID, Label:'{i18n>shippingAddress}'},
{Value: shippingAddress.houseNumber, Label:'{i18n>houseNumber}'}, {Value: shippingAddress.houseNumber, Label:'{i18n>houseNumber}'},
{Value: shippingAddress.streetName, Label:'{i18n>streetName}'}, {Value: shippingAddress.streetName, Label:'{i18n>streetName}'},
{Value: shippingAddress.cityName, Label:'{i18n>cityName}'}, {Value: shippingAddress.cityName, Label:'{i18n>cityName}'},

View File

@@ -40,8 +40,8 @@ entity OrderItems : cuid {
@cds.persistence.skip: false @cds.persistence.skip: false
@cds.persistence.table @cds.persistence.table
entity ShippingAddresses as projection on extAddresses { entity ShippingAddresses as projection on extAddresses {
key AddressID as addressID, key AddressID,
key BusinessPartner as businessPartner, key BusinessPartner,
Country as country, Country as country,
CityName as cityName, CityName as cityName,
PostalCode as postalCode, PostalCode as postalCode,

View File

@@ -3,5 +3,6 @@ Content-Type: application/json
Authorization: Basic QUxJQ0Utc2VjcmV0 Authorization: Basic QUxJQ0Utc2VjcmV0
{ {
"PostalCode": "123456" "PostalCode": "123456",
"CityName": "BlaTown"
} }

View File

@@ -15,8 +15,8 @@ const _qlsToUpdateDifferences = (ownAddresses, remoteAddresses) =>
.map(ownAddress => { .map(ownAddress => {
const remoteAddress = remoteAddresses.find( const remoteAddress = remoteAddresses.find(
address => address =>
address.businessPartner === ownAddress.businessPartner && address.BusinessPartner === ownAddress.BusinessPartner &&
address.addressID === ownAddress.addressID address.AddressID === ownAddress.AddressID
) )
if (remoteAddress) { if (remoteAddress) {
const diff = _diff(ownAddress, remoteAddress) const diff = _diff(ownAddress, remoteAddress)
@@ -26,25 +26,25 @@ const _qlsToUpdateDifferences = (ownAddresses, remoteAddresses) =>
UPDATE(ShippingAddresses) UPDATE(ShippingAddresses)
.set(diff) .set(diff)
.where({ .where({
businessPartner: ownAddress.businessPartner, BusinessPartner: ownAddress.BusinessPartner,
addressID: ownAddress.addressID AddressID: ownAddress.AddressID
}) })
) )
} }
return DELETE(ShippingAddresses).where({ return DELETE(ShippingAddresses).where({
businessPartner: ownAddress.businessPartner, BusinessPartner: ownAddress.BusinessPartner,
addressID: ownAddress.addressID AddressID: ownAddress.AddressID
}) })
}) })
.filter(el => el) .filter(el => el)
bupaSrv.on('sap/messaging/ccf/BO/BusinessPartner/Changed', async msg => { bupaSrv.on('sap/messaging/ccf/BO/BusinessPartner/Changed', async msg => {
console.log('>> Message:', msg.data) console.log('>> Message:', msg.data)
const businessPartner = msg.data.KEY[0].BUSINESSPARTNER const BusinessPartner = msg.data.KEY[0].BUSINESSPARTNER
const tx = cds.transaction() const tx = cds.transaction()
const selectQl = SELECT.from(ShippingAddresses).where({ businessPartner }) const selectQl = SELECT.from(ShippingAddresses).where({ BusinessPartner })
const selectQlToBeDeleted = SELECT.from(ShippingAddresses).where({ const selectQlToBeDeleted = SELECT.from(ShippingAddresses).where({
businessPartner BusinessPartner
}) })
const ownAddresses = await tx.run(selectQl) const ownAddresses = await tx.run(selectQl)
@@ -55,8 +55,8 @@ bupaSrv.on('sap/messaging/ccf/BO/BusinessPartner/Changed', async msg => {
const txExt = bupaSrv.transaction() const txExt = bupaSrv.transaction()
const remoteAddresses = await txExt.run(selectQlToBeDeleted) const remoteAddresses = await txExt.run(selectQlToBeDeleted)
await _qlsToUpdateDifferences(ownAddresses, remoteAddresses).map(ql => await _qlsToUpdateDifferences(ownAddresses, remoteAddresses).map(async ql =>
tx.run(ql) await tx.run(ql)
) )
await tx.commit() await tx.commit()
} }
@@ -65,10 +65,10 @@ bupaSrv.on('sap/messaging/ccf/BO/BusinessPartner/Changed', async msg => {
module.exports = cds.service.impl(function () { module.exports = cds.service.impl(function () {
async function _readAddresses (req) { async function _readAddresses (req) {
console.log('Addresses', ShippingAddresses) console.log('Addresses', ShippingAddresses)
const businessPartner = req.user.id const BusinessPartner = req.user.id
const tx = bupaSrv.transaction(req) const txExt = bupaSrv.transaction(req)
const ql = SELECT.from(ShippingAddresses).where({ const ql = SELECT.from(ShippingAddresses).where({
businessPartner BusinessPartner
}) })
if (req.query && req.query.SELECT && req.query.SELECT.columns) { if (req.query && req.query.SELECT && req.query.SELECT.columns) {
ql.columns(req.query.SELECT.columns) ql.columns(req.query.SELECT.columns)
@@ -77,26 +77,26 @@ module.exports = cds.service.impl(function () {
ql.where(req.query.SELECT.where) ql.where(req.query.SELECT.where)
} }
const result = await tx.run(ql) const result = await txExt.run(ql)
delete result.businessPartner
return result return result
} }
async function _fillAddress (req) { async function _fillAddress (req) {
if (req.data.shippingAddress_addressID) { if (req.data.shippingAddress_AddressID) {
const businessPartner = req.user.id const BusinessPartner = req.user.id
const tx = bupaSrv.transaction(req) const txExt = bupaSrv.transaction(req)
const response = await tx.run( const response = await txExt.run(
SELECT.from(ShippingAddresses).where({ SELECT.from(ShippingAddresses).where({
addressID: req.data.shippingAddress_addressID, AddressID: req.data.shippingAddress_AddressID,
businessPartner BusinessPartner
}) })
) )
if (response && response.length > 0) { if (response && response.length > 0) {
const tx2 = cds.transaction(req) const tx = cds.transaction(req)
try { try {
const qlStatement = INSERT.into(ShippingAddresses).entries(response) const qlStatement = INSERT.into(ShippingAddresses).entries(response)
await tx2.run(qlStatement) await tx.run(qlStatement)
} catch (e) { } catch (e) {
// already in there // already in there
} }