I_ProjectByProjMgr

DDL: I_PROJECTBYPROJMGR SQL: IPPROJMNGR Type: view COMPOSITE Package: ODATA_PS_COS_PROJFIN_MNTR

Project by Project Manager

I_ProjectByProjMgr is a Composite CDS View that provides data about "Project by Project Manager" in SAP S/4HANA. It reads from 2 data sources (I_ProjectBasicData, I_ProjectBasicData) and exposes 51 fields with key field Project. It has 2 associations to related views. Part of development package ODATA_PS_COS_PROJFIN_MNTR.

Data Sources (2)

SourceAliasJoin Type
I_ProjectBasicData Project from
I_ProjectBasicData Project union_all

Associations (2)

CardinalityTargetAliasCondition
[0..1] I_SingleResponsibleForProj _Responsible _Responsible.ReferencedObjectUUID = ProjectSummary.ProjectSummaryTaskUUID
[1..1] I_ResponsiblePersonForProj _ResPerson _ResPerson.ProjectInternalID = Project.ProjectInternalID

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName IPPROJMNGR view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
EndUserText.label Project by Project Manager view
ObjectModel.representativeKey Project view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MASTER view
AccessControl.personalData.blocking #NOT_REQUIRED view
VDM.viewType #COMPOSITE view
Metadata.ignorePropagatedAnnotations true view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view

Fields (51)

KeyFieldSource TableSource FieldDescription
KEY Project I_ProjectBasicData ProjectExternalID
ProjectUUID ProjectSummary ProjectUUID
ProjectDescription I_ProjectBasicData ProjectDescription
ProjectInternalID I_ProjectBasicData ProjectInternalID
ProjectObject I_ProjectBasicData ProjectObject
ProjectObjectRootNode I_ProjectBasicData ProjectObject
ProjectProfileCode I_ProjectBasicData ProjectProfileCode
PlannedStartDate I_ProjectBasicData PlannedStartDate
PlannedEndDate I_ProjectBasicData PlannedEndDate
ProjectManagerUUID _Responsible BusinessPartnerUUID
BusinessPartnerFullName _Responsible BusinessPartnerFullName
ProjectSummaryTaskUUID ProjectSummary ProjectSummaryTaskUUID
ProjectCategory ProjectSummary ProjectCategory
CompanyCode I_ProjectBasicData CompanyCode
ProfitCenter I_ProjectBasicData ProfitCenter
AvailyCtrlTimeRangeType
BudgetCurrencyRole
AvailabilityControlIsActive I_ProjectBasicData AvailabilityControlIsActive
AvailabilityControlProfile I_ProjectBasicData AvailabilityControlProfile
ControllingArea I_ProjectBasicData ControllingArea
ProjectProcessingStatus ProjectSummary ProcessingStatus
WBSElementInternalID ProjectSummary WBSElementInternalID
ResponsibleCostCenter
Plant I_ProjectBasicData Plant
ProjectType
ProjectExternalIDasProject
ProjectUUID ProjectSummary ProjectUUID
ProjectDescription I_ProjectBasicData ProjectDescription
ProjectInternalID I_ProjectBasicData ProjectInternalID
ProjectObject I_ProjectBasicData ProjectObject
ProjectObjectRootNode I_ProjectBasicData ProjectObject
ProjectProfileCode I_ProjectBasicData ProjectProfileCode
PlannedStartDate I_ProjectBasicData PlannedStartDate
PlannedEndDate I_ProjectBasicData PlannedEndDate
ProjectManagerUUID _Responsible BusinessPartnerUUID
BusinessPartnerFullName _ResPerson ResponsiblePersonName
ProjectSummaryTaskUUID ProjectSummary ProjectSummaryTaskUUID
ProjectCategory ProjectSummary ProjectCategory
CompanyCode I_ProjectBasicData CompanyCode
ProfitCenter I_ProjectBasicData ProfitCenter
AvailyCtrlTimeRangeType
BudgetCurrencyRole
AvailabilityControlIsActive I_ProjectBasicData AvailabilityControlIsActive
AvailabilityControlProfile I_ProjectBasicData AvailabilityControlProfile
ControllingArea I_ProjectBasicData ControllingArea
ProjectProcessingStatus ProjectSummary ProcessingStatus
WBSElementInternalID ProjectSummary WBSElementInternalID
ResponsibleCostCenter
Plant I_ProjectBasicData Plant
ProjectType
FunctionalArea I_ProjectBasicData FunctionalArea
@AbapCatalog.sqlViewName: 'IPPROJMNGR'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Project by Project Manager'
@ObjectModel.representativeKey: 'Project'
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #MASTER
@AccessControl.personalData.blocking: #NOT_REQUIRED
@VDM.viewType: #COMPOSITE
@Metadata.ignorePropagatedAnnotations: true
@VDM.lifecycle.contract.type:  #SAP_INTERNAL_API

