I_CustomerMaterial_2

DDL: I_CUSTOMERMATERIAL_2 SQL: ISDCUSTMATLINFO2 Type: view BASIC

Customer Material

I_CustomerMaterial_2 is a Basic CDS View (Dimension) that provides data about "Customer Material" in SAP S/4HANA. It reads from 1 data source (knmt) and exposes 33 fields with key fields SalesOrganization, DistributionChannel, Customer, Product. It has 12 associations to related views.

Data Sources (1)

SourceAliasJoin Type
knmt knmt from

Associations (12)

CardinalityTargetAliasCondition
[0..1] I_SalesOrganization _SalesOrganization $projection.SalesOrganization = _SalesOrganization.SalesOrganization
[0..1] I_DistributionChannel _DistributionChannel $projection.DistributionChannel = _DistributionChannel.DistributionChannel
[0..1] I_Customer _Customer $projection.Customer = _Customer.Customer
[0..1] I_Product _Product $projection.Product = _Product.Product
[0..1] I_Plant _Plant $projection.Plant = _Plant.Plant
[0..1] I_DeliveryPriority _DeliveryPriority $projection.DeliveryPriority = _DeliveryPriority.DeliveryPriority
[0..1] I_UnitOfMeasure _BaseUnit $projection.BaseUnit = _BaseUnit.UnitOfMeasure
[0..1] I_PartialDeliveryItem _PartialDeliveryIsAllowed $projection.PartialDeliveryIsAllowed = _PartialDeliveryIsAllowed.PartialDeliveryIsAllowed
[0..1] I_CustomerMaterialItemUsage _CustomerMaterialItemUsage $projection.CustomerMaterialItemUsage = _CustomerMaterialItemUsage.CustomerMaterialItemUsage
[0..*] I_AdditionalCustomerMaterial _AdditionalCustomerMaterial $projection.SalesOrganization = _AdditionalCustomerMaterial.SalesOrganization and $projection.DistributionChannel = _AdditionalCustomerMaterial.DistributionChannel and $projection.Customer = _AdditionalCustomerMaterial.Customer and $projection.Product = _AdditionalCustomerMaterial.Product
[0..1] I_User _LastChangedByUser $projection.LastChangedByUser = _LastChangedByUser.UserID
[0..1] E_CustomerMaterial _Extension $projection.Product = _Extension.Material and $projection.Customer = _Extension.Customer and $projection.SalesOrganization = _Extension.SalesOrganization and $projection.DistributionChannel = _Extension.DistributionChannel

Annotations (17)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #A view
ObjectModel.usageType.sizeCategory #M view
ObjectModel.representativeKey Customer view
EndUserText.label Customer Material view
VDM.viewType #BASIC view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #REQUIRED view
AbapCatalog.sqlViewName ISDCUSTMATLINFO2 view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
Metadata.ignorePropagatedAnnotations true view
Metadata.allowExtensions true view
Analytics.internalName #LOCAL view
Analytics.dataCategory #DIMENSION view
ObjectModel.modelingPattern #ANALYTICAL_DIMENSION view

Fields (33)

