@AccessControl: {
authorizationCheck: #CHECK
}
@EndUserText.label: 'Manage Substitutions (Predecessors) - Products'
@ObjectModel: {
query.implementedBy: 'ABAP:CL_PRODSUBSTN_QUERY',
representativeKey: 'MDSubstnUUID',
semanticKey: [ 'Product', 'SubstituteProduct', 'Plant', 'MDSubstnGroup', 'MDSubstnReason' ],
usageType: {
dataClass: #TRANSACTIONAL,
serviceQuality: #C,
sizeCategory: #M
}
}
@UI: {
headerInfo: {
typeName: 'Product Substitution',
typeNamePlural: 'Product Substitutions',
title: { type: #STANDARD, value: 'Product' },
description: { type: #STANDARD, value: 'ProductDescription' }
}
}
@VDM: {
viewType: #CONSUMPTION
}
define view entity C_ProdSubstnPrdcssrTP
as projection on R_ProdSubstnPrdcssrTP
{
@UI: {
hidden: true
}
key MDSubstnUUID,
@UI: {
hidden: true
}
key MDSubstnMasterUUID,
@UI: {
hidden: true
}
MDSubstnObjectType,
@ObjectModel.text.element: ['ProductDescription']
@UI: {
lineItem: [{ position: 10, importance: #HIGH }],
textArrangement: #TEXT_LAST
}
Product,
@UI: {
hidden: true
}
_Product._Text.ProductName as ProductDescription : localized,
@ObjectModel.text.element: ['SubstituteProductDescription']
@UI: {
lineItem: [{ position: 20, importance: #HIGH }],
textArrangement: #TEXT_LAST
}
SubstituteProduct,
@UI: {
hidden: true
}
_SubstituteProduct._Text.ProductName as SubstituteProductDescription : localized,
@UI: {
hidden: true
}
MDSubstnContextObjectType,
@ObjectModel.text.element: ['PlantName']
@UI: {
lineItem: [{ position: 30, importance: #HIGH }],
textArrangement: #TEXT_LAST
}
Plant,
@UI: {
hidden: true
}
_Plant.PlantName,
@UI: {
hidden: true
}
MDSubstnContextObjectType2,
@ObjectModel.text.element: ['MDSubstnGroupDescription']
@UI: {
lineItem: [{ position: 40, importance: #HIGH }],
textArrangement: #TEXT_LAST
}
MDSubstnGroup,
@UI: {
hidden: true
}
_Group._GroupText.MDSubstnGroupDescription : localized,
@UI: {
hidden: true
}
MDSubstnVersionValue,
@UI: {
hidden: true
}
MDSubstnSet,
MDSubstnIsExit,
MDSubstnIsLeading,
MDSubstnSequenceValue,
@UI: {
lineItem: [{ position: 130, importance: #MEDIUM }]
}
MDSubstnConversionNumerator,
@UI: {
lineItem: [{ position: 140, importance: #MEDIUM }]
}
MDSubstnConversionDenominator,
@UI: {
hidden: true
}
MDSubstnConversionPercent,
// @UI: {
// lineItem: [{ position: 50, importance: #MEDIUM }]
// }
@UI: {
hidden: true
}
MDSubstnValidityStartDate,
// @UI: {
// lineItem: [{ position: 60, importance: #MEDIUM }]
// }
@UI: {
hidden: true
}
MDSubstnValidityStartTime,
// @UI: {
// lineItem: [{ position: 70, importance: #MEDIUM }]
// }
@UI: {
hidden: true
}
MDSubstnValidityEndDate,
// @UI: {
// lineItem: [{ position: 80, importance: #MEDIUM }]
// }
@UI: {
hidden: true
}
MDSubstnValidityEndTime,
@Semantics.timeZoneReference: 'TimeZoneID'
@UI: {
lineItem: [{ position: 50, importance: #MEDIUM }]
}
MDSubstnValidityStartDateTime,
@Semantics.timeZoneReference: 'TimeZoneID'
@UI: {
lineItem: [{ position: 60, importance: #MEDIUM }]
}
MDSubstnValidityEndDateTime,
// @ObjectModel.text.element: ['TimeZoneText']
@UI: {
lineItem: [{ position: 90, importance: #MEDIUM }],
textArrangement: #TEXT_ONLY
}
@Semantics.timeZone: true
TimeZoneID,
@UI: {
hidden: true
}
_TimeZone._TimeZoneText.TimeZoneText : localized,
@ObjectModel.text.element: ['MDSubstnReasonDescription']
@UI: {
lineItem: [{ position: 100, importance: #MEDIUM }],
textArrangement: #TEXT_LAST
}
MDSubstnReason,
@UI: {
hidden: true
}
_Reason._Text.MDSubstnReasonDescription : localized,
@Consumption: {
valueHelpDefinition: [{ entity: { name: 'I_MDSubstnSts', element: 'MDSubstnStatus' } }]
}
@ObjectModel.text.element: ['MDSubstnStatusDescription']
@UI: {
lineItem: [{ position: 120, importance: #HIGH, criticality: 'MDSubstnStatusCriticality', criticalityRepresentation: #WITHOUT_ICON }],
textArrangement: #TEXT_ONLY
}
MDSubstnStatus,
@UI: {
hidden: true
}
virtual MDSubstnStatusCriticality : abap.int1,
@UI: {
hidden: true
}
_Status._Text.MDSubstnStatusDescription : localized,
@UI: {
hidden: true
}
MDSubstnIsRlvtForATPProd,
@UI: {
hidden: true
}
MDSubstnIsRelevantForESPP,
CreatedByUser,
CreationDateTime,
LastChangedByUser,
LastChangeDateTime,
@EndUserText: {
label: 'Substitute Exclusion Status',
quickInfo: 'Substitute Exclusion Status'
}
@UI: {
lineItem: [{ position: 110, importance: #MEDIUM, criticality: 'MDSubstnExclsnStsCritlty', criticalityRepresentation: #WITHOUT_ICON }]
}
virtual MDSubstnExclsnSts : md_substn_status_text,
@UI: {
hidden: true
}
virtual MDSubstnExclsnStsCritlty : abap.int1,
/* Associations */
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_MDObjectType,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_ContextObjectTypeCode,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_ContextObjectTypeCode2,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_Product,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_SubstituteProduct,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_Plant,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_Group,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_ExitIndicator,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_LeadIndicator,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_TimeZone,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_Reason,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_Status,
@ObjectModel.sort.enabled: false
@ObjectModel.filter.enabled: false
@Consumption.filter.hidden: true
_MDSubstnIsRlvtForATPProd,
@ObjectModel.filter.enabled: false
@Consumption.filter.hidden: true
@ObjectModel.sort.enabled: false
_MDSubstnIsRelevantForESPP,
// @Consumption.filter.hidden: true
// _CreatedByUser,
//
// @Consumption.filter.hidden: true
// _LastChangedByUser,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.hidden: true
_Substitution : redirected to parent C_ProdSubstnTP
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_MDSUBSTNGRP",
"I_MDSUBSTNGRPTEXT",
"I_MDSUBSTNRSN",
"I_MDSUBSTNRSNTEXT",
"I_MDSUBSTNSTS",
"I_MDSUBSTNSTSTEXT",
"I_PLANT",
"I_PRODUCT",
"I_PRODUCTTEXT",
"I_TIMEZONE",
"I_TIMEZONETEXT",
"R_PRODSUBSTNPRDCSSRTP"
],
"ASSOCIATED":
[
"C_PRODSUBSTNTP",
"I_INDICATOR",
"I_MDSUBSTNGRP",
"I_MDSUBSTNRSN",
"I_MDSUBSTNSTS",
"I_PLANT",
"I_PRODUCT",
"I_SAPOBJECTTYPE",
"I_TIMEZONE",
"R_PRODSUBSTNTP"
],
"BASE":
[
"R_PRODSUBSTNPRDCSSRTP"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/