C_ProdSubstnPrdcssrTP
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)
| Source | Alias | Join Type |
|---|---|---|
| R_ProdSubstnPrdcssrTP | R_ProdSubstnPrdcssrTP | projection |
Annotations (15)
| Name | Value | Level | Field |
|---|---|---|---|
| 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)
| Service | Binding | Version | Contract | Release |
|---|---|---|---|---|
| UI_PRODSUBSTITUTION_MANAGE | UI_PRODSUBSTITUTION_MANAGE | V2 | C1 | NOT_RELEASED |
Fiori Apps (1)
| App ID | App Name | Type | Description |
|---|---|---|---|
| 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)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| 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
}
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