I_EnterpriseProjectForUser

DDL: I_ENTERPRISEPROJECTFORUSER Type: view_entity COMPOSITE

Enterprise Project with user involvement

I_EnterpriseProjectForUser is a Composite CDS View that provides data about "Enterprise Project with user involvement" in SAP S/4HANA. It reads from 1 data source (I_PPM_ProjectRoot) and exposes 5 fields with key field ProjectUUID.

Data Sources (1)

SourceAliasJoin Type
I_PPM_ProjectRoot Project from

Annotations (10)

NameValueLevelField
AccessControl.authorizationCheck #PRIVILEGED_ONLY view
AccessControl.personalData.blocking #NOT_REQUIRED view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.usageType.serviceQuality #A view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.modelingPattern #NONE view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
EndUserText.label Enterprise Project with user involvement view

Fields (5)

KeyFieldSource TableSource FieldDescription
KEY ProjectUUID I_PPM_ProjectRoot ProjectUUID
ProjectCategory I_PPM_ProjectRoot ProjectCategory
EnterpriseProjectServiceOrg I_PPM_ProjectRoot EnterpriseProjectServiceOrg
EntProjectIsConfidential I_PPM_ProjectRoot EntProjectIsConfidential
UserIDendasUserID
@AccessControl: {
  authorizationCheck: #PRIVILEGED_ONLY,
  personalData: {
  blocking: #NOT_REQUIRED
  } }

@Metadata.ignorePropagatedAnnotations: true

@ObjectModel: {
  usageType: {
    serviceQuality: #A,
    sizeCategory: #XL,
    dataClass: #TRANSACTIONAL
    },
    supportedCapabilities: [ #CDS_MODELING_ASSOCIATION_TARGET ],
    modelingPattern:  #NONE
  }

@VDM.viewType: #COMPOSITE
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API

@EndUserText.label: 'Enterprise Project with user involvement'
//This view is also used in DCL of Cat 7 Projects

define view entity I_EnterpriseProjectForUser
  as select from           I_PPM_ProjectRoot          as Project
    left outer to one join P_EnterpriseProjectForUser as User on User.ProjectUUID = Project.ProjectUUID
{
  key Project.ProjectUUID     as ProjectUUID,
      Project.ProjectCategory as ProjectCategory,
      Project.EnterpriseProjectServiceOrg,
      Project.EntProjectIsConfidential,

      case
          when User.UserID is null
          then 'A'
          when User.UserID is not null
          then User.UserID
          end                 as UserID,

      @Semantics.booleanIndicator: true
      @Environment.sql.passValue: true
      case
          when User.UserID is not null
          then cast ('X' as /s4ppm/myproject preserving type )
          end                 as IsMyProject

}
//This Where condition is added to improve the performance for professional services projects in the applications

//As this view is used in DCL of R_EnterpriseProject for Cat 7 Projects this explicit filter is required here

where
  Project.ProjectCategory = '7'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_PPM_PROJECTROOT",
"P_ENTERPRISEPROJECTFORUSER"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/