I_ProductStorage_2
Product Storage
I_ProductStorage_2 is a Basic CDS View (Dimension) that provides data about "Product Storage" in SAP S/4HANA. It reads from 1 data source (mara) and exposes 28 fields with key field Product. It has 12 associations to related views.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| mara | mara | from |
Associations (12)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [1..1] | I_Product | _Product | $projection.Product = _Product.Product |
| [0..1] | E_Product | _ProdStorageExt | $projection.Product = _ProdStorageExt.Product |
| [0..1] | I_Storagecondition | _StorageCondition | $projection.StorageConditions = _StorageCondition.StorageConditions |
| [0..1] | I_Tempindcndn | _TemperatureConditionInd | $projection.TemperatureConditionInd = _TemperatureConditionInd.TemperatureConditionInd |
| [0..*] | I_Tempindcndntext | _TemperatureConditionText | $projection.TemperatureConditionInd = _TemperatureConditionText.TemperatureConditionInd |
| [0..1] | I_ShelfLifeExprtnDateRndngRule | _ShelfLifeExprtnDateRndngRule | $projection.ShelfLifeExprtnDateRndngRule = _ShelfLifeExprtnDateRndngRule.ShelfLifeExprtnDateRndngRule |
| [0..1] | I_CtnRqmtsForProduct | _StorageBinInstruction | $projection.StorageBinInstruction = _StorageBinInstruction.StorageBinInstruction |
| [0..1] | I_LabelForm | _LabelForm | $projection.LabelForm = _LabelForm.LabelForm |
| [0..1] | I_ProdShelfLifeExprtnDtePerdVH | _ShelfLifeExpirationDatePeriod | $projection.ShelfLifeExpirationDatePeriod = _ShelfLifeExpirationDatePeriod.ShelfLifeExpirationDatePeriod |
| [0..1] | I_LabelType | _LabelType | $projection.LabelType = _LabelType.LabelType |
| [0..1] | I_ProductExpirationDateCode | _ProductExpirationDateCode | $projection.ProductExpirationDateCode = _ProductExpirationDateCode.ProductExpirationDateCode |
| [0..1] | I_UnitOfMeasure | _BaseUnitOfMeasure | $projection.BaseUnit = _BaseUnitOfMeasure.UnitOfMeasure |
Annotations (18)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IPRDROOTSTORAGE2 | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| VDM.viewType | #BASIC | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Product Storage | view | |
| ObjectModel.representativeKey | Product | view | |
| ObjectModel.usageType.serviceQuality | #A | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| Metadata.allowExtensions | true | view | |
| Analytics.dataCategory | #DIMENSION | view | |
| Analytics.internalName | #LOCAL | view | |
| Analytics.dataExtraction.enabled | true | view | |
| Analytics.dataExtraction.delta.changeDataCapture.automatic | true | view | |
| AccessControl.personalData.blocking | #NOT_REQUIRED | view |
Fields (28)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | Product | mara | matnr | |
| StorageConditions | mara | raube | ||
| _StorageCondition | _StorageCondition | |||
| TemperatureConditionInd | mara | tempb | ||
| _TemperatureConditionInd | _TemperatureConditionInd | |||
| _TemperatureConditionText | _TemperatureConditionText | |||
| HazardousMaterialNumber | mara | stoff | ||
| NmbrOfGROrGISlipsToPrintQty | mara | wesch | ||
| LabelType | mara | etiar | ||
| LabelForm | mara | etifo | ||
| MinRemainingShelfLife | mara | mhdrz | ||
| ProductExpirationDateCode | mara | sled_bbd | ||
| StorageBinInstruction | mara | behvo | ||
| _StorageBinInstruction | _StorageBinInstruction | |||
| TotalShelfLifeStoragePercent | mara | mhdlp | ||
| ShelfLifeExpirationDatePeriod | ||||
| ShelfLifeExprtnDateRndngRule | mara | rdmhd | ||
| AuthorizationGroup | mara | begru | ||
| IsActiveEntity | ||||
| TotalShelfLife | mara | mhdhb | ||
| BaseUnit | mara | meins | ||
| _ShelfLifeExprtnDateRndngRule | _ShelfLifeExprtnDateRndngRule | |||
| _LabelForm | _LabelForm | |||
| _ShelfLifeExpirationDatePeriod | _ShelfLifeExpirationDatePeriod | |||
| _LabelType | _LabelType | |||
| _ProductExpirationDateCode | _ProductExpirationDateCode | |||
| _Product | _Product | |||
| _BaseUnitOfMeasure | _BaseUnitOfMeasure |
@AbapCatalog: {
sqlViewName: 'IPRDROOTSTORAGE2',
compiler.compareFilter: true,
preserveKey: true
}
@VDM.viewType: #BASIC
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Product Storage'
@ObjectModel.representativeKey: 'Product'
@ObjectModel.usageType.serviceQuality: #A
@ObjectModel.usageType.sizeCategory : #L
@ObjectModel.usageType.dataClass: #MASTER
@ClientHandling.algorithm: #SESSION_VARIABLE
@Metadata.ignorePropagatedAnnotations:true
@Metadata.allowExtensions:true
@Analytics:{
dataCategory: #DIMENSION,
internalName: #LOCAL,
dataExtraction: {
enabled: true,
delta.changeDataCapture.automatic: true
}
}
@ObjectModel.supportedCapabilities: [ #SQL_DATA_SOURCE,
#CDS_MODELING_DATA_SOURCE,
#CDS_MODELING_ASSOCIATION_TARGET,
#EXTRACTION_DATA_SOURCE
]
@AccessControl.personalData.blocking: #NOT_REQUIRED
define view I_ProductStorage_2
as select from mara
association [1..1] to I_Product as _Product on $projection.Product = _Product.Product
association [0..1] to E_Product as _ProdStorageExt on $projection.Product = _ProdStorageExt.Product
association [0..1] to I_Storagecondition as _StorageCondition on $projection.StorageConditions = _StorageCondition.StorageConditions
association [0..1] to I_Tempindcndn as _TemperatureConditionInd on $projection.TemperatureConditionInd = _TemperatureConditionInd.TemperatureConditionInd
association [0..*] to I_Tempindcndntext as _TemperatureConditionText on $projection.TemperatureConditionInd = _TemperatureConditionText.TemperatureConditionInd
association [0..1] to I_ShelfLifeExprtnDateRndngRule as _ShelfLifeExprtnDateRndngRule on $projection.ShelfLifeExprtnDateRndngRule = _ShelfLifeExprtnDateRndngRule.ShelfLifeExprtnDateRndngRule
association [0..1] to I_CtnRqmtsForProduct as _StorageBinInstruction on $projection.StorageBinInstruction = _StorageBinInstruction.StorageBinInstruction
association [0..1] to I_LabelForm as _LabelForm on $projection.LabelForm = _LabelForm.LabelForm
association [0..1] to I_ProdShelfLifeExprtnDtePerdVH as _ShelfLifeExpirationDatePeriod on $projection.ShelfLifeExpirationDatePeriod = _ShelfLifeExpirationDatePeriod.ShelfLifeExpirationDatePeriod
association [0..1] to I_LabelType as _LabelType on $projection.LabelType = _LabelType.LabelType
association [0..1] to I_ProductExpirationDateCode as _ProductExpirationDateCode on $projection.ProductExpirationDateCode = _ProductExpirationDateCode.ProductExpirationDateCode
association [0..1] to I_UnitOfMeasure as _BaseUnitOfMeasure on $projection.BaseUnit = _BaseUnitOfMeasure.UnitOfMeasure
{
key mara.matnr as Product,
@ObjectModel.foreignKey.association:'_Storagecondition'
mara.raube as StorageConditions,
_StorageCondition,
@ObjectModel.text.association: '_TemperatureConditionText'
mara.tempb as TemperatureConditionInd,
_TemperatureConditionInd,
_TemperatureConditionText,
mara.stoff as HazardousMaterialNumber,
@Semantics.quantity.unitOfMeasure: 'BaseUnit'
mara.wesch as NmbrOfGROrGISlipsToPrintQty,
@ObjectModel.foreignKey.association:'_LabelType'
mara.etiar as LabelType,
@ObjectModel.foreignKey.association:'_LabelForm'
mara.etifo as LabelForm,
mara.mhdrz as MinRemainingShelfLife,
@ObjectModel.foreignKey.association:'_ProductExpirationDateCode'
mara.sled_bbd as ProductExpirationDateCode,
// Retail Field
@ObjectModel.foreignKey.association:'_StorageBinInstruction'
mara.behvo as StorageBinInstruction,
_StorageBinInstruction,
// mara.mhdhb as TotalShelfLife, //pstat changes
mara.mhdlp as TotalShelfLifeStoragePercent,
@ObjectModel.foreignKey.association:'_ShelfLifeExpirationDatePeriod'
@ObjectModel.sapObjectNodeTypeReference:'ShelfLifeExpirationDatePeriod'
cast(mara.iprkz as shelflifeexpirationdateperiod preserving type ) as ShelfLifeExpirationDatePeriod,
@ObjectModel.foreignKey.association:'_ShelfLifeExprtnDateRndngRule'
mara.rdmhd as ShelfLifeExprtnDateRndngRule,
mara.begru as AuthorizationGroup,
cast( 'X' as sdraft_is_active preserving type ) as IsActiveEntity, // to enbale extensibility in Draft 2.0
mara.mhdhb as TotalShelfLife, // as per mdg model the field should be part of storage
@Semantics.unitOfMeasure: true
@ObjectModel.foreignKey.association: '_BaseUnitOfMeasure'
mara.meins as BaseUnit,
_ShelfLifeExprtnDateRndngRule,
_LabelForm,
_ShelfLifeExpirationDatePeriod,
_LabelType,
_ProductExpirationDateCode,
_Product,
_BaseUnitOfMeasure
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"MARA"
],
"ASSOCIATED":
[
"E_PRODUCT",
"I_CTNRQMTSFORPRODUCT",
"I_LABELFORM",
"I_LABELTYPE",
"I_PRODSHELFLIFEEXPRTNDTEPERDVH",
"I_PRODUCT",
"I_PRODUCTEXPIRATIONDATECODE",
"I_SHELFLIFEEXPRTNDATERNDNGRULE",
"I_STORAGECONDITION",
"I_TEMPINDCNDN",
"I_TEMPINDCNDNTEXT",
"I_UNITOFMEASURE"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
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