We want to show change log for an entity which is not persisted as a table but is a view representing a union of several selects from DB tables.
**@changelog.objectID: [
displayId,
Type.code
]**
entity BusinessTransactions as(
select from payment.payments.Payments {
key ID,
Usage,
createdAt,
createdBy,
modifiedAt,
modifiedBy,
Type.code as Type_code,
Direction.code as Direction_code,
displayId,
Company,
BusinessPartner,
PaymentOrder,
Wallet,
Transaction,
cryptoAmount,
CryptoAmountCurrency,
fiatAmount,
FiatAmountCurrency,
paymentExecutionDateTime,
**@changelog**
LifecycleStatus.code as LifecycleStatus_code,
case
when
LifecycleStatus.code = 'IN_PROCESS'
or LifecycleStatus.code = 'ERRONEOUS'
then
'OPEN'
when
LifecycleStatus.code = 'COMPLETED'
or LifecycleStatus.code = 'COMPLETED_N_MATCHED'
or LifecycleStatus.code = 'CANCELED'
then
'COMPLETED'
else
null
end as completeness : String,
case
when
(
Transaction.ID = ''
or Transaction.ID is null
)
then
PaymentOrder.ID
else
Transaction.ID
end as transactionReferenceId : String,
Fee,
null as externalId : String,
null as documentDate : Date,
null as dueDate : Date,
Type : Association to one codelists.BusinessTransactionTypeCodes on Type.code = Type_code,
LifecycleStatus : Association to one codelists.BusinessTransactionLifecycleStatusCodes on LifecycleStatus.code = LifecycleStatus_code,
Network,
Account,
Account.name as AccountName,
ExchangeRate,
PaymentAgreementOutgoing,
PaymentAgreementIncoming,
}
)
union all
(
select from payment.payables.Payables {
key ID,
Usage,
createdAt,
createdBy,
modifiedAt,
modifiedBy,
'FOREC_OUTG_PAYMENT' as Type_code,
'OUTGOING' as Direction_code,
displayId,
Company,
BusinessPartner,
null as PaymentOrder,
null as Wallet,
null as Transaction,
cryptoAmount,
CryptoAmountCurrency,
fiatAmount,
FiatAmountCurrency,
null as paymentExecutionDateTime,
**@changelog**
case
when
LifecycleStatus.code = 'OPEN'
or LifecycleStatus.code = 'SCHEDULED'
then
'OPEN'
else
LifecycleStatus.code
end as LifecycleStatus_code,
case
when
LifecycleStatus.code = 'OPEN'
or LifecycleStatus.code = 'SCHEDULED'
or LifecycleStatus.code = 'PARTIALLY_PAID'
then
'OPEN'
else
null
end as completeness : String,
null as transactionReferenceId,
null as Fee,
externalId,
documentDate,
dueDate,
Type : Association to one codelists.BusinessTransactionTypeCodes on Type.code = Type_code,
LifecycleStatus : Association to one codelists.BusinessTransactionLifecycleStatusCodes on LifecycleStatus.code = LifecycleStatus_code,
Network,
Account,
Account.name as AccountName,
ExchangeRate,
PaymentAgreementOutgoing,
null as PaymentAgreementIncoming,
}
)
union all
(
select from payment.receivables.Receivables {
key ID,
Usage,
createdAt,
createdBy,
modifiedAt,
modifiedBy,
'FOREC_INC_PAYMENT' as Type_code,
'INCOMING' as Direction_code,
displayId,
Company,
BusinessPartner,
null as PaymentOrder,
null as Wallet,
null as Transaction,
cryptoAmount,
CryptoAmountCurrency,
fiatAmount,
FiatAmountCurrency,
null as paymentExecutionDateTime,
**@changelog**
LifecycleStatus.code as LifecycleStatus_code,
case
when
LifecycleStatus.code = 'OPEN'
or LifecycleStatus.code = 'PARTIALLY_PAID'
then
'OPEN'
else
null
end as completeness : String,
null as transactionReferenceId,
null as Fee,
externalId,
documentDate,
dueDate,
Type : Association to one codelists.BusinessTransactionTypeCodes on Type.code = Type_code,
LifecycleStatus : Association to one codelists.BusinessTransactionLifecycleStatusCodes on LifecycleStatus.code = LifecycleStatus_code,
Network,
Account,
Account.name as AccountName,
ExchangeRate,
null as PaymentAgreementOutgoing,
PaymentAgreementIncoming,
}
);
I tried to define change log for every selected entity as well but this does not work as well.