I_CUSTOMERPROJECT
Customer Project
I_CUSTOMERPROJECT is a CDS View in S/4HANA. Customer Project. It contains 19 fields. 6 CDS views read from this table.
CDS Views using this table (6)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| C_CustomerProjectBilling | view | inner | CONSUMPTION | Customer Project Billing Document |
| C_CustomerProjectDetails | view | from | CONSUMPTION | Customer Project Details |
| C_CustomerProjectVH | view | from | CONSUMPTION | Customer Project Value Help |
| C_Custprojcustomercontact | view | from | CONSUMPTION | Customer contact details for Customer Projects |
| I_CustomerProjectPlanData | view | left_outer | COMPOSITE | Customer Project Planning Data |
| I_CustomerProjectVH | view | from | BASIC | Customer Project Value Help |
Fields (19)
| Key | Field | CDS Fields | Used in Views |
|---|---|---|---|
| KEY | Customer | Customer | 2 |
| KEY | CustomerProject | CustomerProject | 6 |
| KEY | CustomerProjectUUID | CustomerProjectUUID | 3 |
| CostCenter | CostCenter,EngagementProjectCostCenter | 3 | |
| Currency | Currency | 1 | |
| CustomerProjectEndDate | CustomerProjectEndDate | 1 | |
| CustomerProjectName | CustomerProjectName | 3 | |
| CustomerProjectServiceOrg | CustomerProjectServiceOrg | 5 | |
| CustomerProjectStage | CustomerProjectStage | 1 | |
| CustomerProjectStartDate | CustomerProjectStartDate | 1 | |
| CustomerProjectType | CustomerProjectType | 4 | |
| CustomerProjectVisibility | CustomerProjectVisibility | 3 | |
| CustProjFinancialPlanUUID | CustProjFinancialPlanUUID | 1 | |
| CustProjMgrPersonnelNumber | CustProjMgrPersonnelNumber,EmploymentInternalID | 2 | |
| EngmntProjectHeaderCompanyCode | EngmntProjectHeaderCompanyCode | 2 | |
| LastChangeDateTime | LastChangeDateTime | 1 | |
| ProfitCenter | ProfitCenter | 3 | |
| ProjectProfileCode | ProjectProfileCode | 2 | |
| ProjectType | EngagementProjectCategory | 1 |
@AbapCatalog: {
sqlViewName: 'ICUSTOMERPROJECT',
// preserveKey: true,
compiler.compareFilter: true
}
@AccessControl: {
authorizationCheck: #CHECK,
personalData: {
blockingIndicator: [ '_PersonWorkAgreement._BusinessPartner.IsBusinessPurposeCompleted', '_Customer.IsBusinessPurposeCompleted' ],
blocking: #REQUIRED
}
}
@Analytics: {
dataCategory: #DIMENSION,
dataExtraction.enabled: false
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Customer Project'
@ObjectModel: {
representativeKey: 'CustomerProject',
usageType: {
serviceQuality: #C,
sizeCategory: #M,
dataClass: #MIXED
}
}
@Metadata: {
allowExtensions: true,
ignorePropagatedAnnotations: false
}
@VDM: {
// private: false,
lifecycle.contract.type: #NONE,
viewType: #BASIC
}
define view I_CustomerProject
as select from I_EngagementProject as CustomerProject
association [0..*] to I_CustomerProjectItem as _Item on $projection.CustomerProjectUUID = _Item.CustomerProjectUUID // dont use this view will be deprecated and I_EngagementProjectItem
association [0..1] to I_EngagementProjectStage as _Stage on $projection.CustomerProjectStage = _Stage.EngagementProjectStage
association [0..*] to I_PersnWrkAgreementDet as _PersonWorkAgreement on $projection.CustProjMgrPersonnelNumber = _PersonWorkAgreement.PersonWorkAgreement
// and $projection.CustomerProjectStartDate >= _Employment.StartDate
//and $projection.CustomerProjectEndDate <= _Employment.EndDate
association [0..*] to I_CostCenter as _CostCenter on $projection.CostCenter = _CostCenter.CostCenter
and $projection.ControllingArea = _CostCenter.ControllingArea
association [0..*] to I_ProfitCenter as _ProfitCenter on $projection.ProfitCenter = _ProfitCenter.ProfitCenter
and $projection.ControllingArea = _ProfitCenter.ControllingArea
association [0..1] to I_Customer as _Customer on $projection.Customer = _Customer.Customer
association [0..1] to I_Currency as _Currency on $projection.Currency = _Currency.Currency
association [0..1] to I_EngagementProjectSrvcOrg as _EngagementProjectServiceOrg on $projection.CustomerProjectServiceOrg = _EngagementProjectServiceOrg.EngagementProjectServiceOrg
association [1..1] to E_CustomerProject as _Extension on CustomerProject.EngagementProject = _Extension.CustomerProject
//CE2111 - Fix Association join condition in analytical model
association [0..1] to I_ControllingArea as _ControllingArea on $projection.ControllingArea = _ControllingArea.ControllingArea
{
@ObjectModel.text.element: 'CustomerProjectName'
key cast(CustomerProject.EngagementProject as /cpd/ss_cp_id preserving type ) as CustomerProject,
cast(CustomerProject.EngagementProjectUUID as /cpd/ss_cp_uuid preserving type ) as CustomerProjectUUID,
@Semantics.text: true
cast(CustomerProject.EngagementProjectName as /cpd/ss_cp_desc preserving type) as CustomerProjectName,
cast(CustomerProject.EngagementProjectType as /cpd/ss_cp_type preserving type ) as CustomerProjectType,
cast(CustomerProject.EngagementProjectStage as /cpd/ss_cp_stage preserving type ) as CustomerProjectStage,
cast(CustomerProject.ProjectVisibility as /cpd/ss_cp_visibility preserving type ) as CustomerProjectVisibility,
CustomerProject.LastChangedByUser as LastChangedByUser,
@Semantics.dateTime:true
@Semantics.systemDateTime.lastChangedAt:true
CustomerProject.LastChangeDateTime as LastChangeDateTime,
CustomerProject.Customer as Customer,
CustomerProject.EngagementProjectServiceOrg as CustomerProjectServiceOrg,
CustomerProject.ProjectProfileCode,
CustomerProject.ProjectManagerWorkAgreement as CustProjMgrPersonnelNumber,
CustomerProject.ProjectStartDate as CustomerProjectStartDate,
CustomerProject.ProjectEndDate as CustomerProjectEndDate,
CustomerProject.CostCenter as CostCenter,
CustomerProject.ProfitCenter as ProfitCenter,
CustomerProject.CompanyCode as EngmntProjectHeaderCompanyCode,
cast( CustomerProject.EngagementProjectCategory as ps_prart ) as ProjectType,
@Semantics.currencyCode: true
_EngagementProjFinancialPlan.Currency as Currency,
cast(_EngagementProjFinancialPlan.EngagementProjFinPlanUUID as /cpd/eng_pfp_db_key preserving type ) as CustProjFinancialPlanUUID,
@Semantics.unitOfMeasure: true
_EngagementProjFinancialPlan.UnitOfMeasure as UnitOfMeasure,
@ObjectModel.foreignKey.association: '_ControllingArea' //CE2111 - Fix Association join condition in analytical model
CustomerProject.ControllingArea as ControllingArea,
_Stage,
_PersonWorkAgreement,
@ObjectModel.association.boundFields.dataMatchesSourceAndTargetTypes: true //CE2111 - Fix Association join condition in analytical model
_CostCenter,
_ControllingArea, //CE2111 - Fix Association join condition in analytical model
_EngagementProjectServiceOrg,
_Currency,
_Customer,
_Item,
_UserInvlmnt
}
where
CustomerProject.EngagementProjectCategory = 'C'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ENGAGEMENTPROJECT",
"I_ENGAGEMENTPROJFINANCIALPLAN"
],
"ASSOCIATED":
[
"E_CUSTOMERPROJECT",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_CURRENCY",
"I_CUSTOMER",
"I_CUSTOMERPROJECTITEM",
"I_ENGAGEMENTPROJECTSRVCORG",
"I_ENGAGEMENTPROJECTSTAGE",
"I_ENGMNTPROJWITHUSERINVLMNT",
"I_PERSNWRKAGREEMENTDET",
"I_PROFITCENTER"
],
"BASE":
[
"I_ENGAGEMENTPROJECT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/