C_CustomerProjectWl

DDL: C_CUSTOMERPROJECTWL SQL: CCUSTPROJWL Type: view CONSUMPTION Package: CPD_CDS

Customer Project

C_CustomerProjectWl is a Consumption CDS View that provides data about "Customer Project" in SAP S/4HANA. It reads from 2 data sources (I_EngagementProject, I_PersonWorkAgreement_1) and exposes 25 fields with key field CustomerProject. It has 9 associations to related views. Part of development package CPD_CDS.

Data Sources (2)

SourceAliasJoin Type
I_EngagementProject CustomerProject from
I_PersonWorkAgreement_1 PersonWorkAgreement left_outer

Associations (9)

CardinalityTargetAliasCondition
[0..1] I_Customer_VH _Customer $projection.Customer = _Customer.Customer
[0..1] I_EngagementProjectStage _EngagementProjectStage $projection.EngagementProjectStage = _EngagementProjectStage.EngagementProjectStage
[0..1] I_EngmntProjSrvcOrgStdVH _EngagementProjectServiceOrg $projection.EngagementProjectServiceOrg = _EngagementProjectServiceOrg.EngagementProjectServiceOrg
[0..1] I_CostCenterStdVH _CostCenter $projection.ControllingArea = _CostCenter.ControllingArea and $projection.CostCenter = _CostCenter.CostCenter and $projection.ProjectStartDate >= _CostCenter.ValidityStartDate and $projection.ProjectStartDate <= _CostCenter.ValidityEndDate
[0..1] I_ProfitCenterStdVH _ProfitCenter $projection.ControllingArea = _ProfitCenter.ControllingArea and $projection.CostCenter = _ProfitCenter.ProfitCenter
[0..1] C_EngmntProjProjectManagerVH _ProjectManager $projection.ProjectManager = _ProjectManager.ProjectManager
[0..1] C_EngagementProjectUserVH _CreatedByUser $projection.CreatedByUser = _CreatedByUser.UserID
[0..1] C_EngagementProjectUserVH _LastChangedByUser $projection.LastChangedByUser = _LastChangedByUser.UserID
[0..*] C_EngmntProjStaffedMbrDetail _TeamMember $projection.CustomerProject = _TeamMember.EngagementProject

Annotations (18)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName CCUSTPROJWL view
AbapCatalog.compiler.compareFilter true view
VDM.viewType #CONSUMPTION view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
ObjectModel.representativeKey CustomerProject view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
Search.searchable true view
EndUserText.label Customer Project view
UI.headerInfo.typeName Customer Project view
UI.headerInfo.typeNamePlural Customer Projects view
UI.headerInfo.title.type #STANDARD view
UI.headerInfo.title.value CustomerProject view
VDM.lifecycle.status #DEPRECATED view

Fields (25)

KeyFieldSource TableSource FieldDescription
KEY CustomerProject
CustomerProjectName
EngagementProjectType I_EngagementProject EngagementProjectType
EngagementProjectStage I_EngagementProject EngagementProjectStage
CostCenter
ControllingArea I_EngagementProject ControllingArea
EngagementProjectServiceOrg I_EngagementProject EngagementProjectServiceOrg
ProfitCenter I_EngagementProject ProfitCenter
Customer I_EngagementProject Customer
LastChangeDateTime
LastChangedByUser I_EngagementProject LastChangedByUser
CreatedByUser I_EngagementProject CreatedByUser
CreationDateTime
ProjectManager
ProjectStartDate I_EngagementProject ProjectStartDate
ProjectEndDate I_EngagementProject ProjectEndDate
EngagementProjectCategory I_EngagementProject EngagementProjectCategory
_Customer _Customer
_CostCenter _CostCenter
_ProjectManager _ProjectManager
_TeamMember _TeamMember
_EngagementProjectStage _EngagementProjectStage
_CreatedByUser _CreatedByUser
_LastChangedByUser _LastChangedByUser
_EngagementProjectServiceOrg _EngagementProjectServiceOrg
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.sqlViewName: 'CCUSTPROJWL'
@AbapCatalog.compiler.compareFilter: true

@VDM.viewType: #CONSUMPTION
@AbapCatalog.preserveKey: true

@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED

@ObjectModel.representativeKey: 'CustomerProject'
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L

@Search.searchable: true
@EndUserText.label: 'Customer Project'

@UI.headerInfo: {
      typeName:         'Customer Project',
      typeNamePlural:   'Customer Projects',
      title: {
            type:   #STANDARD,
            value:  'CustomerProject'
        }
   }
