A_EngagementProject

DDL: A_ENGAGEMENTPROJECT SQL: AENGPROJECT Type: view CONSUMPTION Package: CPD_CDS

Engagement Project

A_EngagementProject is a Consumption CDS View that provides data about "Engagement Project" in SAP S/4HANA. It reads from 1 data source (I_EngagementProject) and exposes 24 fields with key field EngagementProject. It has 3 associations to related views. Part of development package CPD_CDS.

Data Sources (1)

SourceAliasJoin Type
I_EngagementProject A from

Associations (3)

CardinalityTargetAliasCondition
[0..*] A_EngmntProjWrkPckg _WorkPackage $projection.EngagementProject = _WorkPackage.EngagementProject
[0..*] A_EngagementProjectRoles _EngagementProjectRoles $projection.EngagementProject = _EngagementProjectRoles.EngagementProject
[1..1] E_CustomerProject _Extension $projection.EngagementProject = _Extension.CustomerProject

Annotations (16)

NameValueLevelField
AbapCatalog.sqlViewName AENGPROJECT view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #REQUIRED view
EndUserText.label Engagement Project view
VDM.viewType #CONSUMPTION view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.createEnabled true view
ObjectModel.updateEnabled true view
ObjectModel.deleteEnabled true view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #M view
Metadata.ignorePropagatedAnnotations true view
VDM.lifecycle.contract.type #PUBLIC_REMOTE_API view

Fields (24)

KeyFieldSource TableSource FieldDescription
KEY EngagementProject I_EngagementProject EngagementProject
EngagementProjectName I_EngagementProject EngagementProjectName
EngagementProjectType I_EngagementProject EngagementProjectType
EngagementProjectStage I_EngagementProject EngagementProjectStage
EngagementProjectServiceOrg I_EngagementProject EngagementProjectServiceOrg
EngagementProjectCategory I_EngagementProject EngagementProjectCategory
Currency
ProjectStartDate I_EngagementProject ProjectStartDate
ProjectEndDate I_EngagementProject ProjectEndDate
ProjectVisibility I_EngagementProject ProjectVisibility
ProjectManager
LastChangeDateTime I_EngagementProject LastChangeDateTime
CreationDateTime I_EngagementProject CreationDateTime
CostCenter I_EngagementProject CostCenter
ProfitCenter I_EngagementProject ProfitCenter
Customer I_EngagementProject Customer
ControllingArea I_EngagementProject ControllingArea
ProjectProfileCode I_EngagementProject ProjectProfileCode
CompanyCode I_EngagementProject CompanyCode
TimePostingIsRestricted I_EngagementProject RestrictedTimePosting
ProjectBillingIsUsed I_EngagementProject ProjectBillingIsUsed
_WorkPackage _WorkPackage
_EngagementProjectRoles _EngagementProjectRoles
_Customer I_EngagementProject _Customer
@AbapCatalog.sqlViewName: 'AENGPROJECT'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl:{
authorizationCheck: #CHECK,
personalData.blocking: #REQUIRED
}
@EndUserText.label: 'Engagement Project'
@VDM.viewType: #CONSUMPTION
@ClientHandling.algorithm : #SESSION_VARIABLE
@ObjectModel: {
   createEnabled: true,
   updateEnabled: true,
   deleteEnabled:true,
   usageType: {
     dataClass:      #MIXED,
     serviceQuality: #C,
     sizeCategory:   #M
   }
}

// A-view annotations

@Metadata.ignorePropagatedAnnotations: true
@VDM.lifecycle.contract.type: #PUBLIC_REMOTE_API

define view A_EngagementProject
  as select from I_EngagementProject as A 

  association [0..*] to A_EngmntProjWrkPckg      as _WorkPackage            on $projection.EngagementProject = _WorkPackage.EngagementProject

  association [0..*] to A_EngagementProjectRoles as _EngagementProjectRoles on $projection.EngagementProject = _EngagementProjectRoles.EngagementProject


  association [1..1] to E_CustomerProject        as _Extension              on $projection.EngagementProject = _Extension.CustomerProject

{
      @ObjectModel.mandatory: true
  key A.EngagementProject,
  
      @Semantics.text: true
      A.EngagementProjectName,
      A.EngagementProjectType,
      
      @ObjectModel.sapObjectNodeTypeReference:'EngagementProjectStage'
      @ObjectModel.mandatory: true
      A.EngagementProjectStage,
      
      @ObjectModel.sapObjectNodeTypeReference:'EngagementProjectServiceOrg'
      @ObjectModel.mandatory: true
      A.EngagementProjectServiceOrg,
      
      @ObjectModel.mandatory: true
      A.EngagementProjectCategory,
      
      @ObjectModel.mandatory: true
      A._EngagementProjFinancialPlan.Currency,
      
      @ObjectModel.mandatory: true
      A.ProjectStartDate,
      
      @ObjectModel.mandatory: true
      A.ProjectEndDate,
      A.ProjectVisibility,
      A._PersonWorkAgreementDet.PersonWorkAgreement as ProjectManager,
      
      @Semantics.dateTime:true
      @ObjectModel.readOnly: true
      A.LastChangeDateTime,
      
      @Semantics.dateTime:true
      @ObjectModel.readOnly: true
      A.CreationDateTime,
      
      @ObjectModel.mandatory: true
      A.CostCenter,
      
      @ObjectModel.mandatory: true
      A.ProfitCenter,
      
      @ObjectModel.mandatory: true
      A.Customer,
      
      //This field is added to have join on A_CostCenter and A_ProfitCenter

      @Consumption.hidden: true
      A.ControllingArea,
      
      @Consumption.hidden: true
      A.ProjectProfileCode,
      
      @Consumption.hidden: true
      A.CompanyCode,
//       @VDM.lifecycle.status: #DEPRECATED

//       @VDM.lifecycle.successor: 'RestrictedTimePosting'      

//      A.TimePostingIsRestricted,

//      A.RestrictedTimePosting,

      A.RestrictedTimePosting as TimePostingIsRestricted,
      A.ProjectBillingIsUsed,

      _WorkPackage,
      _EngagementProjectRoles,
      
      @Consumption.hidden: true
      A._Customer
}