C_ProdSubstnPrdcssrTP

DDL: C_PRODSUBSTNPRDCSSRTP Type: view_entity CONSUMPTION Package: ODATA_PROD_SUBSTN

Manage Substitutions (Predecessors) - Products

C_ProdSubstnPrdcssrTP is a Consumption CDS View that provides data about "Manage Substitutions (Predecessors) - Products" in SAP S/4HANA. It reads from 1 data source (R_ProdSubstnPrdcssrTP) and exposes 54 fields with key fields MDSubstnUUID, MDSubstnMasterUUID. It is exposed through 1 OData service (UI_PRODSUBSTITUTION_MANAGE). It is used in 1 Fiori application: Manage Substitutions - Products. Part of development package ODATA_PROD_SUBSTN.

Data Sources (1)

SourceAliasJoin Type
R_ProdSubstnPrdcssrTP R_ProdSubstnPrdcssrTP projection

Annotations (15)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
EndUserText.label Manage Substitutions (Predecessors) - Products view
ObjectModel.query.implementedBy ABAP:CL_PRODSUBSTN_QUERY view
ObjectModel.representativeKey MDSubstnUUID view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #M view
UI.headerInfo.typeName Product Substitution view
UI.headerInfo.typeNamePlural Product Substitutions view
UI.headerInfo.title.type #STANDARD view
UI.headerInfo.title.value Product view
UI.headerInfo.description.type #STANDARD view
UI.headerInfo.description.value ProductDescription view
VDM.viewType #CONSUMPTION view

OData Services (1)

ServiceBindingVersionContractRelease
UI_PRODSUBSTITUTION_MANAGE UI_PRODSUBSTITUTION_MANAGE V2 C1 NOT_RELEASED

Fiori Apps (1)

App IDApp NameTypeDescription
F4785 Manage Substitutions - Products Transactional An application to manage product substitutions

Manage Substitutions - Products

Business Role: Master Data Specialist - Product Data

With this app, you can create and manage product substitutions. You can use this app to substitute a product with another product. For example, a supplier selling product A realizes that the product is out of stock. The supplier can substitute the product with product B to fulfill business requirements. You can create multiple substitutions for a product. Additionally, you can create aATP and eSPP relevant product substitutions. Note Extended Service Parts Planning (eSPP) application area does not support groups. Advanced Available To Promise (aATP) application area does not support the following: Time validities Sets Conversions using numerator and denominator Conversion percentage Groups

Key Features: You can use this app to: Create, edit, and delete product substitutions. Create plant-specific substitutions. You must ensure that both the product and its substitute belong to the same plant. Provide reasons for substitutions. View preceding and succeeding substitutions. Specify the order in which the substitutions are performed by sequencing them. Specify when a chain of substitutions has to stop. Specify which substitution has precedence. View product substitution graph.

Fields (54)

KeyFieldSource TableSource FieldDescription
KEY MDSubstnUUID MDSubstnUUID
KEY MDSubstnMasterUUID MDSubstnMasterUUID
MDSubstnObjectType MDSubstnObjectType
Product Product
ProductNameasProductDescriptionlocalized
SubstituteProduct SubstituteProduct
MDSubstnContextObjectType MDSubstnContextObjectType
Plant Plant
PlantName _Plant PlantName
MDSubstnContextObjectType2 MDSubstnContextObjectType2
MDSubstnGroup MDSubstnGroup
MDSubstnGroupDescriptionlocalized
MDSubstnVersionValue MDSubstnVersionValue
MDSubstnSet MDSubstnSet
MDSubstnIsExit MDSubstnIsExit
MDSubstnIsLeading MDSubstnIsLeading
MDSubstnSequenceValue MDSubstnSequenceValue
MDSubstnConversionNumerator MDSubstnConversionNumerator
MDSubstnConversionDenominator MDSubstnConversionDenominator
MDSubstnConversionPercent MDSubstnConversionPercent
MDSubstnValidityStartDate MDSubstnValidityStartDate
MDSubstnValidityStartTime MDSubstnValidityStartTime
MDSubstnValidityEndDate MDSubstnValidityEndDate
MDSubstnValidityEndTime MDSubstnValidityEndTime
MDSubstnValidityStartDateTime MDSubstnValidityStartDateTime
MDSubstnValidityEndDateTime MDSubstnValidityEndDateTime
TimeZoneID TimeZoneID
TimeZoneTextlocalized
MDSubstnReason MDSubstnReason
MDSubstnReasonDescriptionlocalized
MDSubstnStatus MDSubstnStatus
int1
MDSubstnStatusDescriptionlocalized
MDSubstnIsRlvtForATPProd MDSubstnIsRlvtForATPProd
MDSubstnIsRelevantForESPP MDSubstnIsRelevantForESPP
CreatedByUser CreatedByUser
CreationDateTime CreationDateTime
LastChangedByUser LastChangedByUser
LastChangeDateTime LastChangeDateTime
int1
_MDObjectType _MDObjectType
_ContextObjectTypeCode _ContextObjectTypeCode
_ContextObjectTypeCode2 _ContextObjectTypeCode2
_Product _Product
_SubstituteProduct _SubstituteProduct
_Plant _Plant
_Group _Group
_ExitIndicator _ExitIndicator
_LeadIndicator _LeadIndicator
_TimeZone _TimeZone
_Reason _Reason
_Status _Status
_MDSubstnIsRlvtForATPProd _MDSubstnIsRlvtForATPProd
_MDSubstnIsRelevantForESPP _MDSubstnIsRelevantForESPP
@AccessControl: {
  authorizationCheck: #MANDATORY
}
@AccessControl.personalData.blocking: #NOT_REQUIRED
@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
}