I_InsuranceContract
Contract in Insurance Policy
I_InsuranceContract is a Composite CDS View that provides data about "Contract in Insurance Policy" in SAP S/4HANA. It reads from 3 data sources (I_InsuranceContractBasic, I_InsurPlcyRegPremConfig, R_InsurancePolicyPremium) and exposes 62 fields with key fields InsurPlcyUUID, InsurPlcyInsurContr. It has 24 associations to related views. Part of development package VDM_PM_PLCY_COMMON.
Data Sources (3)
| Source | Alias | Join Type |
|---|---|---|
| I_InsuranceContractBasic | Contract | from |
| I_InsurPlcyRegPremConfig | PremiumConfig | inner |
| R_InsurancePolicyPremium | RegularPremium | inner |
Associations (24)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_Currency | _Currency | $projection.InsurPlcyPremiumCurrency = _Currency.Currency |
| [1..1] | I_InsurPlcyInsurer | _InsurPlcyInsurer | $projection.InsrrIDByInsrr = _InsurPlcyInsurer.InsrrIDByInsrr |
| [1..1] | I_InsurContrCanclnReason | _InsurContrCanclnReason | $projection.InsurContrCanclnRsn = _InsurContrCanclnReason.InsurContrCanclnRsn |
| [1..1] | I_InsurPlcyLineOfBusiness | _InsurPlcyLineOfBusiness | $projection.InsurPlcyLineOfBusiness = _InsurPlcyLineOfBusiness.InsurPlcyLineOfBusiness |
| [1..1] | I_InsurContrLifeCycleStatus | _InsurContrLifeCycleStatus | $projection.InsurContrLifeCycSts = _InsurContrLifeCycleStatus.InsurContrLifeCycSts |
| [0..1] | I_InsurContractRenewalTypeLink | _InsurContractRenewalType | $projection.InsurContrRnwlType = _InsurContractRenewalType.InsurContrRnwlType and $projection.InsurPlcyProductTemplate = _InsurContractRenewalType.InsurPlcyProductTemplate |
| [1..1] | I_InsurContrTariffVariantLink | _InsurContractTariffVariant | $projection.InsurContrTrifVar = _InsurContractTariffVariant.InsurContrTrifVar and $projection.InsurPlcyProductTemplate = _InsurContractTariffVariant.InsurPlcyProductTemplate |
| [1..1] | I_InsurPlcyDiscProtectionLink | _InsurPlcyDiscProtection | $projection.InsurPlcyDiscountProtection = _InsurPlcyDiscProtection.InsurPlcyDiscountProtection and $projection.InsurPlcyProductTemplate = _InsurPlcyDiscProtection.InsurPlcyProductTemplate |
| [1..*] | I_InsurPlcyTemplateT | _InsurPlcyTemplateT | $projection.InsurPlcyProductTemplate = _InsurPlcyTemplateT.InsurPlcyTemplate |
| [1..1] | I_InsurPremPaytRcrrcFrqcy | _InsurPremPaytRcrrcFrqcy | $projection.InsurPremSpecPaytRcrrcFrqcy = _InsurPremPaytRcrrcFrqcy.InsurPremSpecPaytRcrrcFrqcy |
| [1..1] | I_InsurApplLifeCycleStatus | _InsurApplLifeCycleStatus | $projection.InsurApplLifeCycSts = _InsurApplLifeCycleStatus.InsurApplLifeCycSts |
| [1..1] | I_InsurApplRejectionReason | _InsurApplRejectionReason | $projection.InsurApplRjcnRsn = _InsurApplRejectionReason.InsurApplRjcnRsn |
| [1..1] | I_InsurPolicyProductTemplate | _InsurPolicyProductTemplate | $projection.InsurPlcyProductTemplate = _InsurPolicyProductTemplate.InsurPlcyTemplate |
| [0..*] | I_InsurPlcyCoveragePackage | _InsurPlcyCoveragePackage | |
| [0..*] | I_InsurancePolicyContrCoverage | _InsurancePolicyContrCoverage | |
| [0..*] | I_InsurancePolicyContrLimit | _InsurancePolicyContrLimit | |
| [0..*] | I_InsurancePolicyContrClause | _InsurancePolicyContrClause | |
| [0..*] | I_InsurPlcyContrSurchrgDisc | _InsurPlcyContrSurchrgDisc | |
| [1..*] | I_InsurancePolicyPremPayer | _InsurancePolicyPremPayer | |
| [0..*] | I_InsurPolicyContrDeductible | _InsurPolicyContrDeductible | |
| [0..*] | I_InsurPlcyContrInsuredObject | _InsurPlcyContrInsuredObject | |
| [0..*] | I_InsurContrPlannedProcessing | _InsurContrPlndProcg | |
| [0..*] | I_InsurPlcyContractBonusMalus | _InsurPlcyContractBonusMalus | |
| [0..*] | I_InsurPlcyContractBeneficiary | _InsurPlcyContractBeneficiary | |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| EndUserText.label | Contract in Insurance Policy | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.lifecycle.contract.type | #PUBLIC_LOCAL_API | view | |
| AccessControl.authorizationCheck | #PRIVILEGED_ONLY | view | |
| ObjectModel.representativeKey | InsurPlcyInsurContr | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XXL | view | |
| Metadata.allowExtensions | false | view | |
| Metadata.ignorePropagatedAnnotations | false | view | |
| Analytics.technicalName | InsurContr | view |
Fields (62)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | InsurPlcyUUID | I_InsuranceContractBasic | InsurPlcyUUID | |
| KEY | InsurPlcyInsurContr | I_InsuranceContractBasic | InsurPlcyInsurContr | |
| InsurPlcyJrnlNmbr | I_InsuranceContractBasic | InsurPlcyJrnlNmbr | ||
| InsurPlcyJrnlEndNmbr | I_InsuranceContractBasic | InsurPlcyJrnlEndNmbr | ||
| InsurPlcyProductPackageID | I_InsuranceContractBasic | InsurPlcyProductPackageID | ||
| InsuranceContract | I_InsuranceContractBasic | InsuranceContract | ||
| InsurPlcyProductTemplate | I_InsuranceContractBasic | InsurPlcyProductTemplate | ||
| InsurPlcyLineOfBusiness | I_InsuranceContractBasic | InsurPlcyLineOfBusiness | ||
| InsurPlcyContractStartDateTime | I_InsuranceContractBasic | InsurPlcyContractStartDateTime | ||
| InsurPlcyContractEndDateTime | I_InsuranceContractBasic | InsurPlcyContractEndDateTime | ||
| InsrrIDByInsrr | I_InsuranceContractBasic | InsrrIDByInsrr | ||
| InsurContrLifeCycSts | I_InsuranceContractBasic | InsurContrLifeCycSts | ||
| InsurContrTrifVar | I_InsuranceContractBasic | InsurContrTrifVar | ||
| InsurCollDisbmtInsurObj | I_InsuranceContractBasic | InsurCollDisbmtInsurObj | ||
| InsurContrRnwlType | I_InsuranceContractBasic | InsurContrRnwlType | ||
| InsurContrCanclnRsn | I_InsuranceContractBasic | InsurContrCanclnRsn | ||
| InsurPlcyContrCanclnDateTime | I_InsuranceContractBasic | InsurPlcyContrCanclnDateTime | ||
| InsurApplRjcnRsn | I_InsuranceContractBasic | InsurApplRjcnRsn | ||
| InsurApplLifeCycSts | I_InsuranceContractBasic | InsurApplLifeCycSts | ||
| InsurPlcyContrStartIsDayOfRegn | I_InsuranceContractBasic | InsurPlcyContrStartIsDayOfRegn | ||
| InsurPlcyDiscountProtection | I_InsuranceContractBasic | InsurPlcyDiscountProtection | ||
| LastChangeDateTime | I_InsuranceContractBasic | LastChangeDateTime | ||
| InsurPlcyCountry | I_InsuranceContractBasic | InsurPlcyCountry | ||
| InsurancePolicyPremium | R_InsurancePolicyPremium | InsurancePolicyPremium | ||
| InsurPlcyPremiumJournalNumber | R_InsurancePolicyPremium | InsurPlcyJrnlNmbr | ||
| InsurPlcyPremJournalEndNumber | R_InsurancePolicyPremium | InsurPlcyJrnlEndNmbr | ||
| InsurPremSpecPaytRcrrcFrqcy | R_InsurancePolicyPremium | InsurPremSpecPaytRcrrcFrqcy | ||
| InsurPerdPremBfrTaxPaytAmt | R_InsurancePolicyPremium | InsurPerdPremBfrTaxPaytAmt | ||
| InsurPerdPremAftTaxPaytAmt | R_InsurancePolicyPremium | InsurPerdPremAftTaxPaytAmt | ||
| InsurPremType | R_InsurancePolicyPremium | InsurPremType | ||
| InsurContrIsPremExempt | R_InsurancePolicyPremium | InsurPlcyCvrgIsPremiumExempt | ||
| InsurContrPremExmpEndDte | R_InsurancePolicyPremium | InsurPlcyCvrgPremExmpEndDate | ||
| InsurPlcyPremiumCurrency | R_InsurancePolicyPremium | InsurPlcyPremiumCurrency | ||
| InsurPlcyTotAnnPremAmt | R_InsurancePolicyPremium | InsurPlcyTotAnnPremAmt | ||
| InsurPlcyPerdPremBfrTxPaytAmt | R_InsurancePolicyPremium | InsurPlcyPerdPremBfrTxPaytAmt | ||
| InsurPlcyMainDueDayMonth | R_InsurancePolicyPremium | InsurPlcyMainDueDayMonth | ||
| InsurPlcyPremiumTemplate | R_InsurancePolicyPremium | InsurPlcyPremiumTemplate | ||
| _InsurancePolicy | _InsurancePolicy | |||
| _InsurPlcyCoveragePackage | _InsurPlcyCoveragePackage | |||
| _InsurancePolicyPremPayer | _InsurancePolicyPremPayer | |||
| _InsurancePolicyContrCoverage | _InsurancePolicyContrCoverage | |||
| _InsurancePolicyContrLimit | _InsurancePolicyContrLimit | |||
| _InsurancePolicyContrClause | _InsurancePolicyContrClause | |||
| _InsurPlcyContrSurchrgDisc | _InsurPlcyContrSurchrgDisc | |||
| _InsurPolicyContrDeductible | _InsurPolicyContrDeductible | |||
| _InsurPlcyContrInsuredObject | _InsurPlcyContrInsuredObject | |||
| _InsurPolicyProductTemplate | _InsurPolicyProductTemplate | |||
| _InsurContrPlndProcg | _InsurContrPlndProcg | |||
| _InsurPlcyContractBonusMalus | _InsurPlcyContractBonusMalus | |||
| _InsurPlcyContractBeneficiary | _InsurPlcyContractBeneficiary | |||
| _InsurContrCanclnReason | _InsurContrCanclnReason | |||
| _InsurPlcyTemplateT | _InsurPlcyTemplateT | |||
| _InsurPlcyInsurer | _InsurPlcyInsurer | |||
| _InsurPlcyLineOfBusiness | _InsurPlcyLineOfBusiness | |||
| _InsurContrLifeCycleStatus | _InsurContrLifeCycleStatus | |||
| _InsurContractRenewalType | _InsurContractRenewalType | |||
| _InsurContractTariffVariant | _InsurContractTariffVariant | |||
| _InsurPlcyDiscProtection | _InsurPlcyDiscProtection | |||
| _Currency | _Currency | |||
| _InsurPremPaytRcrrcFrqcy | _InsurPremPaytRcrrcFrqcy | |||
| _InsurApplLifeCycleStatus | _InsurApplLifeCycleStatus | |||
| _InsurApplRejectionReason | _InsurApplRejectionReason |
@EndUserText.label: 'Contract in Insurance Policy'
@VDM: {
viewType:#COMPOSITE,
lifecycle.contract.type:#PUBLIC_LOCAL_API
}
@AccessControl: {
authorizationCheck: #PRIVILEGED_ONLY,
personalData.blocking: #('TRANSACTIONAL_DATA'),
privilegedAssociations: [ '_InsurPlcyCoveragePackage',
'_InsurancePolicyPremPayer',
'_InsurancePolicyContrLimit',
'_InsurancePolicyContrClause',
'_InsurPlcyContrSurchrgDisc',
'_InsurPolicyContrDeductible',
'_InsurPlcyContrInsuredObject',
'_InsurancePolicyContrCoverage',
'_InsurContrPlndProcg']
}
@ObjectModel: {
representativeKey: 'InsurPlcyInsurContr',
semanticKey: [ 'InsuranceContract' ],
usageType: {
dataClass: #TRANSACTIONAL,
serviceQuality: #C,
sizeCategory: #XXL
},
supportedCapabilities: [ #CDS_MODELING_DATA_SOURCE ]
}
@Metadata: {
allowExtensions:false,
ignorePropagatedAnnotations:false
}
@Analytics: {
technicalName: 'InsurContr'
}
define view entity I_InsuranceContract
as select from I_InsuranceContractBasic as Contract
inner join R_InsurancePolicyPremium as RegularPremium on RegularPremium.InsurPlcyUUID = Contract.InsurPlcyUUID
and RegularPremium.InsurPlcyInsurContr = Contract.InsurPlcyInsurContr
and RegularPremium.InsurPlcyCoveragePackageID = 0
and RegularPremium.InsurPlcyCoverageID = 0
// Filter Premium Objects
inner join I_InsurPlcyRegPremConfig as PremiumConfig on PremiumConfig.InsurPlcyProductTemplate = Contract.InsurPlcyProductTemplate
and PremiumConfig.InsurPremType = RegularPremium.InsurPremType
association to parent I_InsurancePolicy as _InsurancePolicy on $projection.InsurPlcyUUID = _InsurancePolicy.InsurPlcyUUID
composition [0..*] of I_InsurPlcyCoveragePackage as _InsurPlcyCoveragePackage
composition [0..*] of I_InsurancePolicyContrCoverage as _InsurancePolicyContrCoverage
composition [0..*] of I_InsurancePolicyContrLimit as _InsurancePolicyContrLimit
composition [0..*] of I_InsurancePolicyContrClause as _InsurancePolicyContrClause
composition [0..*] of I_InsurPlcyContrSurchrgDisc as _InsurPlcyContrSurchrgDisc
composition [1..*] of I_InsurancePolicyPremPayer as _InsurancePolicyPremPayer
composition [0..*] of I_InsurPolicyContrDeductible as _InsurPolicyContrDeductible
composition [0..*] of I_InsurPlcyContrInsuredObject as _InsurPlcyContrInsuredObject
composition [0..*] of I_InsurContrPlannedProcessing as _InsurContrPlndProcg
composition [0..*] of I_InsurPlcyContractBonusMalus as _InsurPlcyContractBonusMalus
composition [0..*] of I_InsurPlcyContractBeneficiary as _InsurPlcyContractBeneficiary
association [1..1] to I_Currency as _Currency on $projection.InsurPlcyPremiumCurrency = _Currency.Currency
association [1..1] to I_InsurPlcyInsurer as _InsurPlcyInsurer on $projection.InsrrIDByInsrr = _InsurPlcyInsurer.InsrrIDByInsrr
association [1..1] to I_InsurContrCanclnReason as _InsurContrCanclnReason on $projection.InsurContrCanclnRsn = _InsurContrCanclnReason.InsurContrCanclnRsn
association [1..1] to I_InsurPlcyLineOfBusiness as _InsurPlcyLineOfBusiness on $projection.InsurPlcyLineOfBusiness = _InsurPlcyLineOfBusiness.InsurPlcyLineOfBusiness
association [1..1] to I_InsurContrLifeCycleStatus as _InsurContrLifeCycleStatus on $projection.InsurContrLifeCycSts = _InsurContrLifeCycleStatus.InsurContrLifeCycSts
association [0..1] to I_InsurContractRenewalTypeLink as _InsurContractRenewalType on $projection.InsurContrRnwlType = _InsurContractRenewalType.InsurContrRnwlType
and $projection.InsurPlcyProductTemplate = _InsurContractRenewalType.InsurPlcyProductTemplate
association [1..1] to I_InsurContrTariffVariantLink as _InsurContractTariffVariant on $projection.InsurContrTrifVar = _InsurContractTariffVariant.InsurContrTrifVar
and $projection.InsurPlcyProductTemplate = _InsurContractTariffVariant.InsurPlcyProductTemplate
association [1..1] to I_InsurPlcyDiscProtectionLink as _InsurPlcyDiscProtection on $projection.InsurPlcyDiscountProtection = _InsurPlcyDiscProtection.InsurPlcyDiscountProtection
and $projection.InsurPlcyProductTemplate = _InsurPlcyDiscProtection.InsurPlcyProductTemplate
association [1..*] to I_InsurPlcyTemplateT as _InsurPlcyTemplateT on $projection.InsurPlcyProductTemplate = _InsurPlcyTemplateT.InsurPlcyTemplate
association [1..1] to I_InsurPremPaytRcrrcFrqcy as _InsurPremPaytRcrrcFrqcy on $projection.InsurPremSpecPaytRcrrcFrqcy = _InsurPremPaytRcrrcFrqcy.InsurPremSpecPaytRcrrcFrqcy
association [1..1] to I_InsurApplLifeCycleStatus as _InsurApplLifeCycleStatus on $projection.InsurApplLifeCycSts = _InsurApplLifeCycleStatus.InsurApplLifeCycSts
association [1..1] to I_InsurApplRejectionReason as _InsurApplRejectionReason on $projection.InsurApplRjcnRsn = _InsurApplRejectionReason.InsurApplRjcnRsn
association [1..1] to I_InsurPolicyProductTemplate as _InsurPolicyProductTemplate on $projection.InsurPlcyProductTemplate = _InsurPolicyProductTemplate.InsurPlcyTemplate
{
key Contract.InsurPlcyUUID,
key Contract.InsurPlcyInsurContr,
Contract.InsurPlcyJrnlNmbr,
Contract.InsurPlcyJrnlEndNmbr,
@Consumption.hidden: true
Contract.InsurPlcyProductPackageID,
Contract.InsuranceContract,
@ObjectModel.text.association: '_InsurPlcyTemplateT'
@ObjectModel.foreignKey.association: '_InsurPolicyProductTemplate'
// @ObjectModel.sapObjectNodeTypeReference: 'InsurancePolicyTemplate'
Contract.InsurPlcyProductTemplate,
@ObjectModel.foreignKey.association: '_InsurPlcyLineOfBusiness'
@ObjectModel.sapObjectNodeTypeReference: 'InsurancePolicyLineOfBusiness'
Contract.InsurPlcyLineOfBusiness,
@Semantics.dateTime:true
Contract.InsurPlcyContractStartDateTime,
@Semantics.dateTime:true
Contract.InsurPlcyContractEndDateTime,
@ObjectModel.foreignKey.association: '_InsurPlcyInsurer'
@ObjectModel.sapObjectNodeTypeReference: 'Insurer'
Contract.InsrrIDByInsrr,
@ObjectModel.foreignKey.association: '_InsurContrLifeCycleStatus'
@ObjectModel.sapObjectNodeTypeReference: 'InsurContractLifeCycleStatus'
Contract.InsurContrLifeCycSts,
@ObjectModel.foreignKey.association: '_InsurContractTariffVariant'
@ObjectModel.sapObjectNodeTypeReference: 'InsuranceContractTariffVariant'
Contract.InsurContrTrifVar,
Contract.InsurCollDisbmtInsurObj,
@ObjectModel.foreignKey.association: '_InsurContractRenewalType'
@ObjectModel.sapObjectNodeTypeReference: 'InsuranceContractRenewalType'
Contract.InsurContrRnwlType,
@ObjectModel.foreignKey.association: '_InsurContrCanclnReason'
@ObjectModel.sapObjectNodeTypeReference: 'InsurContrCancellationReason'
Contract.InsurContrCanclnRsn,
@Semantics.dateTime:true
Contract.InsurPlcyContrCanclnDateTime,
@ObjectModel.foreignKey.association: '_InsurApplRejectionReason'
@ObjectModel.sapObjectNodeTypeReference: 'InsuranceApplRejectionReason'
Contract.InsurApplRjcnRsn,
@ObjectModel.foreignKey.association: '_InsurApplLifeCycleStatus'
@ObjectModel.sapObjectNodeTypeReference: 'InsurApplLifeCycleStatus'
Contract.InsurApplLifeCycSts,
//FS-PM Auto sibling specific fields
Contract.InsurPlcyContrStartIsDayOfRegn,
@ObjectModel.foreignKey.association: '_InsurPlcyDiscProtection'
Contract.InsurPlcyDiscountProtection,
@Semantics.systemDateTime.lastChangedAt: true
Contract.LastChangeDateTime,
Contract.InsurPlcyCountry,
RegularPremium.InsurancePolicyPremium,
RegularPremium.InsurPlcyJrnlNmbr as InsurPlcyPremiumJournalNumber,
RegularPremium.InsurPlcyJrnlEndNmbr as InsurPlcyPremJournalEndNumber,
@ObjectModel.foreignKey.association: '_InsurPremPaytRcrrcFrqcy'
@ObjectModel.sapObjectNodeTypeReference: 'InsurPremSpecPaytRcrrcFrqcy'
RegularPremium.InsurPremSpecPaytRcrrcFrqcy,
@Semantics.amount.currencyCode: 'InsurPlcyPremiumCurrency'
RegularPremium.InsurPerdPremBfrTaxPaytAmt,
@Semantics.amount.currencyCode: 'InsurPlcyPremiumCurrency'
RegularPremium.InsurPerdPremAftTaxPaytAmt,
RegularPremium.InsurPremType,
@Semantics.booleanIndicator:true
RegularPremium.InsurPlcyCvrgIsPremiumExempt as InsurContrIsPremExempt,
RegularPremium.InsurPlcyCvrgPremExmpEndDate as InsurContrPremExmpEndDte,
@ObjectModel.foreignKey.association: '_Currency'
@ObjectModel.sapObjectNodeTypeReference: 'Currency'
RegularPremium.InsurPlcyPremiumCurrency,
@Semantics.amount.currencyCode: 'InsurPlcyPremiumCurrency'
RegularPremium.InsurPlcyTotAnnPremAmt,
@Semantics.amount.currencyCode: 'InsurPlcyPremiumCurrency'
RegularPremium.InsurPlcyPerdPremBfrTxPaytAmt,
RegularPremium.InsurPlcyMainDueDayMonth,
@ObjectModel.text.association: '_InsurPlcyTemplateT'
// @ObjectModel.sapObjectNodeTypeReference: 'InsurancePolicyTemplate'
RegularPremium.InsurPlcyPremiumTemplate,
/* Associations */
_InsurancePolicy,
_InsurPlcyCoveragePackage,
_InsurancePolicyPremPayer,
_InsurancePolicyContrCoverage,
_InsurancePolicyContrLimit,
_InsurancePolicyContrClause,
_InsurPlcyContrSurchrgDisc,
_InsurPolicyContrDeductible,
_InsurPlcyContrInsuredObject,
_InsurPolicyProductTemplate,
_InsurContrPlndProcg,
_InsurPlcyContractBonusMalus,
_InsurPlcyContractBeneficiary,
@Consumption.hidden: true
_InsurContrCanclnReason,
@Consumption.hidden: true
_InsurPlcyTemplateT,
@Consumption.hidden: true
_InsurPlcyInsurer,
@Consumption.hidden: true
_InsurPlcyLineOfBusiness,
@Consumption.hidden: true
_InsurContrLifeCycleStatus,
@Consumption.hidden: true
_InsurContractRenewalType,
@Consumption.hidden: true
_InsurContractTariffVariant,
@Consumption.hidden: true
_InsurPlcyDiscProtection,
@Consumption.hidden: true
_Currency,
@Consumption.hidden: true
_InsurPremPaytRcrrcFrqcy,
@Consumption.hidden: true
_InsurApplLifeCycleStatus,
@Consumption.hidden: true
_InsurApplRejectionReason
}
where
Contract.InsurPlcyJrnlEndNmbr = 2147483647
and Contract.InsurPlcyBusinessObject = 'P'
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA