I_CustProjSlsOrd
Sales Order for Customer Project
I_CustProjSlsOrd is a Composite CDS View that provides data about "Sales Order for Customer Project" in SAP S/4HANA. It reads from 2 data sources (I_CustomerProjectItem, I_SalesOrder) and exposes 31 fields with key field CustomerProject. It has 5 associations to related views. Part of development package SD_SLS_PBS.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_CustomerProjectItem | Project | from |
| I_SalesOrder | SalesOrder | inner |
Associations (5)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..*] | I_CustProjSlsOrdItem | _CustProjSlsOrdItem | $projection.SalesOrder = _CustProjSlsOrdItem.SalesOrder |
| [0..*] | I_CustProjSlsOrdPartner | _CustProjSlsOrdPartner | $projection.SalesOrder = _CustProjSlsOrdPartner.SalesOrder |
| [1..1] | I_SalesOrder | _SalesOrder | $projection.SalesOrder = _SalesOrder.SalesOrder |
| [0..1] | I_CustomerProject | _CustomerProject | $projection.CustomerProject = _CustomerProject.CustomerProject |
| [0..1] | E_SalesDocumentBasic | _Extension | $projection.SalesOrder = _Extension.SalesDocument |
Annotations (13)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | ICUSTPROJSO | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.lifecycle.contract.type | #PUBLIC_LOCAL_API | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| ObjectModel.representativeKey | CustomerProject | view | |
| ObjectModel.usageType.dataClass | #TRANSACTIONAL | view | |
| ObjectModel.usageType.serviceQuality | #B | view | |
| ObjectModel.usageType.sizeCategory | #L | view | |
| Metadata.ignorePropagatedAnnotations | true | view | |
| EndUserText.label | Sales Order for Customer Project | view |
Fields (31)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | CustomerProject | I_CustomerProjectItem | CustomerProject | |
| SalesOrder | I_SalesOrder | SalesOrder | ||
| SalesOrderType | I_SalesOrder | SalesOrderType | ||
| SoldToParty | I_SalesOrder | SoldToParty | ||
| TotalNetAmount | I_SalesOrder | TotalNetAmount | ||
| TransactionCurrency | I_SalesOrder | TransactionCurrency | ||
| PurchaseOrderByCustomer | I_SalesOrder | PurchaseOrderByCustomer | ||
| CustomerPurchaseOrderDate | I_SalesOrder | CustomerPurchaseOrderDate | ||
| SalesOrganization | I_SalesOrder | SalesOrganization | ||
| DistributionChannel | I_SalesOrder | DistributionChannel | ||
| OrganizationDivision | I_SalesOrder | OrganizationDivision | ||
| SalesOffice | I_SalesOrder | SalesOffice | ||
| SalesGroup | I_SalesOrder | SalesGroup | ||
| CustomerPaymentTerms | I_SalesOrder | CustomerPaymentTerms | ||
| PaymentMethod | I_SalesOrder | PaymentMethod | ||
| CustomerAccountAssignmentGroup | I_SalesOrder | CustomerAccountAssignmentGroup | ||
| HeaderBillingBlockReason | I_SalesOrder | HeaderBillingBlockReason | ||
| _CustomerProject | _CustomerProject | |||
| _SalesOrder | _SalesOrder | |||
| _CustProjSlsOrdItem | _CustProjSlsOrdItem | |||
| _CustProjSlsOrdPartner | _CustProjSlsOrdPartner | |||
| _SoldToParty | _SoldToParty | |||
| _TransactionCurrency | _TransactionCurrency | |||
| _SalesOrganization | _SalesOrganization | |||
| _DistributionChannel | _DistributionChannel | |||
| _OrganizationDivision | _OrganizationDivision | |||
| _SalesOffice | _SalesOffice | |||
| _SalesGroup | _SalesGroup | |||
| _CustomerPaymentTerms | _CustomerPaymentTerms | |||
| _CustomerAccountAssgmtGroup | _CustomerAccountAssgmtGroup | |||
| _HeaderBillingBlockReason | _HeaderBillingBlockReason |
@AbapCatalog.sqlViewName: 'ICUSTPROJSO'
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM: {
viewType: #COMPOSITE,
lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #('TRANSACTIONAL_DATA')
}
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@ObjectModel: {
representativeKey: 'CustomerProject',
usageType: {
dataClass: #TRANSACTIONAL,
serviceQuality: #B,
sizeCategory: #L
},
supportedCapabilities: [ #CDS_MODELING_ASSOCIATION_TARGET, #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE ]
}
@Metadata.ignorePropagatedAnnotations: true
@EndUserText.label: 'Sales Order for Customer Project'
define view I_CustProjSlsOrd
as select from I_CustomerProjectItem as Project
inner join I_SalesOrder as SalesOrder on Project.CustomerProjectItem = SalesOrder.SalesOrder
and(
Project.CustomerProjectItemType = '0SOH'
)
association [0..*] to I_CustProjSlsOrdItem as _CustProjSlsOrdItem on $projection.SalesOrder = _CustProjSlsOrdItem.SalesOrder
association [0..*] to I_CustProjSlsOrdPartner as _CustProjSlsOrdPartner on $projection.SalesOrder = _CustProjSlsOrdPartner.SalesOrder
association [1..1] to I_SalesOrder as _SalesOrder on $projection.SalesOrder = _SalesOrder.SalesOrder
association [0..1] to I_CustomerProject as _CustomerProject on $projection.CustomerProject = _CustomerProject.CustomerProject
//Extensibility
association [0..1] to E_SalesDocumentBasic as _Extension on $projection.SalesOrder = _Extension.SalesDocument
{
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_CustomerProjectVH',
element: 'CustomerProject' }
}]
@ObjectModel.foreignKey.association: '_CustomerProject'
key Project.CustomerProject,
@ObjectModel.foreignKey.association: '_SalesOrder'
SalesOrder.SalesOrder,
@Consumption.hidden: true
SalesOrder.SalesOrderType,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_Customer_VH',
element: 'Customer' }
}]
@ObjectModel.foreignKey.association: '_SoldToParty'
SalesOrder.SoldToParty,
@DefaultAggregation: #SUM
@Semantics.amount.currencyCode: 'TransactionCurrency'
SalesOrder.TotalNetAmount,
@Semantics.currencyCode: true
@ObjectModel.foreignKey.association: '_TransactionCurrency'
SalesOrder.TransactionCurrency,
SalesOrder.PurchaseOrderByCustomer,
SalesOrder.CustomerPurchaseOrderDate,
@ObjectModel.foreignKey.association: '_SalesOrganization'
SalesOrder.SalesOrganization,
@ObjectModel.foreignKey.association: '_DistributionChannel'
SalesOrder.DistributionChannel,
@ObjectModel.foreignKey.association: '_OrganizationDivision'
SalesOrder.OrganizationDivision,
@ObjectModel.foreignKey.association: '_SalesOffice'
SalesOrder.SalesOffice,
@ObjectModel.foreignKey.association: '_SalesGroup'
SalesOrder.SalesGroup,
@ObjectModel.foreignKey.association: '_CustomerPaymentTerms'
SalesOrder.CustomerPaymentTerms,
SalesOrder.PaymentMethod,
@ObjectModel.foreignKey.association: '_CustomerAccountAssgmtGroup'
SalesOrder.CustomerAccountAssignmentGroup,
@ObjectModel.foreignKey.association: '_HeaderBillingBlockReason'
SalesOrder.HeaderBillingBlockReason,
//Associations
_CustomerProject,
_SalesOrder,
_CustProjSlsOrdItem,
_CustProjSlsOrdPartner,
_SoldToParty,
_TransactionCurrency,
_SalesOrganization,
_DistributionChannel,
_OrganizationDivision,
_SalesOffice,
_SalesGroup,
_CustomerPaymentTerms,
_CustomerAccountAssgmtGroup,
_HeaderBillingBlockReason
}
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