I_VariantMaterial
Material of Variant
I_VariantMaterial is a Basic CDS View that provides data about "Material of Variant" in SAP S/4HANA. It reads from 4 data sources (makt, mara, pvcmpd, pvcmpp) and exposes 11 fields with key fields ProductStructureVariantUUID, ProdStrucVarBasicDataChgState. It has 3 associations to related views. Part of development package VDM_PLMB_PSM.
Data Sources (4)
Associations (3)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_LogAccMObjectTypeActive | _LogAccMObjectTypeActive | _LogAccMObjectTypeActive.LogAccMObjectType = 'PLM_PPEPV' or _LogAccMObjectTypeActive.LogAccMObjectType = 'PLM_PPEPIV' |
| [0..*] | I_LogAccMObjSecureIDAssgmt | _LogAccMObjSecureIDAssgmt | $projection.ProdStrucVariantUniqueID = _LogAccMObjSecureIDAssgmt.LogAccMObjectID and ( _LogAccMObjSecureIDAssgmt.LogAccMObjectType = 'PLM_PPEPV' or _LogAccMObjSecureIDAssgmt.LogAccMObjectType = 'PLM_PPEPIV' ) |
| [0..*] | I_LogAccMObjectUserAuthzn | _LogAccMObjectUserAuthzn | $projection.ProdStrucVariantUniqueID = _LogAccMObjectUserAuthzn.LogAccMObjectID and ( _LogAccMObjectUserAuthzn.LogAccMObjectType = 'PLM_PPEPV' or _LogAccMObjectUserAuthzn.LogAccMObjectType = 'PLM_PPEPIV' ) and ( _LogAccMObjectUserAuthzn.LogAccMUserAuthznObject = 'PLM_PPEPV' or _LogAccMObjectUserAuthzn.LogAccMUserAuthznObject = 'PLM_PPEPIV' ) and ( _LogAccMObjectUserAuthzn.LogAccMUserAuthznFrom = '03' or _LogAccMObjectUserAuthzn.LogAccMUserAuthznFrom = '*' ) and _LogAccMObjectUserAuthzn.LogAccMUserAuthznField = 'ACTVT' and ( _LogAccMObjectUserAuthzn.LogAccMUserEntityID = $session.user or _LogAccMObjectUserAuthzn.UserID = $session.user ) |
Annotations (11)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | IVARIANTMATERIAL | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| VDM.viewType | #BASIC | view | |
| VDM.lifecycle.status | #DEPRECATED | view | |
| VDM.lifecycle.successor | I_ProdStrucVariantMaterial | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.sizeCategory | #S | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| EndUserText.label | Material of Variant | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view |
Fields (11)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | ProductStructureVariantUUID | pvcmpd | pvguid | |
| KEY | ProdStrucVarBasicDataChgState | pvcmpd | pvcdcnt | |
| ProdStrucVariantUniqueID | ||||
| Material | ||||
| quant_fixendasProductStructureVariantQty | ||||
| ProductStructureVariantUnit | pvcmpd | qunit | ||
| MaterialName | makt | maktx | ||
| MaterialAuthorizationGroup | mara | begru | ||
| _LogAccMObjectTypeActive | _LogAccMObjectTypeActive | |||
| _LogAccMObjSecureIDAssgmt | _LogAccMObjSecureIDAssgmt | |||
| _LogAccMObjectUserAuthzn | _LogAccMObjectUserAuthzn |
@AbapCatalog.sqlViewName: 'IVARIANTMATERIAL'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@VDM.viewType: #BASIC
@VDM.lifecycle: {
// contract: {
// type: #PUBLIC_LOCAL_API
// },
status: #DEPRECATED,
successor: 'I_ProdStrucVariantMaterial'
}
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.sizeCategory: #S
@ObjectModel.usageType.serviceQuality: #C
@EndUserText.label: 'Material of Variant'
@ClientHandling.algorithm: #SESSION_VARIABLE
define view I_VariantMaterial
as select from pvcmpd
left outer join pvcmpp on pvcmpd.pvguid = pvcmpp.pvguid //Fix quantity
left outer join makt on pvcmpd.cmpid = makt.matnr
left outer join mara on pvcmpd.cmpid = mara.matnr
association [0..1] to I_LogAccMObjectTypeActive as _LogAccMObjectTypeActive on _LogAccMObjectTypeActive.LogAccMObjectType = 'PLM_PPEPV'
or _LogAccMObjectTypeActive.LogAccMObjectType = 'PLM_PPEPIV'
association [0..*] to I_LogAccMObjSecureIDAssgmt as _LogAccMObjSecureIDAssgmt on $projection.ProdStrucVariantUniqueID = _LogAccMObjSecureIDAssgmt.LogAccMObjectID
and (
_LogAccMObjSecureIDAssgmt.LogAccMObjectType = 'PLM_PPEPV'
or _LogAccMObjSecureIDAssgmt.LogAccMObjectType = 'PLM_PPEPIV'
)
association [0..*] to I_LogAccMObjectUserAuthzn as _LogAccMObjectUserAuthzn on $projection.ProdStrucVariantUniqueID = _LogAccMObjectUserAuthzn.LogAccMObjectID
and (
_LogAccMObjectUserAuthzn.LogAccMObjectType = 'PLM_PPEPV'
or _LogAccMObjectUserAuthzn.LogAccMObjectType = 'PLM_PPEPIV'
)
and (
_LogAccMObjectUserAuthzn.LogAccMUserAuthznObject = 'PLM_PPEPV'
or _LogAccMObjectUserAuthzn.LogAccMUserAuthznObject = 'PLM_PPEPIV'
)
and (
_LogAccMObjectUserAuthzn.LogAccMUserAuthznFrom = '03'
or _LogAccMObjectUserAuthzn.LogAccMUserAuthznFrom = '*'
)
and _LogAccMObjectUserAuthzn.LogAccMUserAuthznField = 'ACTVT'
and (
_LogAccMObjectUserAuthzn.LogAccMUserEntityID = $session.user
or _LogAccMObjectUserAuthzn.UserID = $session.user
)
{
key pvcmpd.pvguid as ProductStructureVariantUUID,
key pvcmpd.pvcdcnt as ProdStrucVarBasicDataChgState,
bintohex( pvcmpd.pvguid ) as ProdStrucVariantUniqueID,
cast(pvcmpd.cmpid as matnr) as Material,
case
when pvcmpp.pvguid is null
then pvcmpd.quant
else pvcmpp.quant_fix end
as ProductStructureVariantQty,
pvcmpd.qunit as ProductStructureVariantUnit,
makt.maktx as MaterialName,
mara.begru as MaterialAuthorizationGroup, //for authorization check
//_LogAccMObjSecureIDAssgmt.LogAccMObjectID,
_LogAccMObjectTypeActive,
_LogAccMObjSecureIDAssgmt,
_LogAccMObjectUserAuthzn
}
where
makt.spras = $session.system_language
or makt.spras is null
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