I_ProdnOrderItemSerialNumber
Serial Number of Production Order Item
I_ProdnOrderItemSerialNumber is a Composite CDS View (Fact) that provides data about "Serial Number of Production Order Item" in SAP S/4HANA. It reads from 2 data sources (I_ProductionOrderItem, I_MaintenanceItemObject) and exposes 23 fields with key fields ProductionOrder, ProductionOrderItem. It has 3 associations to related views. Part of development package VDM_PP_SFC.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_ProductionOrderItem | item | from |
| I_MaintenanceItemObject | objk | inner |
Associations (3)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_ProductionOrder | _ProductionOrder | $projection.ProductionOrder = _ProductionOrder.ProductionOrder |
| [1..1] | I_Equipment | _Equipment | $projection.Equipment = _Equipment.Equipment -- new associations for full coverage of text relations |
| [0..*] | I_EquipmentText | _EquipmentText | $projection.Equipment = _EquipmentText.Equipment |
Annotations (14)
| Name | Value | Level | Field |
|---|---|---|---|
| AccessControl.authorizationCheck | #MANDATORY | view | |
| AccessControl.personalData.blocking | #NOT_REQUIRED | view | |
| Analytics.dataCategory | #FACT | view | |
| Analytics.dataExtraction.enabled | true | view | |
| Analytics.technicalName | IPRODNORDITMSERN | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| ObjectModel.modelingPattern | #NONE | view | |
| ObjectModel.sapObjectNodeType.name | ProductionOrderSerialNumber | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| VDM.lifecycle.contract.type | #PUBLIC_LOCAL_API | view | |
| VDM.viewType | #COMPOSITE | view | |
| EndUserText.label | Serial Number of Production Order Item | view |
Fields (23)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProductionOrder | I_ProductionOrderItem | ProductionOrder | |
| KEY | ProductionOrderItem | I_ProductionOrderItem | ProductionOrderItem | |
| MaintenanceItemObjectList | I_MaintenanceItemObject | MaintenanceItemObjectList | ||
| MaintenanceItemObject | I_MaintenanceItemObject | MaintenanceItemObject | ||
| Equipment | ||||
| Product | I_ProductionOrderItem | Product | ||
| ProductionPlant | I_ProductionOrderItem | ProductionPlant | ||
| PlanningPlant | I_ProductionOrderItem | PlanningPlant | ||
| ProductionOrderType | I_ProductionOrderItem | ProductionOrderType | ||
| SerialNumberProfile | ||||
| SerialNumberAssignmentDate | sern | SerialNumberAssignmentDate | ||
| _ProductionOrder | _ProductionOrder | |||
| _ProductionOrderItem | _ProductionOrderItem | |||
| _Equipment | _Equipment | |||
| _ProductionOrderType | I_ProductionOrderItem | _ProductionOrderType | ||
| _Product | I_ProductionOrderItem | _Product | ||
| _ProductionPlant | I_ProductionOrderItem | _ProductionPlant | ||
| _PlanningPlant | I_ProductionOrderItem | _PlanningPlant | ||
| _SerialNumberProfile | I_ProductionOrderItem | _SerialNumberProfile | ||
| Newtextrelations_EquipmentText | ||||
| _ProductText | I_ProductionOrderItem | _ProductText | ||
| _ProductionPlantText | I_ProductionOrderItem | _ProductionPlantText | ||
| _PlanningPlantText | I_ProductionOrderItem | _PlanningPlantText |
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #NOT_REQUIRED
@Analytics.dataCategory: #FACT
@Analytics.dataExtraction.enabled: true
@Analytics.technicalName: 'IPRODNORDITMSERN'
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.modelingPattern: #NONE
@ObjectModel.supportedCapabilities: [#CDS_MODELING_DATA_SOURCE, #EXTRACTION_DATA_SOURCE, #SQL_DATA_SOURCE]
@ObjectModel.sapObjectNodeType.name: 'ProductionOrderSerialNumber'
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #MIXED}
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Serial Number of Production Order Item'
define view entity I_ProdnOrderItemSerialNumber
as select from I_ProductionOrderItem as item
inner join ( I_MaintObjListLogisticsOrder as sern
inner join I_MaintenanceItemObject as objk on objk.MaintenanceItemObjectList = sern.MaintenanceObjectList )
on sern.LogisticsOrder = item.ProductionOrder
and sern.OrderItem = item.ProductionOrderItem
association to parent I_ProductionOrderItem as _ProductionOrderItem on $projection.ProductionOrder = _ProductionOrderItem.ProductionOrder
and $projection.ProductionOrderItem = _ProductionOrderItem.ProductionOrderItem
association [1..1] to I_ProductionOrder as _ProductionOrder on $projection.ProductionOrder = _ProductionOrder.ProductionOrder
association [1..1] to I_Equipment as _Equipment on $projection.Equipment = _Equipment.Equipment
-- new associations for full coverage of text relations
association [0..*] to I_EquipmentText as _EquipmentText on $projection.Equipment = _EquipmentText.Equipment
{
// Key
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProductionOrderStdVH', element: 'ProductionOrder' } } ]
@ObjectModel.foreignKey.association: '_ProductionOrder'
key item.ProductionOrder,
key item.ProductionOrderItem,
-- representative key
key cast(objk.SerialNumber as gernr preserving type) as SerialNumber,
// Technical Key
@Consumption.hidden: true
objk.MaintenanceItemObjectList, //OBKNR
@Consumption.hidden: true
objk.MaintenanceItemObject, //OBZAE
// Assignments
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_EquipmentStdVH', element: 'Equipment' } } ]
@ObjectModel.foreignKey.association: '_Equipment'
@ObjectModel.text.association: '_EquipmentText'
cast(objk.Equipment as equnr preserving type) as Equipment,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProductStdVH', element: 'Product' } } ]
@ObjectModel.foreignKey.association: '_Product'
@ObjectModel.text.association: '_ProductText'
item.Product,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlantStdVH', element: 'Plant' } } ]
@ObjectModel.foreignKey.association: '_ProductionPlant'
item.ProductionPlant,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_PlantStdVH', element: 'Plant' } } ]
@ObjectModel.foreignKey.association: '_PlanningPlant'
item.PlanningPlant,
@Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProductionOrderTypeStdVH', element: 'ProductionOrderType' } } ]
@ObjectModel.foreignKey.association: '_ProductionOrderType'
item.ProductionOrderType,
-- @ObjectModel.foreignKey.association: '_SerialNumberProfile'
item.SerialNumberProfile,
// Date
@Semantics.businessDate.at: true
sern.SerialNumberAssignmentDate,
// Association,
_ProductionOrder,
_ProductionOrderItem,
_Equipment,
item._ProductionOrderType,
item._Product,
item._ProductionPlant,
item._PlanningPlant,
item._SerialNumberProfile,
-- New text relations
_EquipmentText,
item._ProductText,
item._ProductionPlantText,
item._PlanningPlantText
};
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