@VDM.lifecycle.status: #DEPRECATED
/* As of 2302 release, this view is deprecated. Please do not use this view. */
define view C_CustomerProjectWl
  as select from    I_EngagementProject     as CustomerProject

    left outer join I_PersonWorkAgreement_1 as PersonWorkAgreement on CustomerProject.ProjectManager = PersonWorkAgreement.PersonWorkAgreement

  association [0..1] to I_Customer_VH                as _Customer                    on  $projection.Customer = _Customer.Customer

  association [0..1] to I_EngagementProjectStage     as _EngagementProjectStage      on  $projection.EngagementProjectStage = _EngagementProjectStage.EngagementProjectStage

  association [0..1] to I_EngmntProjSrvcOrgStdVH     as _EngagementProjectServiceOrg on  $projection.EngagementProjectServiceOrg = _EngagementProjectServiceOrg.EngagementProjectServiceOrg

  association [0..1] to I_CostCenterStdVH            as _CostCenter                  on  $projection.ControllingArea  =  _CostCenter.ControllingArea
                                                                                     and $projection.CostCenter       =  _CostCenter.CostCenter
                                                                                     and $projection.ProjectStartDate >= _CostCenter.ValidityStartDate
                                                                                     and $projection.ProjectStartDate <= _CostCenter.ValidityEndDate

  association [0..1] to I_ProfitCenterStdVH          as _ProfitCenter                on  $projection.ControllingArea = _ProfitCenter.ControllingArea
                                                                                     and $projection.CostCenter      = _ProfitCenter.ProfitCenter

  association [0..1] to C_EngmntProjProjectManagerVH as _ProjectManager              on  $projection.ProjectManager = _ProjectManager.ProjectManager

  association [0..1] to C_EngagementProjectUserVH    as _CreatedByUser               on  $projection.CreatedByUser = _CreatedByUser.UserID

  association [0..1] to C_EngagementProjectUserVH    as _LastChangedByUser           on  $projection.LastChangedByUser = _LastChangedByUser.UserID

  association [0..*] to C_EngmntProjStaffedMbrDetail as _TeamMember                  on  $projection.CustomerProject = _TeamMember.EngagementProject



{
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.9
      @Search.ranking: #HIGH
      @ObjectModel.readOnly: true
      @Consumption.semanticObject: 'CustomerProject'
      @ObjectModel.text.element: 'CustomerProjectName'
  key cast(CustomerProject.EngagementProject   as /cpd/ss_cp  preserving type )            as CustomerProject,

      @Semantics.text: true
      //      @Search.defaultSearchElement: true

      //      @Search.fuzzinessThreshold: 0.9

      cast (CustomerProject.EngagementProjectName   as   /cpd/ss_cp_desc preserving type ) as CustomerProjectName,

      @UI.hidden: true
      CustomerProject.EngagementProjectType                                                as EngagementProjectType,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @ObjectModel.foreignKey.association: '_EngagementProjectStage'
      CustomerProject.EngagementProjectStage                                               as EngagementProjectStage,

      //      @Search.defaultSearchElement: true

      //      @Search.fuzzinessThreshold: 0.8

      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_CostCenterStdVH',
                     element: 'CostCenter' },
          additionalBinding: [{ localElement: 'ControllingArea',
                                element: 'ControllingArea' }]
        }]
      @ObjectModel.foreignKey.association: '_CostCenter'
      cast(CustomerProject.CostCenter as kostl   )                                         as CostCenter,

      @UI.hidden: true
      CustomerProject.ControllingArea                                                      as ControllingArea,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Consumption.valueHelpDefinition: [
       { entity:  { name:    'I_EngmntProjSrvcOrgStdVH',
                    element: 'EngagementProjectServiceOrg' }
       }]
      @ObjectModel.foreignKey.association: '_EngagementProjectServiceOrg'
      CustomerProject.EngagementProjectServiceOrg                                          as EngagementProjectServiceOrg,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_ProfitCenterStdVH',
                     element: 'ProfitCenter' },
          additionalBinding: [{ localElement: 'ControllingArea',
                                element: 'ControllingArea' }]
        }]
      CustomerProject.ProfitCenter                                                         as ProfitCenter,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_Customer_VH',
                     element: 'Customer' }
        }]
      @ObjectModel.foreignKey.association: '_Customer'
      CustomerProject.Customer                                                             as Customer,

      @Semantics.systemDateTime.lastChangedAt: true
      cast (CustomerProject.LastChangeDateTime as tstmp )                                  as LastChangeDateTime,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @ObjectModel.foreignKey.association: '_LastChangedByUser'
      CustomerProject.LastChangedByUser                                                    as LastChangedByUser,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @ObjectModel.foreignKey.association: '_CreatedByUser'
      CustomerProject.CreatedByUser                                                        as CreatedByUser,

      @Semantics.systemDateTime.createdAt: true
      cast (CustomerProject.CreationDateTime as tstmp )                                    as CreationDateTime,

      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @ObjectModel.foreignKey.association: '_ProjectManager'
      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'C_EngmntProjProjectManagerVH',
                     element: 'ProjectManager' }
        }]
      cast(PersonWorkAgreement.Person     as /cpd/ss_pm preserving type )                  as ProjectManager,

      CustomerProject.ProjectStartDate                                                     as ProjectStartDate,

      CustomerProject.ProjectEndDate                                                       as ProjectEndDate,

      @UI.hidden: true
      CustomerProject.EngagementProjectCategory                                            as EngagementProjectCategory,


      _Customer,
      _CostCenter,
      _ProjectManager,
      _TeamMember,
      _EngagementProjectStage,
      _CreatedByUser,
      _LastChangedByUser,
      _EngagementProjectServiceOrg
}
where
  CustomerProject.EngagementProjectCategory = 'C'