KeyFieldSource TableSource FieldDescription
KEY SalesOrganization vkorg
KEY DistributionChannel vtweg
KEY Customer kunnr
KEY Product
MaterialByCustomer kdmat
MaterialDescriptionByCustomer postx
RoundingProfile rdprf
Plant werks
DeliveryPriority lprio
MinDeliveryQtyInBaseUnit minlf
BaseUnit meins
CustomerMaterialSearchTerm sortl
PartialDeliveryIsAllowed kztlf
MaxNmbrOfPartialDelivery antlf
UnderdelivTolrtdLmtRatioInPct untto
OverdelivTolrtdLmtRatioInPct uebto
UnlimitedOverdeliveryIsAllowed uebtk
CustomerMaterialItemUsage vwpos
SalesUnit vrkme_t
SalesQtyToBaseQtyDnmntr umvkn_t
SalesQtyToBaseQtyNmrtr umvkz_t
LastChangedByUser last_changed_by_user
_SalesOrganization _SalesOrganization
_DistributionChannel _DistributionChannel
_Customer _Customer
_Product _Product
_Plant _Plant
_DeliveryPriority _DeliveryPriority
_BaseUnit _BaseUnit
_PartialDeliveryIsAllowed _PartialDeliveryIsAllowed
_CustomerMaterialItemUsage _CustomerMaterialItemUsage
_AdditionalCustomerMaterial _AdditionalCustomerMaterial
_LastChangedByUser _LastChangedByUser
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.usageType.serviceQuality: #A
@ObjectModel.usageType.sizeCategory: #M
@ObjectModel.representativeKey: 'Customer'
@EndUserText.label: 'Customer Material'
@VDM.viewType: #BASIC
@AccessControl: {
  authorizationCheck: #CHECK,
  privilegedAssociations: [ '_LastChangedByUser' ]
}
@AccessControl.personalData.blocking: #REQUIRED
@AccessControl.personalData.blockingIndicator: [ 'Customer' ]
@AbapCatalog.sqlViewName: 'ISDCUSTMATLINFO2'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@Metadata.ignorePropagatedAnnotations: true
@Metadata.allowExtensions: true
@Analytics: {
    internalName: #LOCAL,
    dataCategory: #DIMENSION
}
@ObjectModel.modelingPattern:           #ANALYTICAL_DIMENSION
@ObjectModel.supportedCapabilities:  [  #SQL_DATA_SOURCE,
                                        #CDS_MODELING_DATA_SOURCE,
                                        #CDS_MODELING_ASSOCIATION_TARGET,
                                        #ANALYTICAL_DIMENSION ]
/*+[hideWarning] { "IDS" : [ "CALCULATED_FIELD_CHECK" ]  } */
define view I_CustomerMaterial_2
  as select from knmt
  association [0..1] to I_SalesOrganization          as _SalesOrganization          on  $projection.SalesOrganization = _SalesOrganization.SalesOrganization
  association [0..1] to I_DistributionChannel        as _DistributionChannel        on  $projection.DistributionChannel = _DistributionChannel.DistributionChannel
  association [0..1] to I_Customer                   as _Customer                   on  $projection.Customer = _Customer.Customer
  association [0..1] to I_Product                    as _Product                    on  $projection.Product = _Product.Product
  association [0..1] to I_Plant                      as _Plant                      on  $projection.Plant = _Plant.Plant
  association [0..1] to I_DeliveryPriority           as _DeliveryPriority           on  $projection.DeliveryPriority = _DeliveryPriority.DeliveryPriority
  association [0..1] to I_UnitOfMeasure              as _BaseUnit                   on  $projection.BaseUnit = _BaseUnit.UnitOfMeasure
  association [0..1] to I_PartialDeliveryItem        as _PartialDeliveryIsAllowed   on  $projection.PartialDeliveryIsAllowed = _PartialDeliveryIsAllowed.PartialDeliveryIsAllowed
  association [0..1] to I_CustomerMaterialItemUsage  as _CustomerMaterialItemUsage  on  $projection.CustomerMaterialItemUsage = _CustomerMaterialItemUsage.CustomerMaterialItemUsage
  association [0..*] to I_AdditionalCustomerMaterial as _AdditionalCustomerMaterial on  $projection.SalesOrganization   = _AdditionalCustomerMaterial.SalesOrganization
                                                                                    and $projection.DistributionChannel = _AdditionalCustomerMaterial.DistributionChannel
                                                                                    and $projection.Customer            = _AdditionalCustomerMaterial.Customer
                                                                                    and $projection.Product             = _AdditionalCustomerMaterial.Product
  association [0..1] to I_User                       as _LastChangedByUser          on  $projection.LastChangedByUser = _LastChangedByUser.UserID

  //Extensibility

  association [0..1] to E_CustomerMaterial           as _Extension                  on  $projection.Product             = _Extension.Material
                                                                                    and $projection.Customer            = _Extension.Customer
                                                                                    and $projection.SalesOrganization   = _Extension.SalesOrganization
                                                                                    and $projection.DistributionChannel = _Extension.DistributionChannel

{
      @ObjectModel.foreignKey.association: '_SalesOrganization'
  key vkorg                                          as SalesOrganization,
      @ObjectModel.foreignKey.association: '_DistributionChannel'
  key vtweg                                          as DistributionChannel,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_Customer_VH', element: 'Customer' } } ]
  key kunnr                                          as Customer,
      @Consumption.valueHelpDefinition: [ { entity: { name: 'I_ProductStdVH', element: 'Product' } } ]
      @ObjectModel.foreignKey.association: '_Product'
  key cast( matnr as productnumber preserving type ) as Product,

      // Customer Material

      kdmat                                          as MaterialByCustomer,
      @Semantics.text: true
      postx                                          as MaterialDescriptionByCustomer,
      rdprf                                          as RoundingProfile,

      // Shipping

      @ObjectModel.foreignKey.association: '_Plant'
      werks                                          as Plant,
      @ObjectModel.foreignKey.association: '_DeliveryPriority'
      lprio                                          as DeliveryPriority,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      minlf                                          as MinDeliveryQtyInBaseUnit,
      @Semantics.unitOfMeasure: true
      @ObjectModel.foreignKey.association: '_BaseUnit'
      meins                                          as BaseUnit,
      sortl                                          as CustomerMaterialSearchTerm,
      
      // Partial Delivery

      @ObjectModel.foreignKey.association: '_PartialDeliveryIsAllowed'
      kztlf                                          as PartialDeliveryIsAllowed,
      antlf                                          as MaxNmbrOfPartialDelivery,
      untto                                          as UnderdelivTolrtdLmtRatioInPct,
      uebto                                          as OverdelivTolrtdLmtRatioInPct,
      uebtk                                          as UnlimitedOverdeliveryIsAllowed,

      // Control Data

      @ObjectModel.foreignKey.association: '_CustomerMaterialItemUsage'
      vwpos                                          as CustomerMaterialItemUsage,

      // Units of Measure

      vrkme_t                                        as SalesUnit,
      umvkn_t                                        as SalesQtyToBaseQtyDnmntr,
      umvkz_t                                        as SalesQtyToBaseQtyNmrtr,

      // admin

      @ObjectModel.foreignKey.association: '_LastChangedByUser'
      last_changed_by_user                           as LastChangedByUser,

      @Semantics.systemDateTime.lastChangedAt: true
      case tstmp_is_valid(cast(upd_tmstmp as abap.dec(15,0)))
        when 0 then cast( dats_tims_to_tstmp( erdat, '000000', 'UTC', $session.client, 'NULL' ) as last_changed_date_time )
        else cast( upd_tmstmp as last_changed_date_time )
      end                                            as LastChangeDateTime,

      _SalesOrganization,
      _DistributionChannel,
      _Customer,
      _Product,
      _Plant,
      _DeliveryPriority,
      _BaseUnit,
      _PartialDeliveryIsAllowed,
      _CustomerMaterialItemUsage,
      _AdditionalCustomerMaterial,
      _LastChangedByUser
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"KNMT"
],
"ASSOCIATED":
[
"E_CUSTOMERMATERIAL",
"I_ADDITIONALCUSTOMERMATERIAL",
"I_CUSTOMER",
"I_CUSTOMERMATERIALITEMUSAGE",
"I_DELIVERYPRIORITY",
"I_DISTRIBUTIONCHANNEL",
"I_PARTIALDELIVERYITEM",
"I_PLANT",
"I_PRODUCT",
"I_SALESORGANIZATION",
"I_UNITOFMEASURE",
"I_USER"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/