I_CustomerMaterialTP

DDL: I_CUSTOMERMATERIALTP SQL: ISDCUSTMATTP Type: view TRANSACTIONAL Package: ODATA_SD_CUSTOMER_MATERIAL

Customer Material BO Draft

I_CustomerMaterialTP is a Transactional CDS View that provides data about "Customer Material BO Draft" in SAP S/4HANA. It reads from 1 data source (I_CustomerMaterial_2) and exposes 44 fields with key fields SalesOrganization, DistributionChannel, Customer, Material. It has 14 associations to related views. Part of development package ODATA_SD_CUSTOMER_MATERIAL.

Data Sources (1)

SourceAliasJoin Type
I_CustomerMaterial_2 I_CustomerMaterial_2 from

Associations (14)

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_Material _Material $projection.Material = _Material.Material
[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_CustomerMaterialLongTextTP _CustomerMaterialText $projection.SalesOrganization = _CustomerMaterialText.SalesOrganization and $projection.DistributionChannel = _CustomerMaterialText.DistributionChannel and $projection.Customer = _CustomerMaterialText.Customer and $projection.Material = _CustomerMaterialText.Material
[0..*] I_AdditionalCustomerMaterialTP _AdditionalCustomerMaterial $projection.SalesOrganization = _AdditionalCustomerMaterial.SalesOrganization and $projection.DistributionChannel = _AdditionalCustomerMaterial.DistributionChannel and $projection.Customer = _AdditionalCustomerMaterial.Customer and $projection.Material = _AdditionalCustomerMaterial.Material
[0..*] I_CustMatlAddrDepdntInfoTP _CustMatlAddrDepdntInfo $projection.SalesOrganization = _CustMatlAddrDepdntInfo.SalesOrganization and $projection.DistributionChannel = _CustMatlAddrDepdntInfo.DistributionChannel and $projection.Customer = _CustMatlAddrDepdntInfo.Customer and $projection.Material = _CustMatlAddrDepdntInfo.Material
[0..1] I_LogisticalRoundingProfile _LogisticalRoundingProfile $projection.Plant = _LogisticalRoundingProfile.Plant and $projection.RoundingProfile = _LogisticalRoundingProfile.LogisticalRoundingProfile
[0..1] E_CustomerMaterial _Extension $projection.Material = _Extension.Material and $projection.Customer = _Extension.Customer and $projection.SalesOrganization = _Extension.SalesOrganization and $projection.DistributionChannel = _Extension.DistributionChannel

Annotations (19)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #M view
VDM.viewType #TRANSACTIONAL view
AbapCatalog.sqlViewName ISDCUSTMATTP view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
Search.searchable true view
ObjectModel.modelCategory #BUSINESS_OBJECT view
ObjectModel.compositionRoot true view
ObjectModel.transactionalProcessingEnabled true view
ObjectModel.createEnabled true view
ObjectModel.updateEnabled true view
ObjectModel.deleteEnabled true view
ObjectModel.draftEnabled true view
ObjectModel.entityChangeStateId LastChangeDateTime view
ObjectModel.writeDraftPersistence ICUSTMATDRAFT view
EndUserText.label Customer Material BO Draft view

Fields (44)

KeyFieldSource TableSource FieldDescription
KEY SalesOrganization SalesOrganization
KEY DistributionChannel DistributionChannel
KEY Customer Customer
KEY Material
SalesOrganizationName
SalesOrganizationForEdit SalesOrganization
DistributionChannelForEdit DistributionChannel
CustomerasCustomerForEdit
MaterialForEdit Product
CustomerMaterialSearchTerm CustomerMaterialSearchTerm
MaterialByCustomer MaterialByCustomer
MaterialByCustomerForEdit MaterialByCustomer
MaterialName
MaterialDescriptionByCustomer MaterialDescriptionByCustomer
RoundingProfile RoundingProfile
Plant Plant
DeliveryPriority DeliveryPriority
MinDeliveryQtyInBaseUnit MinDeliveryQtyInBaseUnit
BaseUnit BaseUnit
PartialDeliveryIsAllowed PartialDeliveryIsAllowed
MaxNmbrOfPartialDelivery MaxNmbrOfPartialDelivery
UnderdelivTolrtdLmtRatioInPct UnderdelivTolrtdLmtRatioInPct
OverdelivTolrtdLmtRatioInPct OverdelivTolrtdLmtRatioInPct
UnlimitedOverdeliveryIsAllowed UnlimitedOverdeliveryIsAllowed
CustomerMaterialItemUsage CustomerMaterialItemUsage
SalesUnit SalesUnit
SalesQtyToBaseQtyDnmntr SalesQtyToBaseQtyDnmntr
SalesQtyToBaseQtyNmrtr SalesQtyToBaseQtyNmrtr
LastChangedByUser LastChangedByUser
LastChangeDateTime LastChangeDateTime
_CustomerMaterialText _CustomerMaterialText
_AdditionalCustomerMaterial _AdditionalCustomerMaterial
_CustMatlAddrDepdntInfo _CustMatlAddrDepdntInfo
_SalesOrganization _SalesOrganization
_DistributionChannel _DistributionChannel
_Customer _Customer
_Material _Material
_Plant _Plant
_DeliveryPriority _DeliveryPriority
_BaseUnit _BaseUnit
_PartialDeliveryIsAllowed _PartialDeliveryIsAllowed
_CustomerMaterialItemUsage _CustomerMaterialItemUsage
_LastChangedByUser _LastChangedByUser
_LogisticalRoundingProfile _LogisticalRoundingProfile
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #M
@VDM.viewType: #TRANSACTIONAL
@AbapCatalog.sqlViewName: 'ISDCUSTMATTP'
@AccessControl: {
  authorizationCheck: #CHECK,
  privilegedAssociations: [ '_LastChangedByUser' ]
}
@AccessControl.personalData.blocking: #NOT_REQUIRED
@Search.searchable: true

@ObjectModel.modelCategory: #BUSINESS_OBJECT
@ObjectModel.compositionRoot: true

@ObjectModel.transactionalProcessingEnabled: true
@ObjectModel.createEnabled: true
@ObjectModel.updateEnabled: true
@ObjectModel.deleteEnabled: true
@ObjectModel.draftEnabled: true
@ObjectModel.entityChangeStateId: 'LastChangeDateTime'

@ObjectModel.writeDraftPersistence: 'ICUSTMATDRAFT'
@ObjectModel.representativeKey:  ['Material','SalesOrganization','DistributionChannel','Customer']
@ObjectModel.semanticKey: ['MaterialForEdit','SalesOrganizationForEdit','DistributionChannelForEdit','CustomerForEdit']
@EndUserText.label: 'Customer Material BO Draft'

define view I_CustomerMaterialTP
  as select from I_CustomerMaterial_2

  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_Material                  as _Material                  on $projection.Material = _Material.Material
  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_CustomerMaterialLongTextTP as _CustomerMaterialText     on  $projection.SalesOrganization = _CustomerMaterialText.SalesOrganization 
                                                                                  and $projection.DistributionChannel = _CustomerMaterialText.DistributionChannel
                                                                                  and $projection.Customer = _CustomerMaterialText.Customer
                                                                                  and $projection.Material = _CustomerMaterialText.Material    

  association [0..*] to I_AdditionalCustomerMaterialTP as _AdditionalCustomerMaterial 
    on  $projection.SalesOrganization = _AdditionalCustomerMaterial.SalesOrganization 
    and $projection.DistributionChannel = _AdditionalCustomerMaterial.DistributionChannel
    and $projection.Customer = _AdditionalCustomerMaterial.Customer
    and $projection.Material = _AdditionalCustomerMaterial.Material

  association [0..*] to I_CustMatlAddrDepdntInfoTP as _CustMatlAddrDepdntInfo     on  $projection.SalesOrganization   = _CustMatlAddrDepdntInfo.SalesOrganization
                                                                                  and $projection.DistributionChannel = _CustMatlAddrDepdntInfo.DistributionChannel
                                                                                  and $projection.Customer            = _CustMatlAddrDepdntInfo.Customer
                                                                                  and $projection.Material            = _CustMatlAddrDepdntInfo.Material

  association [0..1] to I_LogisticalRoundingProfile    as _LogisticalRoundingProfile  on  $projection.Plant =  _LogisticalRoundingProfile.Plant
                                                                                      and $projection.RoundingProfile = _LogisticalRoundingProfile.LogisticalRoundingProfile                                                                                     

  //Extensibility

  association [0..1] to E_CustomerMaterial  as _Extension                         on  $projection.Material = _Extension.Material
                                                                                  and $projection.Customer = _Extension.Customer
                                                                                  and $projection.SalesOrganization = _Extension.SalesOrganization
                                                                                  and $projection.DistributionChannel = _Extension.DistributionChannel
                                                                                   
  
{
      @ObjectModel.readOnly:true
  key SalesOrganization,
      @ObjectModel.readOnly:true
  key DistributionChannel,
      @ObjectModel.readOnly:true
  key Customer,
      @ObjectModel.readOnly:true
  key cast (Product as productnumber preserving type) as Material,
  
      _SalesOrganization._Text[1: Language=$session.system_language ].SalesOrganizationName,
      @ObjectModel.foreignKey.association: '_SalesOrganization'
      @ObjectModel.text.element:  [ 'SalesOrganizationName' ]
      @ObjectModel.mandatory: true 
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      SalesOrganization            as SalesOrganizationForEdit,
      @ObjectModel.foreignKey.association: '_DistributionChannel'
      @ObjectModel.mandatory: true 
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      DistributionChannel          as DistributionChannelForEdit,
--      @ObjectModel.foreignKey.association: '_Customer'
      @ObjectModel.mandatory: true 
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Customer                     as CustomerForEdit,
      @ObjectModel.foreignKey.association: '_Material'
      @ObjectModel.mandatory: true 
      @ObjectModel.readOnly: 'EXTERNAL_CALCULATION'
      Product                     as MaterialForEdit,
      CustomerMaterialSearchTerm,
      //Customer Material

      MaterialByCustomer,
      MaterialByCustomer           as MaterialByCustomerForEdit,
      @ObjectModel.readOnly: true                                                                        
      @Consumption.filter.hidden: true 
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      _Material._Text[1: Language=$session.system_language ].MaterialName,
      @Semantics.text: true
      MaterialDescriptionByCustomer,
      RoundingProfile,
      //Shipping

      @ObjectModel.foreignKey.association: '_Plant'
      Plant,
      @ObjectModel.foreignKey.association: '_DeliveryPriority'
      DeliveryPriority,
      @Semantics.quantity.unitOfMeasure: 'BaseUnit'
      MinDeliveryQtyInBaseUnit,
      @Semantics.unitOfMeasure: true
      @ObjectModel.foreignKey.association: '_BaseUnit'
      @ObjectModel.readOnly: true
      BaseUnit,
      //Partial Delivery

      @ObjectModel.foreignKey.association: '_PartialDeliveryIsAllowed'
      PartialDeliveryIsAllowed,
      MaxNmbrOfPartialDelivery,
      UnderdelivTolrtdLmtRatioInPct,
      OverdelivTolrtdLmtRatioInPct,
      UnlimitedOverdeliveryIsAllowed,

      //Control Data

      @ObjectModel.foreignKey.association: '_CustomerMaterialItemUsage'
      CustomerMaterialItemUsage,
      
      //Units of Measure

      SalesUnit,
      SalesQtyToBaseQtyDnmntr,
      SalesQtyToBaseQtyNmrtr,     
      
      LastChangedByUser,
      LastChangeDateTime,// used as a change state ID field

      
      //Associations

      @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
      _CustomerMaterialText,
      @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
      _AdditionalCustomerMaterial,
      @ObjectModel.association.type: [ #TO_COMPOSITION_CHILD ]
      _CustMatlAddrDepdntInfo,
      _SalesOrganization,
      _DistributionChannel,
      _Customer,
      _Material,
      _Plant,
      _DeliveryPriority,
      _BaseUnit,      
      _PartialDeliveryIsAllowed,
      _CustomerMaterialItemUsage,
      _LastChangedByUser,
      _LogisticalRoundingProfile

}