I_CustomerProject

DDL: I_CUSTOMERPROJECT Type: view BASIC

Customer Project

I_CustomerProject is a Basic CDS View (Dimension) that provides data about "Customer Project" in SAP S/4HANA. It reads from 1 data source (I_EngagementProject) and exposes 31 fields with key field CustomerProject. It has 10 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_EngagementProject CustomerProject from

Associations (10)

CardinalityTargetAliasCondition
[0..*] I_CustomerProjectItem _Item $projection.CustomerProjectUUID = _Item.CustomerProjectUUID
[0..1] I_EngagementProjectStage _Stage $projection.CustomerProjectStage = _Stage.EngagementProjectStage
[0..*] I_PersnWrkAgreementDet _PersonWorkAgreement $projection.CustProjMgrPersonnelNumber = _PersonWorkAgreement.PersonWorkAgreement
[0..*] I_CostCenter _CostCenter $projection.CostCenter = _CostCenter.CostCenter and $projection.ControllingArea = _CostCenter.ControllingArea
[0..*] I_ProfitCenter _ProfitCenter $projection.ProfitCenter = _ProfitCenter.ProfitCenter and $projection.ControllingArea = _ProfitCenter.ControllingArea
[0..1] I_Customer _Customer $projection.Customer = _Customer.Customer
[0..1] I_Currency _Currency $projection.Currency = _Currency.Currency
[0..1] I_EngagementProjectSrvcOrg _EngagementProjectServiceOrg $projection.CustomerProjectServiceOrg = _EngagementProjectServiceOrg.EngagementProjectServiceOrg
[1..1] E_CustomerProject _Extension CustomerProject.EngagementProject = _Extension.CustomerProject
[0..1] I_ControllingArea _ControllingArea $projection.ControllingArea = _ControllingArea.ControllingArea

Annotations (16)

NameValueLevelField
AbapCatalog.sqlViewName ICUSTOMERPROJECT view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #REQUIRED view
Analytics.dataCategory #DIMENSION view
Analytics.dataExtraction.enabled false view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Customer Project view
ObjectModel.representativeKey CustomerProject view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #M view
ObjectModel.usageType.dataClass #MIXED view
Metadata.allowExtensions true view
Metadata.ignorePropagatedAnnotations false view
VDM.lifecycle.contract.type #NONE view
VDM.viewType #BASIC view

Fields (31)

KeyFieldSource TableSource FieldDescription
KEY CustomerProject
CustomerProjectUUID
CustomerProjectName
CustomerProjectType
CustomerProjectStage
CustomerProjectVisibility
LastChangedByUser I_EngagementProject LastChangedByUser
LastChangeDateTime I_EngagementProject LastChangeDateTime
Customer I_EngagementProject Customer
CustomerProjectServiceOrg I_EngagementProject EngagementProjectServiceOrg
ProjectProfileCode I_EngagementProject ProjectProfileCode
CustProjMgrPersonnelNumber I_EngagementProject ProjectManagerWorkAgreement
CustomerProjectStartDate I_EngagementProject ProjectStartDate
CustomerProjectEndDate I_EngagementProject ProjectEndDate
CostCenter I_EngagementProject CostCenter
ProfitCenter I_EngagementProject ProfitCenter
EngmntProjectHeaderCompanyCode I_EngagementProject CompanyCode
ProjectType
Currency _EngagementProjFinancialPlan Currency
CustProjFinancialPlanUUID
UnitOfMeasure _EngagementProjFinancialPlan UnitOfMeasure
ControllingArea I_EngagementProject ControllingArea
_Stage _Stage
_PersonWorkAgreement _PersonWorkAgreement
_CostCenter _CostCenter
_ControllingArea _ControllingArea
_EngagementProjectServiceOrg _EngagementProjectServiceOrg
_Currency _Currency
_Customer _Customer
_Item _Item
_UserInvlmnt _UserInvlmnt
@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":""
}
}*/