C_SubstanceAssgdPCPrpty is a Consumption CDS View that provides data about "Substance assigned Properties" in SAP S/4HANA. It reads from 1 data source (P_SubstanceAssgdPCPrpty) and exposes 12 fields with key fields PCPrptyRootType, SubstanceUUID. It has 1 association to related views.
@EndUserText.label: 'Substance assigned Properties'
@AbapCatalog:
{
sqlViewName: 'CSUBASGDPRPTY',
compiler.compareFilter: true
}@AccessControl.authorizationCheck: #CHECK@AbapCatalog.preserveKey:true
--Client Handling of the view@ClientHandling.algorithm: #SESSION_VARIABLE
--VDM view type
@VDM.viewType: #CONSUMPTION
--ObjectModel Usage Type
@ObjectModel:
{
representativeKey: 'PCPrptyRootType',
semanticKey: [ 'SubstanceUUID', 'PCPrptyRootType' ],
usageType:
{
serviceQuality: #C,
dataClass: #MIXED,
sizeCategory: #L
}
}
//--Header information
/*define data for the header*/@UI:
{
headerInfo:
{
typeName: 'Property',
typeNamePlural: 'Properties',
title:
{
label: 'Properties',
value: 'PCPrptyRootTypeName'
}
},
presentationVariant:
{
sortOrder:
[
{
by: 'PCPrptyRootTypeName',
direction: #ASC
}
],
requestAtLeast: [
'PCPrptyProcgSts',
'PCPrptyProcgStsText',
'PCPrptyProcgStsCritlty',
'PCPrptyNavgnLinkUUID',
'PCPrptyIsActive',
'SemanticObject',
'SemanticObjectAction',
'PCPrptyNavgnLinkParamName',
'PCPrptyActiveIndParamName'
]
}
}
defineview C_SubstanceAssgdPCPrpty
asselectfrom P_SubstanceAssgdPCPrpty as Property
-- Root type text
association [0..1] to I_PCPrptyRootType as _PCPrptyRootType on $projection.PCPrptyRootType = _PCPrptyRootType.PCPrptyRootType
{
@UI.lineItem: {
position: 5
}@ObjectModel.text.element: ['PCPrptyRootTypeName']@UI.textArrangement: #TEXT_ONLYkey PCPrptyRootType,
@UI.hidden: truekey SubstanceUUID,
--needed for DCL
ResponsibleUnit,
@ObjectModel.readOnly: true@UI.hidden: true
coalesce(
_PCPrptyRootType._Text[ 1: Language = $session.system_language ].PCPrptyRootTypeName,
_PCPrptyRootType._Text[ 1: Language = 'E' ].PCPrptyRootTypeName
) as PCPrptyRootTypeName,
-------------------------------------------------------------------------------------------------------
--Information for Navigation to associated property records
-------------------------------------------------------------------------------------------------------
-- Overall Status
@ObjectModel.virtualElement@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_PRP_ASSIGNED_CALC_EXT'
@ObjectModel.readOnly: true@ObjectModel.text.element: ['PCPrptyProcgStsText']@UI.textArrangement: #TEXT_ONLY@UI.lineItem: {
position: 10,
label: 'Processing Status',
criticality: 'PCPrptyProcgStsCritlty',
criticalityRepresentation: #WITHOUT_ICON
}cast('' as ehfnd_property_status) as PCPrptyProcgSts,
@ObjectModel.virtualElement@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_PRP_ASSIGNED_CALC_EXT'
@ObjectModel.readOnly: truecast('' as val_text) as PCPrptyProcgStsText,
@ObjectModel.virtualElement@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_PRP_ASSIGNED_CALC_EXT'
@ObjectModel.readOnly: truecast(0 asabap.int1) as PCPrptyProcgStsCritlty,
// @ObjectModel.virtualElement -> Calculated via CDS view because source elements not avaible in context of root note
// @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_PRP_ASSIGNED_CALC_EXT'
// hextobin('00000000000000000000000000000000') as PCPrptyNavgnLinkUUID,
@ObjectModel.readOnly: true
PCPrptyNavgnLinkUUID,
--Indicator: Is active entity -> Calculated via CDS view because source elements not avaible in context of root note
// @ObjectModel.virtualElement// @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_PRP_ASSIGNED_CALC_EXT'
// cast('' as boole_d) as PCPrptyIsActive,
@ObjectModel.readOnly: truecast(PCPrptyIsActive as boole_d) as PCPrptyIsActive,
--SemanticObject
@ObjectModel.virtualElement@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_PRP_ASSIGNED_CALC_EXT'
@ObjectModel.readOnly: truecast('' as val_text) as SemanticObject,
--SemanticObjectAction
@ObjectModel.virtualElement@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_PRP_ASSIGNED_CALC_EXT'
@ObjectModel.readOnly: truecast('' as val_text) as SemanticObjectAction,
--Paramter Name for Navigation Link
@ObjectModel.virtualElement@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_PRP_ASSIGNED_CALC_EXT'
@ObjectModel.readOnly: truecast('' as val_text) as PCPrptyNavgnLinkParamName,
--Paramter Name for Activation Indicator
@ObjectModel.virtualElement@ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_EHFND_PRP_ASSIGNED_CALC_EXT'
@ObjectModel.readOnly: truecast('' as val_text) as PCPrptyActiveIndParamName,
--UUID of in process version
@UI.hidden: true
PCPrptyInProcessUUID,
--Status In Process
@UI.hidden: true
PCPrptyInProcProcgSts,
--Is Active entity@UI.hidden: true
PCPrptyInProcIsActive,
--UUID of released version
@UI.hidden: true
PCPrptyReleasedUUID,
--Status Released
@UI.hidden: true
PCPrptyReldProcgSts,
--Is Active entity@UI.hidden: true
PCPrptyReldIsActive
}
//where// //reduce property groups to only substance relevant ones
// PCPrptyRootType.PCPrptyRootType = 'EHFNDD_PHYSCHEM'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PCPRPTYROOTTYPE",
"I_PCPRPTYROOTTYPETEXT",
"P_SUBSTANCEASSGDPCPRPTY"
],
"ASSOCIATED":
[
"I_PCPRPTYROOTTYPE"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/