C_CustomerProjectDetails
Customer Project Details
C_CustomerProjectDetails is a Consumption CDS View that provides data about "Customer Project Details" in SAP S/4HANA. It reads from 2 data sources (I_Customer, I_CustomerProject) and exposes 44 fields with key fields CustomerProjectUUID, CustomerProject. It has 11 associations to related views. Part of development package CPD_CDS.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_Customer | Customer | left_outer |
| I_CustomerProject | CustomerProject | from |
Associations (11)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..*] | I_PersnWrkAgreementDet | _PersonWorkAgreement | $projection.CustProjMgrPersonnelNumber = _PersonWorkAgreement.PersonWorkAgreement |
| [1..1] | I_EngagementProjectStage | _CustomerProjectStage | $projection.CustomerProjectStage = _CustomerProjectStage.EngagementProjectStage |
| [0..*] | I_CostCenter | _CostCenter | $projection.CostCenter = _CostCenter.CostCenter and $projection.ControllingArea = _CostCenter.ControllingArea and $projection.CustomerProjectStartDate >= _CostCenter.ValidityStartDate and $projection.CustomerProjectStartDate <= _CostCenter.ValidityEndDate |
| [0..*] | I_ProfitCenter | _ProfitCenter | $projection.ProfitCenter = _ProfitCenter.ProfitCenter and $projection.ControllingArea = _ProfitCenter.ControllingArea and $projection.CustomerProjectStartDate >= _ProfitCenter.ValidityStartDate and $projection.CustomerProjectStartDate <= _ProfitCenter.ValidityEndDate |
| [1..1] | I_EngagementProjectSrvcOrg | _EngmntProjSrvcOrgDetails | $projection.CustomerProjectServiceOrg = _EngmntProjSrvcOrgDetails.EngagementProjectServiceOrg |
| [1..*] | I_EngagementProjectSrvcOrgDets | _EngagementProjectSrvcOrgDets | $projection.CustomerProjectServiceOrg = _EngagementProjectSrvcOrgDets.EngagementProjectServiceOrg and _EngagementProjectSrvcOrgDets.AssignedOrganisationType = 'CA' |
| [1..1] | I_Currency | _Currency | $projection.Currency = _Currency.Currency |
| [1..1] | I_Address | _Address | Customer.AddressID = _Address.AddressID |
| [1..1] | C_CustomerProjectPlndActlData | _CustomerProjectPlndActlData | $projection.CustomerProject = _CustomerProjectPlndActlData.CustomerProject |
| [1..1] | I_EngmntProjCustInfo | _Customer | CustomerProject.Customer = _Customer.Customer |
| [1..1] | I_EngagementProject | _EngagementProject | $projection.CustomerProject = _EngagementProject.EngagementProject |
Annotations (9)
| Name | Value | Level | Field |
|---|---|---|---|
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AbapCatalog.sqlViewName | CCUSTPROJDETAILS | view | |
| EndUserText.label | Customer Project Details | view | |
| VDM.viewType | #CONSUMPTION | view | |
| AccessControl.authorizationCheck | #CHECK | view | |
| AccessControl.personalData.blocking | #REQUIRED | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view |
Fields (44)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | CustomerProjectUUID | I_CustomerProject | CustomerProjectUUID | |
| KEY | CustomerProject | I_CustomerProject | CustomerProject | |
| CustomerProjectServiceOrg | I_CustomerProject | CustomerProjectServiceOrg | ||
| CustomerProjectType | I_CustomerProject | CustomerProjectType | ||
| CustProjFinancialPlanUUID | I_CustomerProject | CustProjFinancialPlanUUID | ||
| CustomerProjectVisibility | I_CustomerProject | CustomerProjectVisibility | ||
| CustomerProjectStage | I_CustomerProject | CustomerProjectStage | ||
| CostCenter | I_CustomerProject | CostCenter | ||
| ProfitCenter | I_CustomerProject | ProfitCenter | ||
| ControllingArea | _EngagementProjectSrvcOrgDets | AssignedOrganisation | ||
| CustomerProjectName | I_CustomerProject | CustomerProjectName | ||
| Currency | I_CustomerProject | Currency | ||
| Customer | I_CustomerProject | Customer | ||
| AddressID | _Address | AddressID | ||
| LastChangeDateTime | I_CustomerProject | LastChangeDateTime | ||
| CustomerName | I_Customer | CustomerName | ||
| OrganizationBPName1 | I_Customer | OrganizationBPName1 | ||
| OrganizationBPName2 | I_Customer | OrganizationBPName2 | ||
| CustProjMgrPersonnelNumber | I_CustomerProject | CustProjMgrPersonnelNumber | ||
| CustomerProjectManagerName | ||||
| CustomerProjectStartDate | I_CustomerProject | CustomerProjectStartDate | ||
| CustomerProjectEndDate | I_CustomerProject | CustomerProjectEndDate | ||
| PersonnelNumber | ||||
| BusinessUser | ||||
| Employee | ||||
| CustProjWrkPckgPlanMarginPct | 1 | |||
| UnitOfMeasure | ||||
| CustProjWrkPckgActualRevenue | _CustomerProjectPlndActlData | CustProjWrkPckgActualRevenue | ||
| ActualCost | _CustomerProjectPlndActlData | ActualCost | ||
| CustProjWrkPckgActualMarginPct | 1 | |||
| CompletionRateInPercent | 1 | |||
| CustProjWrkPckgPlanCost | EngagementProjectPlanData | PlndCostAmt | ||
| CustProjWrkPckgPlanRevenue | EngagementProjectPlanData | PlndRevnAmt | ||
| CustProjWrkPckgPlanEffortQty | EngagementProjectPlanData | PlndEffortQty | ||
| CityName | _Address | CityName | ||
| Country | _Address | Country | ||
| _CustomerProjectStage | _CustomerProjectStage | |||
| _CostCenter | _CostCenter | |||
| _EngmntProjSrvcOrgDetails | _EngmntProjSrvcOrgDetails | |||
| _Currency | _Currency | |||
| _ProfitCenter | _ProfitCenter | |||
| _Customer | _Customer | |||
| _PersonWorkAgreement | _PersonWorkAgreement | |||
| _EngagementProject | _EngagementProject |
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.sqlViewName: 'CCUSTPROJDETAILS'
@EndUserText.label: 'Customer Project Details'
@VDM.viewType: #CONSUMPTION
@AccessControl.authorizationCheck:#CHECK
@AccessControl.personalData.blocking: #REQUIRED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MIXED
@Consumption.dbHints: [ 'USE_HEX_PLAN' ]
define view C_CustomerProjectDetails
as select from I_CustomerProject as CustomerProject
left outer to one join C_EngagementProjectPlanData as EngagementProjectPlanData on EngagementProjectPlanData.EngagementProject = CustomerProject.CustomerProject
left outer join I_Customer as Customer on CustomerProject.Customer = Customer.Customer
association [0..*] to I_PersnWrkAgreementDet as _PersonWorkAgreement on $projection.CustProjMgrPersonnelNumber = _PersonWorkAgreement.PersonWorkAgreement
association [1..1] to I_EngagementProjectStage as _CustomerProjectStage on $projection.CustomerProjectStage = _CustomerProjectStage.EngagementProjectStage
association [0..*] to I_CostCenter as _CostCenter on $projection.CostCenter = _CostCenter.CostCenter
and $projection.ControllingArea = _CostCenter.ControllingArea
and $projection.CustomerProjectStartDate >= _CostCenter.ValidityStartDate
and $projection.CustomerProjectStartDate <= _CostCenter.ValidityEndDate
association [0..*] to I_ProfitCenter as _ProfitCenter on $projection.ProfitCenter = _ProfitCenter.ProfitCenter
and $projection.ControllingArea = _ProfitCenter.ControllingArea
and $projection.CustomerProjectStartDate >= _ProfitCenter.ValidityStartDate
and $projection.CustomerProjectStartDate <= _ProfitCenter.ValidityEndDate
association [1..1] to I_EngagementProjectSrvcOrg as _EngmntProjSrvcOrgDetails on $projection.CustomerProjectServiceOrg = _EngmntProjSrvcOrgDetails.EngagementProjectServiceOrg
association [1..*] to I_EngagementProjectSrvcOrgDets as _EngagementProjectSrvcOrgDets on $projection.CustomerProjectServiceOrg = _EngagementProjectSrvcOrgDets.EngagementProjectServiceOrg
and _EngagementProjectSrvcOrgDets.AssignedOrganisationType = 'CA'
association [1..1] to I_Currency as _Currency on $projection.Currency = _Currency.Currency
association [1..1] to I_Address as _Address on Customer.AddressID = _Address.AddressID
association [1..1] to C_CustomerProjectPlndActlData as _CustomerProjectPlndActlData on $projection.CustomerProject = _CustomerProjectPlndActlData.CustomerProject
association [1..1] to I_EngmntProjCustInfo as _Customer on CustomerProject.Customer = _Customer.Customer
//Expose association for DCL checks
association [1..1] to I_EngagementProject as _EngagementProject on $projection.CustomerProject = _EngagementProject.EngagementProject
{
key CustomerProject.CustomerProjectUUID as CustomerProjectUUID,
key CustomerProject.CustomerProject as CustomerProject,
CustomerProject.CustomerProjectServiceOrg as CustomerProjectServiceOrg,
CustomerProject.CustomerProjectType as CustomerProjectType,
CustomerProject.CustProjFinancialPlanUUID as CustProjFinancialPlanUUID,
CustomerProject.CustomerProjectVisibility as CustomerProjectVisibility,
CustomerProject.CustomerProjectStage as CustomerProjectStage,
//--[ GENERATED:012:GlBfhyJl7kY4nRd09JNw30
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_CostCenterStdVH',
element: 'CostCenter' },
additionalBinding: [{ localElement: 'ControllingArea',
element: 'ControllingArea' },
{ localElement: 'CustomerProjectStartDate',
element: 'ValidityStartDate' },
{ localElement: 'CustomerProjectStartDate',
element: 'ValidityEndDate' }]
}]
// ]--GENERATED
CustomerProject.CostCenter as CostCenter,
//--[ GENERATED:012:GlBfhyJl7kY4nRd09JNw30
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_ProfitCenterStdVH',
element: 'ProfitCenter' },
additionalBinding: [{ localElement: 'ControllingArea',
element: 'ControllingArea' },
{ localElement: 'CustomerProjectStartDate',
element: 'ValidityStartDate' },
{ localElement: 'CustomerProjectStartDate',
element: 'ValidityEndDate' }]
}]
// ]--GENERATED
CustomerProject.ProfitCenter as ProfitCenter,
_EngagementProjectSrvcOrgDets.AssignedOrganisation as ControllingArea,
CustomerProject.CustomerProjectName as CustomerProjectName,
@Semantics.currencyCode: true
CustomerProject.Currency as Currency,
//--[ GENERATED:012:GlBfhyJl7kY4nRd09JNw30
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_EngmntProjCustInfoStdVH',
element: 'Customer' }
}]
// ]--GENERATED
CustomerProject.Customer as Customer,
_Address.AddressID as AddressID,
@Semantics.dateTime:true
@Semantics.systemDateTime.lastChangedAt:true
CustomerProject.LastChangeDateTime as LastChangeDateTime,
Customer.CustomerName as CustomerName,
Customer.OrganizationBPName1 as OrganizationBPName1,
Customer.OrganizationBPName2 as OrganizationBPName2,
CustomerProject.CustProjMgrPersonnelNumber as CustProjMgrPersonnelNumber,
_PersonWorkAgreement._WorkforcePerson.PersonFullName as CustomerProjectManagerName,
CustomerProject.CustomerProjectStartDate as CustomerProjectStartDate,
CustomerProject.CustomerProjectEndDate as CustomerProjectEndDate,
_PersonWorkAgreement._WorkforcePerson.Person as PersonnelNumber,
_PersonWorkAgreement._WorkforcePerson.UserID as BusinessUser,
_PersonWorkAgreement._WorkforcePerson.PersonExternalID as Employee,
1 as CustProjWrkPckgPlanMarginPct,
@Semantics.unitOfMeasure: true
cast('%' as abap.unit( 3 ))
as UnitOfMeasure,
@Semantics.amount.currencyCode: 'Currency'
_CustomerProjectPlndActlData.CustProjWrkPckgActualRevenue as CustProjWrkPckgActualRevenue,
@Semantics.amount.currencyCode: 'Currency'
_CustomerProjectPlndActlData.ActualCost as ActualCost,
1 as CustProjWrkPckgActualMarginPct,
1 as CompletionRateInPercent,
@Semantics.amount.currencyCode: 'Currency'
EngagementProjectPlanData.PlndCostAmt as CustProjWrkPckgPlanCost,
@Semantics.amount.currencyCode: 'Currency'
EngagementProjectPlanData.PlndRevnAmt as CustProjWrkPckgPlanRevenue,
@Semantics.quantity.unitOfMeasure:'UnitOfMeasure'
EngagementProjectPlanData.PlndEffortQty as CustProjWrkPckgPlanEffortQty,
_Address.CityName as CityName,
_Address.Country as Country,
_CustomerProjectStage,
_CostCenter,
_EngmntProjSrvcOrgDetails,
_Currency,
_ProfitCenter,
_Customer,
_PersonWorkAgreement,
_EngagementProject
}
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