define view I_ProjectByProjMgr
  as select from           I_ProjectBasicData  as Project
    left outer to one join R_EnterpriseProject as ProjectSummary on ProjectSummary.ProjectInternalID = Project.ProjectInternalID
  association [0..1] to I_SingleResponsibleForProj as _Responsible on _Responsible.ReferencedObjectUUID = ProjectSummary.ProjectSummaryTaskUUID

{
      @ObjectModel.text.element: 'ProjectDescription'
  key Project.ProjectExternalID                     as Project, //Project.Project as Project,

      ProjectSummary.ProjectUUID,
      @Semantics.text: true
      Project.ProjectDescription,
      Project.ProjectInternalID,
      Project.ProjectObject,
      Project.ProjectObject                         as ProjectObjectRootNode,
      Project.ProjectProfileCode,
      Project.PlannedStartDate,
      Project.PlannedEndDate,
      _Responsible.BusinessPartnerUUID              as ProjectManagerUUID,
      _Responsible.BusinessPartnerFullName          as BusinessPartnerFullName,
      //      _ResPerson.ResponsiblePersonName,

      //      case

      //      when _Responsible.BusinessPartnerFullName is null

      //      then cast ( _ResPerson.ResponsiblePersonName as ps_verna)

      //      else cast ( _Responsible.BusinessPartnerFullName as ps_verna)

      //      end                              as BusinessPartnerFullName,



      ProjectSummary.ProjectSummaryTaskUUID,
      ProjectSummary.ProjectCategory,

      Project.CompanyCode,
      Project.ProfitCenter,

      Project._AvailabilityCtrlProfile.AvailyCtrlTimeRangeType,
      Project._AvailabilityCtrlProfile.BudgetCurrencyRole,

      Project.AvailabilityControlIsActive,
      Project.AvailabilityControlProfile,


      Project.ControllingArea,
      ProjectSummary.ProcessingStatus               as ProjectProcessingStatus,
      ProjectSummary.WBSElementInternalID,

      //CE2402 : //Required Fields for AO /s4ppm/pr1(C_ProjectVH)  :- start

      Project._RootWBSElement.ResponsibleCostCenter as ResponsibleCostCenter,
      Project.Plant,
      Project._RootWBSElement.ProjectType           as ProjectType,
      Project.FunctionalArea
      //CE2402 : //Required Fields for AO /s4ppm/pr1  :- end


}
where
          Project.ProjectInternalID               != '00000000'
  and     _Responsible.BusinessPartnerFullName    is not null
  and(
          _Responsible.BusinessPartnerUUID        is null
    or(
          _Responsible.BusinessPartnerUUID        is not null
      and _Responsible.IsBusinessPurposeCompleted <> 'X'
    )
  )

union all select from    I_ProjectBasicData  as Project
  left outer to one join R_EnterpriseProject as ProjectSummary on ProjectSummary.ProjectInternalID = Project.ProjectInternalID
association [0..1] to I_SingleResponsibleForProj as _Responsible on _Responsible.ReferencedObjectUUID = ProjectSummary.ProjectSummaryTaskUUID
association [1..1] to I_ResponsiblePersonForProj as _ResPerson   on _ResPerson.ProjectInternalID = Project.ProjectInternalID
{
      @ObjectModel.text.element: 'ProjectDescription'
  key Project.ProjectExternalID                     as Project,
      ProjectSummary.ProjectUUID,
      @Semantics.text: true
      Project.ProjectDescription,
      Project.ProjectInternalID,
      Project.ProjectObject,
      Project.ProjectObject                         as ProjectObjectRootNode,
      Project.ProjectProfileCode,
      Project.PlannedStartDate,
      Project.PlannedEndDate,
      _Responsible.BusinessPartnerUUID              as ProjectManagerUUID,
      //      _Responsible.BusinessPartnerFullName as BusinessPartnerFullName,

      _ResPerson.ResponsiblePersonName              as BusinessPartnerFullName,
      ProjectSummary.ProjectSummaryTaskUUID,
      ProjectSummary.ProjectCategory,

      Project.CompanyCode,
      Project.ProfitCenter,

      Project._AvailabilityCtrlProfile.AvailyCtrlTimeRangeType,
      Project._AvailabilityCtrlProfile.BudgetCurrencyRole,

      Project.AvailabilityControlIsActive,
      Project.AvailabilityControlProfile,


      Project.ControllingArea,
      ProjectSummary.ProcessingStatus               as ProjectProcessingStatus,
      ProjectSummary.WBSElementInternalID,

      //CE2402 : //Required Fields for AO /s4ppm/pr1(C_ProjectVH)  :- start

      Project._RootWBSElement.ResponsibleCostCenter as ResponsibleCostCenter,
      Project.Plant,
      Project._RootWBSElement.ProjectType           as ProjectType,
      Project.FunctionalArea
      //CE2402 : //Required Fields for AO /s4ppm/pr1  :- end


}
where
          Project.ProjectInternalID               != '00000000'
  and     _Responsible.BusinessPartnerFullName    is null
  and(
          _Responsible.BusinessPartnerUUID        is null
    or(
          _Responsible.BusinessPartnerUUID        is not null
      and _Responsible.IsBusinessPurposeCompleted <> 'X'
    )
  )