I_CustomerMaterialTP
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.
Data Sources (1)
| Source | Alias | Join Type |
|---|---|---|
| I_CustomerMaterial_2 | I_CustomerMaterial_2 | from |
Associations (14)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [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)
| Name | Value | Level | Field |
|---|---|---|---|
| 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)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| 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
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CUSTOMERMATERIAL_2",
"I_MATERIAL",
"I_MATERIALTEXT",
"I_SALESORGANIZATION",
"I_SALESORGANIZATIONTEXT"
],
"ASSOCIATED":
[
"E_CUSTOMERMATERIAL",
"I_ADDITIONALCUSTOMERMATERIALTP",
"I_CUSTMATLADDRDEPDNTINFOTP",
"I_CUSTOMER",
"I_CUSTOMERMATERIALITEMUSAGE",
"I_CUSTOMERMATERIALLONGTEXTTP",
"I_DELIVERYPRIORITY",
"I_DISTRIBUTIONCHANNEL",
"I_LOGISTICALROUNDINGPROFILE",
"I_MATERIAL",
"I_PARTIALDELIVERYITEM",
"I_PLANT",
"I_SALESORGANIZATION",
"I_UNITOFMEASURE",
"I_USER"
],
"BASE":
[
"I_CUSTOMERMATERIAL_2"
],
"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