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
postalCode = Postal Code
country = Country
addressID = Address ID
businessPartner = Business Partner
AddressID = Address ID
BusinessPartner = Business Partner

View File

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

View File

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

View File

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

View File

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

View File

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