I_EngagementProject

DDL: I_ENGAGEMENTPROJECT Type: view BASIC

Engagement Project

I_EngagementProject is a Basic CDS View (Dimension) that provides data about "Engagement Project" in SAP S/4HANA. It reads from 1 data source (P_EngagementProject) and exposes 40 fields with key field EngagementProject. It has 15 associations to related views.

Data Sources (1)

SourceAliasJoin Type
P_EngagementProject EngagementProject from

Associations (15)

CardinalityTargetAliasCondition
[1..1] I_EngagementProjFinancialPlan _EngagementProjFinancialPlan $projection.EngagementProjectUUID = _EngagementProjFinancialPlan.EngagementProjectUUID
[0..*] I_PersnWrkAgreementDet _PersonWorkAgreementDet $projection.ProjectManagerWorkAgreement = _PersonWorkAgreementDet.PersonWorkAgreement
[0..1] I_Employment _Employment $projection.ProjectManagerWorkAgreement = _Employment.EmploymentInternalID
[0..1] I_Customer _Customer $projection.Customer = _Customer.Customer
[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_ControllingArea _ControllingArea $projection.ControllingArea = _ControllingArea.ControllingArea
[0..1] I_CompanyCode _CompanyCode $projection.CompanyCode = _CompanyCode.CompanyCode
[0..1] I_EngagementProjectStage _EngagementProjectStage $projection.EngagementProjectStage = _EngagementProjectStage.EngagementProjectStage
[0..*] I_EngagementProjectItem _EngagementProjectItem $projection.EngagementProjectUUID = _EngagementProjectItem.EngagementProjectUUID
[0..1] I_EngagementProjectSrvcOrg _EngagementProjectServiceOrg $projection.EngagementProjectServiceOrg = _EngagementProjectServiceOrg.EngagementProjectServiceOrg
[1..1] E_CustomerProject _Extension EngagementProject.mp_id = _Extension.CustomerProject
[1..1] I_EngmntProjWithUserInvlmnt _UserInvlmnt $projection.EngagementProjectUUID = _UserInvlmnt.ProjectUUID
[0..*] I_PersonWorkAgreement _PersonWorkAgreement $projection.ProjectManagerWorkAgreement = _PersonWorkAgreement.PersonWorkAgreement
[0..1] I_PersonWorkAgreement_1 _PersonWorkAgreement_1 $projection.ProjectManagerWorkAgreement = _PersonWorkAgreement_1.PersonWorkAgreement

Annotations (18)

NameValueLevelField
AbapCatalog.sqlViewName IENGMNTPROJ view
AbapCatalog.preserveKey true view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #REQUIRED view
Analytics.dataCategory #DIMENSION view
Analytics.dataExtraction.enabled true view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Engagement Project view
ObjectModel.representativeKey EngagementProject view
ObjectModel.usageType.serviceQuality #B view
ObjectModel.usageType.sizeCategory #M view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.modelingPattern #ANALYTICAL_DIMENSION view
Metadata.allowExtensions true view
Metadata.ignorePropagatedAnnotations true view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
VDM.viewType #BASIC view

Fields (40)

KeyFieldSource TableSource FieldDescription
KEY EngagementProject
EngagementProjectUUID
EngagementProjectName P_EngagementProject text
EngmntProjNameUprCase P_EngagementProject textu
EngagementProjectType
EngagementProjectStage P_EngagementProject mp_stage
EngagementProjectServiceOrg P_EngagementProject org_id
EngagementProjectCategory
ProjectStartDate P_EngagementProject start_date
ProjectEndDate P_EngagementProject end_date
ProjectVisibility P_EngagementProject confidential
ProjectManager P_EngagementProject proj_manager_id
ProjectManagerWorkAgreement P_EngagementProject proj_manager_id
LastChangeDateTime P_EngagementProject changed_on
LastChangedByUser P_EngagementProject changed_by
CreatedByUser P_EngagementProject created_by
CreationDateTime P_EngagementProject created_on
CostCenter P_EngagementProject cost_center
ProfitCenter P_EngagementProject profit_center
Customer P_EngagementProject customer
ControllingArea P_EngagementProject ControllingArea
CompanyCode P_EngagementProject CompanyCode
TimePostingIsRestricted P_EngagementProject restrict_time_posting
RestrictedTimePosting P_EngagementProject restrict_time_posting
ProjectBillingIsUsed P_EngagementProject use_project_billing
ProjectProfileCode P_EngagementProject ProjectProfileCode
_PersonWorkAgreement _PersonWorkAgreement
_PersonWorkAgreement_1 _PersonWorkAgreement_1
_PersonWorkAgreementDet _PersonWorkAgreementDet
_Customer _Customer
_ControllingArea _ControllingArea
_CompanyCode _CompanyCode
_CostCenter _CostCenter
_ProfitCenter _ProfitCenter
_EngagementProjFinancialPlan _EngagementProjFinancialPlan
_EngagementProjectStage _EngagementProjectStage
_EngagementProjectItem _EngagementProjectItem
_EngagementProjectServiceOrg _EngagementProjectServiceOrg
_UserInvlmnt _UserInvlmnt
_Employment _Employment
@AbapCatalog: {
  sqlViewName: 'IENGMNTPROJ',
  preserveKey: true,
  compiler.compareFilter: true
}
@AccessControl: {
  authorizationCheck: #CHECK,
  privilegedAssociations: [ '_EngagementProjFinancialPlan' ],
  personalData: {
    blockingIndicator: [ '_PersonWorkAgreementDet._BusinessPartner.IsBusinessPurposeCompleted', '_Customer.IsBusinessPurposeCompleted' ],
    blocking: #REQUIRED
  }
}
@Analytics: {
  dataCategory: #DIMENSION,
  dataExtraction.enabled: true
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Engagement Project'
@ObjectModel: {
  representativeKey: 'EngagementProject',
  usageType: {
    serviceQuality: #B,
    sizeCategory: #M,
    dataClass: #MIXED
  },
  modelingPattern: #ANALYTICAL_DIMENSION,
  supportedCapabilities: [#ANALYTICAL_DIMENSION,
                          #CDS_MODELING_ASSOCIATION_TARGET,
                          #CDS_MODELING_DATA_SOURCE,
                          #EXTRACTION_DATA_SOURCE,
                          #SQL_DATA_SOURCE]
}
@Metadata: {
  allowExtensions: true,
  ignorePropagatedAnnotations: true
}
@VDM: {
//  private: false,

  lifecycle.contract.type: #PUBLIC_LOCAL_API,
  viewType: #BASIC
}
define view I_EngagementProject
  as select from P_EngagementProject as EngagementProject
  //      inner join I_EngmntProjWithUserInvlmnt as B on EngagementProject.db_key = B.ProjectUUID

  association [1..1] to I_EngagementProjFinancialPlan as _EngagementProjFinancialPlan on  $projection.EngagementProjectUUID = _EngagementProjFinancialPlan.EngagementProjectUUID

  association [0..*] to I_PersnWrkAgreementDet        as _PersonWorkAgreementDet      on  $projection.ProjectManagerWorkAgreement = _PersonWorkAgreementDet.PersonWorkAgreement
  association [0..1] to I_Employment                  as _Employment                  on  $projection.ProjectManagerWorkAgreement = _Employment.EmploymentInternalID
  // and $projection.ProjectStartDate >= _Employment.StartDate

  //and $projection.ProjectEndDate   <= _Employment.EndDate


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

  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_ControllingArea             as _ControllingArea             on  $projection.ControllingArea = _ControllingArea.ControllingArea

  association [0..1] to I_CompanyCode                 as _CompanyCode                 on  $projection.CompanyCode = _CompanyCode.CompanyCode

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

  association [0..*] to I_EngagementProjectItem       as _EngagementProjectItem       on  $projection.EngagementProjectUUID = _EngagementProjectItem.EngagementProjectUUID

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

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

  association [1..1] to I_EngmntProjWithUserInvlmnt   as _UserInvlmnt                 on  $projection.EngagementProjectUUID = _UserInvlmnt.ProjectUUID

  // Association to I_PersonWorkAgreement ( Released CDS View by HCM. Used for EOP Authorization Check )


  association [0..*] to I_PersonWorkAgreement         as _PersonWorkAgreement         on  $projection.ProjectManagerWorkAgreement = _PersonWorkAgreement.PersonWorkAgreement
  association [0..1] to I_PersonWorkAgreement_1       as _PersonWorkAgreement_1       on  $projection.ProjectManagerWorkAgreement = _PersonWorkAgreement_1.PersonWorkAgreement
{
       @ObjectModel.text.element: 'EngagementProjectName'
  key  cast(EngagementProject.mp_id  as /cpd/eng_mp_id preserving type )           as EngagementProject,
       cast(EngagementProject.db_key as /cpd/eng_db_key preserving type )          as EngagementProjectUUID,
       @Semantics.text: true
       EngagementProject.text                                                      as EngagementProjectName,
       @Semantics.text : true
       EngagementProject.textu                                                     as EngmntProjNameUprCase,
       cast(EngagementProject.mp_type as /cpd/eng_mp_type  preserving type )       as EngagementProjectType,
       @ObjectModel.foreignKey.association: '_EngagementProjectStage'
       EngagementProject.mp_stage                                                  as EngagementProjectStage,
       //--[ GENERATED:012:GlBfhyJl7jY4oBIOE}WCZW

       @Consumption.valueHelpDefinition: [
         { entity:  { name:    'I_EngmntProjSrvcOrgStdVH',
                      element: 'EngagementProjectServiceOrg' }
         }]
       // ]--GENERATED

       @ObjectModel.foreignKey.association: '_EngagementProjectServiceOrg'
       EngagementProject.org_id                                                    as EngagementProjectServiceOrg,
       cast(EngagementProject.project_type as /cpd/eng_proj_type preserving type ) as EngagementProjectCategory,
       EngagementProject.start_date                                                as ProjectStartDate,
       EngagementProject.end_date                                                  as ProjectEndDate,
       EngagementProject.confidential                                              as ProjectVisibility,

       @VDM.lifecycle.status: #DEPRECATED
       @VDM.lifecycle.successor: 'ProjectManagerWorkAgreement'
       EngagementProject.proj_manager_id                                           as ProjectManager,
       EngagementProject.proj_manager_id                                           as ProjectManagerWorkAgreement,
       @Semantics.dateTime:true
       @Semantics.systemDateTime.lastChangedAt:true
       EngagementProject.changed_on                                                as LastChangeDateTime,
       EngagementProject.changed_by                                                as LastChangedByUser,
       EngagementProject.created_by                                                as CreatedByUser,
       @Semantics.dateTime:true
       @Semantics.systemDateTime.createdAt:true
       EngagementProject.created_on                                                as CreationDateTime,
       //--[ GENERATED:012:GlBfhyJl7jY4oBIOE}WCZW

       @Consumption.valueHelpDefinition: [
         { entity:  { name:    'I_CostCenterStdVH',
                      element: 'CostCenter' },
           additionalBinding: [{ localElement: 'ControllingArea',
                                 element: 'ControllingArea' }]
         }]
       // ]--GENERATED

       @ObjectModel.foreignKey.association: '_CostCenter'
       EngagementProject.cost_center                                               as CostCenter,
       //--[ GENERATED:012:GlBfhyJl7jY4oBIOE}WCZW

       @Consumption.valueHelpDefinition: [
         { entity:  { name:    'I_ProfitCenterStdVH',
                      element: 'ProfitCenter' },
           additionalBinding: [{ localElement: 'ControllingArea',
                                 element: 'ControllingArea' }]
         }]
       // ]--GENERATED

       @ObjectModel.foreignKey.association: '_ProfitCenter'
       EngagementProject.profit_center                                             as ProfitCenter,
       //--[ GENERATED:012:GlBfhyJl7jY4oBIOE}WCZW

       @Consumption.valueHelpDefinition: [
         { entity:  { name:    'I_Customer_VH',
                      element: 'Customer' }
         }]
       // ]--GENERATED

       @ObjectModel.foreignKey.association: '_Customer'
       EngagementProject.customer                                                  as Customer,
       @ObjectModel.foreignKey.association: '_ControllingArea'
       EngagementProject.ControllingArea                                           as ControllingArea,
       //--[ GENERATED:012:GlBfhyJl7jY4oBIOE}WCZW

       @Consumption.valueHelpDefinition: [
         { entity:  { name:    'I_CompanyCodeStdVH',
                      element: 'CompanyCode' }
         }]
       // ]--GENERATED

       @ObjectModel.foreignKey.association: '_CompanyCode'
       EngagementProject.CompanyCode                                               as CompanyCode,

       // Y: if time posting without staffing is allowed else N

       @VDM.lifecycle.status: #DEPRECATED
       @VDM.lifecycle.successor: 'RestrictedTimePosting'
       EngagementProject.restrict_time_posting                                     as TimePostingIsRestricted,

       EngagementProject.restrict_time_posting                                     as RestrictedTimePosting,

       //If Use New Project Billing: 'X'

       //else: '' (blank)

       @Semantics.booleanIndicator:true
       EngagementProject.use_project_billing                                       as ProjectBillingIsUsed,
       EngagementProject.ProjectProfileCode,

       //       @Consumption.hidden: true

       //       @Semantics.booleanIndicator: true

       ////       _UserInvlmnt.IsMyProject,

       //       B.IsMyProject,


       /* Associations */
       @API.element: {
         successor: '_PersonWorkAgreement_1',
         releaseState: #DEPRECATED
       }
       @VDM.lifecycle: {
         successor: '_PersonWorkAgreement_1',
         status: #DEPRECATED
       }
       _PersonWorkAgreement,
       _PersonWorkAgreement_1,
       _PersonWorkAgreementDet,
       _Customer,
       _ControllingArea,
       _CompanyCode,
       @ObjectModel.association.boundFields.dataMatchesSourceAndTargetTypes: true //CE2111 - Fix Association join condition in analytical model

       _CostCenter,
       _ProfitCenter,
       _EngagementProjFinancialPlan,
       _EngagementProjectStage,
       _EngagementProjectItem,
       _EngagementProjectServiceOrg,
       _UserInvlmnt,

       @API.element: {
         successor: '_PersonWorkAgreement_1',
         releaseState: #DEPRECATED
       }
       @VDM.lifecycle: {
         successor: '_PersonWorkAgreement_1',
         status: #DEPRECATED
       }
       _Employment   
 
     
}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"P_ENGAGEMENTPROJECT"
],
"ASSOCIATED":
[
"E_CUSTOMERPROJECT",
"I_COMPANYCODE",
"I_CONTROLLINGAREA",
"I_COSTCENTER",
"I_CUSTOMER",
"I_EMPLOYMENT",
"I_ENGAGEMENTPROJECTITEM",
"I_ENGAGEMENTPROJECTSRVCORG",
"I_ENGAGEMENTPROJECTSTAGE",
"I_ENGAGEMENTPROJFINANCIALPLAN",
"I_ENGMNTPROJWITHUSERINVLMNT",
"I_PERSNWRKAGREEMENTDET",
"I_PERSONWORKAGREEMENT",
"I_PERSONWORKAGREEMENT_1",
"I_PROFITCENTER"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/