I_ProductSpecification
Product Specification
I_ProductSpecification is a Composite CDS View that provides data about "Product Specification" in SAP S/4HANA. It reads from 2 data sources (I_ProdSpecType, I_Specification) and exposes 29 fields with key fields ProductSpecificationInternalID, ProductSpecificationChgState. It has 12 associations to related views.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_ProdSpecType | _ProdSpecType | inner |
| I_Specification | _Specification | from |
Associations (12)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_ChangeMaster | _ChangeMaster | _ChangeMaster.ChangeNumber = $projection.ChangeNumber |
| [1..1] | I_ProdSpecNonHistoric | _ProdSpecNonHistoric | _ProdSpecNonHistoric.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID |
| [0..*] | I_ProdSpecDescription | _ProdSpecDescription | _ProdSpecDescription.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID and _ProdSpecDescription.ProdSpecDescValidityStartDate <= $projection.ProdSpecValidityStartDate and _ProdSpecDescription.ProdSpecDescValidityEndDate >= $projection.ProdSpecValidityEndDate |
| [0..*] | I_ProdSpecStdCmpstnHeader | _ProdSpecStdCmpstnHeader | _ProdSpecStdCmpstnHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID and _ProdSpecStdCmpstnHeader.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate and _ProdSpecStdCmpstnHeader.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate |
| [0..*] | I_ProdSpecAllergenCmpstnHeader | _ProdSpecAllergenCmpstnHeader | _ProdSpecAllergenCmpstnHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID and _ProdSpecAllergenCmpstnHeader.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate and _ProdSpecAllergenCmpstnHeader.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate |
| [0..*] | I_ProdSpecNutrientCmpstnHdr | _ProdSpecNutrientCmpstnHdr | _ProdSpecNutrientCmpstnHdr.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID and _ProdSpecNutrientCmpstnHdr.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate and _ProdSpecNutrientCmpstnHdr.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate |
| [0..*] | I_ProdSpecCmpstnHeader | _ProdSpecCmpstnHeader | _ProdSpecCmpstnHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID and _ProdSpecCmpstnHeader.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate and _ProdSpecCmpstnHeader.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate |
| [0..*] | I_ProdSpecQtytvCmpstnHeader | _ProdSpecQtytvCmpstnHeader | _ProdSpecQtytvCmpstnHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID and _ProdSpecQtytvCmpstnHeader.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate and _ProdSpecQtytvCmpstnHeader.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate |
| [0..*] | I_ProdSpecQltatvCmpstnHeader | _ProdSpecQltatvCmpstnHeader | _ProdSpecQltatvCmpstnHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID and _ProdSpecQltatvCmpstnHeader.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate and _ProdSpecQltatvCmpstnHeader.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate |
| [0..*] | I_ProdSpecListingCmpstnHeader | _ProdSpecListingCmpstnHeader | _ProdSpecListingCmpstnHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID and _ProdSpecListingCmpstnHeader.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate and _ProdSpecListingCmpstnHeader.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate |
| [0..*] | I_ProdSpecPropertyHeader | _ProdSpecPropertyHeader | _ProdSpecPropertyHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID and _ProdSpecPropertyHeader.ProdSpecPrptyHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate and _ProdSpecPropertyHeader.ProdSpecPrptyHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate |
| [0..1] | I_SpecificationLastChange | _SpecificationLastChange | $projection.ProductSpecificationInternalID = _SpecificationLastChange.SpecificationInternalID |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IPRODSPEC | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| EndUserText.label | Product Specification | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.dataClass | #MASTER | view | |
| VDM.lifecycle.contract.type | #SAP_INTERNAL_API | view | |
| VDM.viewType | #COMPOSITE | view |
Fields (29)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProductSpecificationInternalID | |||
| KEY | ProductSpecificationChgState | |||
| ProductSpecification | ||||
| ProdSpecValidityStartDate | SpecificationValidityStartDate | |||
| ProdSpecValidityEndDate | SpecificationValidityEndDate | |||
| ChangeNumber | SpecificationChangeNumber | |||
| ProdSpecCreatedByUser | SpecificationCreatedByUser | |||
| ProdSpecCreationDate | SpecificationCreationDate | |||
| ProdSpecLastChangedByUser | SpecificationLastChangedByUser | |||
| ProdSpecLastChangeDate | SpecificationLastChangeDate | |||
| ProdSpecNote | SpecificationNote | |||
| ProdSpecIsDeleted | SpecificationIsDeleted | |||
| ProdSpecType | I_ProdSpecType | SpecificationType | ||
| ProdSpecAuthznGroup | SpecificationAuthznGroup | |||
| _ChangeMaster | _ChangeMaster | |||
| _ProdSpecNonHistoric | _ProdSpecNonHistoric | |||
| _ProdSpecDescription | _ProdSpecDescription | |||
| _ProdSpecStdCmpstnHeader | _ProdSpecStdCmpstnHeader | |||
| _ProdSpecAllergenCmpstnHeader | _ProdSpecAllergenCmpstnHeader | |||
| _ProdSpecNutrientCmpstnHdr | _ProdSpecNutrientCmpstnHdr | |||
| _ProdSpecCmpstnHeader | _ProdSpecCmpstnHeader | |||
| _ProdSpecQtytvCmpstnHeader | _ProdSpecQtytvCmpstnHeader | |||
| _ProdSpecQltatvCmpstnHeader | _ProdSpecQltatvCmpstnHeader | |||
| _ProdSpecListingCmpstnHeader | _ProdSpecListingCmpstnHeader | |||
| _ProdSpecPropertyHeader | _ProdSpecPropertyHeader | |||
| _SpecificationLastChange | _SpecificationLastChange | |||
| _LogAccMObjectTypeActive | _LogAccMObjectTypeActive | |||
| _LogAccMObjectUserAuthzn | _LogAccMObjectUserAuthzn | |||
| _LogAccMObjSecureIDAssgmt | _LogAccMObjSecureIDAssgmt |
@AbapCatalog.sqlViewName: 'IPRODSPEC'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Product Specification'
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.dataClass: #MASTER
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
@VDM.viewType: #COMPOSITE
define view I_ProductSpecification
as select from I_Specification as _Specification
inner join I_ProdSpecType as _ProdSpecType on _Specification.SpecificationType = _ProdSpecType.SpecificationType
association [0..1] to I_ChangeMaster as _ChangeMaster on _ChangeMaster.ChangeNumber = $projection.ChangeNumber
association [1..1] to I_ProdSpecNonHistoric as _ProdSpecNonHistoric on _ProdSpecNonHistoric.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID
association [0..*] to I_ProdSpecDescription as _ProdSpecDescription on _ProdSpecDescription.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID
and _ProdSpecDescription.ProdSpecDescValidityStartDate <= $projection.ProdSpecValidityStartDate
and _ProdSpecDescription.ProdSpecDescValidityEndDate >= $projection.ProdSpecValidityEndDate
association [0..*] to I_ProdSpecStdCmpstnHeader as _ProdSpecStdCmpstnHeader on _ProdSpecStdCmpstnHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID
and _ProdSpecStdCmpstnHeader.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate
and _ProdSpecStdCmpstnHeader.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate
association [0..*] to I_ProdSpecAllergenCmpstnHeader as _ProdSpecAllergenCmpstnHeader on _ProdSpecAllergenCmpstnHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID
and _ProdSpecAllergenCmpstnHeader.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate
and _ProdSpecAllergenCmpstnHeader.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate
association [0..*] to I_ProdSpecNutrientCmpstnHdr as _ProdSpecNutrientCmpstnHdr on _ProdSpecNutrientCmpstnHdr.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID
and _ProdSpecNutrientCmpstnHdr.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate
and _ProdSpecNutrientCmpstnHdr.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate
association [0..*] to I_ProdSpecCmpstnHeader as _ProdSpecCmpstnHeader on _ProdSpecCmpstnHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID
and _ProdSpecCmpstnHeader.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate
and _ProdSpecCmpstnHeader.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate
association [0..*] to I_ProdSpecQtytvCmpstnHeader as _ProdSpecQtytvCmpstnHeader on _ProdSpecQtytvCmpstnHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID
and _ProdSpecQtytvCmpstnHeader.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate
and _ProdSpecQtytvCmpstnHeader.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate
association [0..*] to I_ProdSpecQltatvCmpstnHeader as _ProdSpecQltatvCmpstnHeader on _ProdSpecQltatvCmpstnHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID
and _ProdSpecQltatvCmpstnHeader.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate
and _ProdSpecQltatvCmpstnHeader.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate
association [0..*] to I_ProdSpecListingCmpstnHeader as _ProdSpecListingCmpstnHeader on _ProdSpecListingCmpstnHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID
and _ProdSpecListingCmpstnHeader.ProdSpecCmpstnHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate
and _ProdSpecListingCmpstnHeader.ProdSpecCmpstnHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate
association [0..*] to I_ProdSpecPropertyHeader as _ProdSpecPropertyHeader on _ProdSpecPropertyHeader.ProductSpecificationInternalID = $projection.ProductSpecificationInternalID
and _ProdSpecPropertyHeader.ProdSpecPrptyHdrValdtyStrtDte <= $projection.ProdSpecValidityStartDate
and _ProdSpecPropertyHeader.ProdSpecPrptyHdrValdtyEndDte >= $projection.ProdSpecValidityEndDate
association [0..1] to I_SpecificationLastChange as _SpecificationLastChange on $projection.ProductSpecificationInternalID = _SpecificationLastChange.SpecificationInternalID
{
key cast( SpecificationInternalID as /plmb/spc_prod_int_id preserving type ) as ProductSpecificationInternalID,
key cast( SpecificationChangeState as /plmb/spc_prod_change_state preserving type ) as ProductSpecificationChgState,
cast( Specification as /plmb/spc_prod_spec_ext_id_api preserving type ) as ProductSpecification,
SpecificationValidityStartDate as ProdSpecValidityStartDate,
SpecificationValidityEndDate as ProdSpecValidityEndDate,
SpecificationChangeNumber as ChangeNumber,
SpecificationCreatedByUser as ProdSpecCreatedByUser,
SpecificationCreationDate as ProdSpecCreationDate,
SpecificationLastChangedByUser as ProdSpecLastChangedByUser,
SpecificationLastChangeDate as ProdSpecLastChangeDate,
SpecificationNote as ProdSpecNote,
SpecificationIsDeleted as ProdSpecIsDeleted,
@Consumption.hidden: true
//cast(_ProdSpecType.SpecificationType as /plmb/spc_type preserving type ) as ProdSpecType,
_ProdSpecType.SpecificationType as ProdSpecType,
@Consumption.hidden: true
SpecificationAuthznGroup as ProdSpecAuthznGroup,
_ChangeMaster,
_ProdSpecNonHistoric,
_ProdSpecDescription,
_ProdSpecStdCmpstnHeader,
_ProdSpecAllergenCmpstnHeader,
_ProdSpecNutrientCmpstnHdr,
_ProdSpecCmpstnHeader,
_ProdSpecQtytvCmpstnHeader,
_ProdSpecQltatvCmpstnHeader,
_ProdSpecListingCmpstnHeader,
_ProdSpecPropertyHeader,
_SpecificationLastChange,
@Consumption.hidden: true
_LogAccMObjectTypeActive,
@Consumption.hidden: true
_LogAccMObjectUserAuthzn,
@Consumption.hidden: true
_LogAccMObjSecureIDAssgmt
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PRODSPECTYPE",
"I_SPECIFICATION"
],
"ASSOCIATED":
[
"I_CHANGEMASTER",
"I_LOGACCMOBJECTTYPEACTIVE",
"I_LOGACCMOBJECTUSERAUTHZN",
"I_LOGACCMOBJSECUREIDASSGMT",
"I_PRODSPECALLERGENCMPSTNHEADER",
"I_PRODSPECCMPSTNHEADER",
"I_PRODSPECDESCRIPTION",
"I_PRODSPECLISTINGCMPSTNHEADER",
"I_PRODSPECNONHISTORIC",
"I_PRODSPECNUTRIENTCMPSTNHDR",
"I_PRODSPECPROPERTYHEADER",
"I_PRODSPECQLTATVCMPSTNHEADER",
"I_PRODSPECQTYTVCMPSTNHEADER",
"I_PRODSPECSTDCMPSTNHEADER",
"I_SPECIFICATIONLASTCHANGE"
],
"BASE":
[
"I_SPECIFICATION"
],
"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