P_ClfnCharcOverwrite is a Composite CDS View in SAP S/4HANA. It reads from 1 data source (I_ClfnCharcBasic) and exposes 37 fields with key fields CharcInternalID, TimeIntervalNumber.
@AbapCatalog.preserveKey: true@ClientHandling.algorithm: #SESSION_VARIABLE@AbapCatalog.sqlViewName: 'PNGCCHR13'
@AbapCatalog.compiler.compareFilter: true@AccessControl.authorizationCheck: #NOT_ALLOWED@VDM.private: true@VDM.viewType: #COMPOSITE@VDM.lifecycle.contract.type: #NONE@ObjectModel.usageType.sizeCategory: #M@ObjectModel.usageType.serviceQuality: #A@ObjectModel.usageType.dataClass: #MASTERdefineview P_ClfnCharcOverwrite
asselectfrom I_ClfnCharcBasic as Characteristic
join I_ClfnClassCharcBasic as ClassCharc on
ClassCharc.OverwrittenCharcInternalID = Characteristic.CharcInternalID
join I_ClfnCharcBasic as OriginalCharc on
OriginalCharc.CharcInternalID = ClassCharc.CharcInternalID
{
key Characteristic.CharcInternalID,
key OriginalCharc.TimeIntervalNumber,
OriginalCharc.Characteristic,
OriginalCharc.CharcStatus,
OriginalCharc.CharcDataType,
OriginalCharc.CharcLength,
OriginalCharc.CharcDecimals,
OriginalCharc.CharcTemplate,
OriginalCharc.ValueIsCaseSensitive,
OriginalCharc.CharcConversionRoutine,
OriginalCharc.CharcGroup,
OriginalCharc.CharcValueUnit,
OriginalCharc.Currency,
OriginalCharc.CharcExponentFormat,
OriginalCharc.CharcExponentValue,
OriginalCharc.NegativeValueIsAllowed,
@Semantics.businessDate.from: true
OriginalCharc.ValidityStartDate,
@Semantics.businessDate.to: true
OriginalCharc.ValidityEndDate,
OriginalCharc.ChangeNumber,
OriginalCharc.IsDeleted,
OriginalCharc.DocumentInfoRecordDocType,
OriginalCharc.DocumentInfoRecordDocNumber,
OriginalCharc.DocumentInfoRecordDocVersion,
OriginalCharc.DocumentInfoRecordDocPart,
OriginalCharc.CharcMaintAuthGrp,
OriginalCharc.CharcReferenceTable,
OriginalCharc.CharcReferenceTableField,
OriginalCharc.CharcCheckTable,
OriginalCharc.CharcCheckFunctionModule,
OriginalCharc.CharcSelectedSet,
OriginalCharc.Plant,
OriginalCharc.CharcCatalogType,
OriginalCharc.CreatedByUser,
OriginalCharc.CreationDate,
OriginalCharc.LastChangedByUser,
OriginalCharc.LastChangeDate,
casewhen Characteristic.ValueIntervalAllowedCode = '*'
thencast ( OriginalCharc.ValueIntervalAllowedCode as valueintervalisallowed preserving type )
elsecast ( Characteristic.ValueIntervalAllowedCode as valueintervalisallowed preserving type )
endas ValueIntervalIsAllowed, // casting: representation term needs to change from code to indicator
casewhen Characteristic.AdditionalValueAllowedCode = '*'
thencast ( OriginalCharc.AdditionalValueAllowedCode as additionalvalueisallowed preserving type )
elsecast ( Characteristic.AdditionalValueAllowedCode as additionalvalueisallowed preserving type )
endas AdditionalValueIsAllowed, // casting: representation term needs to change from code to indicator
casewhen Characteristic.CharcReadOnlyCode = '*'
thencast ( OriginalCharc.CharcReadOnlyCode as charcisreadonly preserving type )
elsecast ( Characteristic.CharcReadOnlyCode as charcisreadonly preserving type )
endas CharcIsReadOnly, // casting: representation term needs to change from code to indicator
casewhen Characteristic.CharcHiddenCode = '*'
thencast ( OriginalCharc.CharcHiddenCode as charcishidden preserving type )
elsecast ( Characteristic.CharcHiddenCode as charcishidden preserving type )
endas CharcIsHidden, // casting: representation term needs to change from code to indicator
casewhen Characteristic.CharcEntryNotFormatCtrldCode = '*'
thencast ( OriginalCharc.CharcEntryNotFormatCtrldCode as charcentryisnotformatctrld preserving type )
elsecast ( Characteristic.CharcEntryNotFormatCtrldCode as charcentryisnotformatctrld preserving type )
endas CharcEntryIsNotFormatCtrld, // casting: representation term needs to change from code to indicator
casewhen Characteristic.CharcTemplateDisplayedCode = '*'
thencast ( OriginalCharc.CharcTemplateDisplayedCode as charctemplateisdisplayed preserving type )
elsecast ( Characteristic.CharcTemplateDisplayedCode as charctemplateisdisplayed preserving type )
endas CharcTemplateIsDisplayed, // casting: representation term needs to change from code to indicator
casewhen Characteristic.EntryRequiredCode = '*'
thencast ( OriginalCharc.EntryRequiredCode as entryisrequired preserving type )
elsecast ( Characteristic.EntryRequiredCode as entryisrequired preserving type )
endas EntryIsRequired, // casting: representation term needs to change from code to indicator
casewhen Characteristic.MultipleValuesAllowedCode = '*'
thencast ( OriginalCharc.MultipleValuesAllowedCode as multiplevaluesareallowed preserving type )
elsecast ( Characteristic.MultipleValuesAllowedCode as multiplevaluesareallowed preserving type )
endas MultipleValuesAreAllowed, // casting: representation term needs to change from code to indicator
OriginalCharc.CharcLastChangedDateTime
}
where Characteristic.CharcIdentificationCode = 'KL' // only overwritten characteristics
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CLFNCHARCBASIC",
"I_CLFNCLASSCHARCBASIC"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/