I_VariantMaterial

DDL: I_VARIANTMATERIAL SQL: IVARIANTMATERIAL Type: view BASIC Package: VDM_PLMB_PSM

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)

SourceAliasJoin Type
makt makt left_outer
mara mara left_outer
pvcmpd pvcmpd from
pvcmpp pvcmpp left_outer

Associations (3)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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