I_EngmntProjectRoleAssgmt

DDL: I_ENGMNTPROJECTROLEASSGMT Type: view COMPOSITE

Role Assignment in Engagement Project

I_EngmntProjectRoleAssgmt is a Composite CDS View (Dimension) that provides data about "Role Assignment in Engagement Project" in SAP S/4HANA. It reads from 2 data sources (P_EngmntProjectRoleAssgmt, P_WFPersonIdentification) and exposes 23 fields with key fields EngagementProject, EngagementProjectTeamRole. It has 9 associations to related views.

Data Sources (2)

SourceAliasJoin Type
P_EngmntProjectRoleAssgmt B from
P_WFPersonIdentification C inner

Associations (9)

CardinalityTargetAliasCondition
[0..1] I_BusinessUserBasic _BusinessUserBasic $projection.BusinessPartner = _BusinessUserBasic.BusinessPartner
[0..1] I_BusinessUser _BusinessUser $projection.BusinessPartner = _BusinessUser.BusinessPartner
[0..1] I_BusinessPartner _BusinessPartner $projection.BusinessPartner = _BusinessPartner.BusinessPartner
[0..1] I_WorkplaceAddress _WorkplaceAddress $projection.BusinessPartnerUUID = _WorkplaceAddress.BusinessPartnerUUID
[0..1] I_WorkforcePersonImageURL _Image _Image.Person = B.BusinessPartner
[0..1] I_EnterpriseProjectRoleType _ProjectRole $projection.EngagementProjectTeamRole = _ProjectRole.ProjectRoleType
[1] I_EngagementProject _EngagementProject $projection.EngagementProject = _EngagementProject.EngagementProject
[0..1] I_PPM_ProjectRoleTypeText _ProjectRoleText _ProjectRoleText.LanguageCode = $session.system_language and _ProjectRoleText.ProjectRoleType = $projection.EngagementProjectTeamRole
[1..1] I_EngmntProjWithUserInvlmnt _UserInvlmnt $projection.EngagementProjectUUID = _UserInvlmnt.ProjectUUID

Annotations (20)

NameValueLevelField
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName IENGPRJROLASSGMT view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
AccessControl.personalData.blockingIndicator IsBusinessPurposeCompleted view
ObjectModel.representativeKey EngagementProjectTeamRole view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.modelingPattern #ANALYTICAL_DIMENSION view
EndUserText.label Role Assignment in Engagement Project view
Analytics.dataExtraction.enabled true view
Analytics.dataCategory #DIMENSION view
Analytics.internalName #LOCAL view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
Metadata.ignorePropagatedAnnotations true view
Metadata.allowExtensions true view

Fields (23)

KeyFieldSource TableSource FieldDescription
KEY EngagementProject P_EngmntProjectRoleAssgmt EngagementProject Engagement Project ID
KEY EngagementProjectTeamRole P_EngmntProjectRoleAssgmt EngagementProjectTeamRole Project Role
CreationDateTime P_EngmntProjectRoleAssgmt CreationDateTime Created On
BusinessPartner P_EngmntProjectRoleAssgmt BusinessPartner Business Partner ID
ObjectName _ProjectRoleText ObjectName Project Role Name
EngagementProjectUUID P_EngmntProjectRoleAssgmt EngagementProjectUUID
EngagementProjectTeamRoleUUID P_EngmntProjectRoleAssgmt EngagementProjectTeamRoleUUID
EngmtProjTeamMemberUUID P_EngmntProjectRoleAssgmt EngmtProjTeamMemberUUID
EngagementProjectMemberUUID P_EngmntProjectRoleAssgmt EngagementProjectMemberUUID
BusinessPartnerUUID P_EngmntProjectRoleAssgmt BusinessPartnerUUID
BusinessPartnerFullName P_EngmntProjectRoleAssgmt BusinessPartnerFullName Business Partner Name
BusinessPartnerType P_EngmntProjectRoleAssgmt BusinessPartnerType Business Partner Type
BusinessUser _BusinessUserBasic UserID Business User
PersonExternalID P_WFPersonIdentification BPIdentificationNumber User name
_BusinessUserBasic _BusinessUserBasic
_BusinessUser _BusinessUser
_Image _Image
_ProjectRole _ProjectRole
_ProjectRoleText _ProjectRoleText
_EngagementProject _EngagementProject
_WorkplaceAddress _WorkplaceAddress
_BusinessPartner _BusinessPartner
_UserInvlmnt _UserInvlmnt
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog: {
    sqlViewName: 'IENGPRJROLASSGMT',
    compiler.compareFilter: true,
    preserveKey: true
}
@AccessControl: {
    authorizationCheck: #CHECK,
    personalData.blocking: #BLOCKED_DATA_EXCLUDED,
    personalData.blockingIndicator: 'IsBusinessPurposeCompleted'
}
@ObjectModel: {
    representativeKey: 'EngagementProjectTeamRole',
    usageType.serviceQuality: #D,
    usageType.sizeCategory: #XL,
    usageType.dataClass: #MIXED,
    modelingPattern: #ANALYTICAL_DIMENSION,
    supportedCapabilities: [#ANALYTICAL_DIMENSION,
                            #CDS_MODELING_ASSOCIATION_TARGET,
                            #CDS_MODELING_DATA_SOURCE,
                            #SQL_DATA_SOURCE]
}
@EndUserText.label: 'Role Assignment in Engagement Project'

@Analytics: {
  dataExtraction.enabled: true,
  dataCategory: #DIMENSION,
  internalName: #LOCAL
}

@VDM: {
    viewType: #COMPOSITE,
    lifecycle.contract.type: #PUBLIC_LOCAL_API
}

@Metadata: {
ignorePropagatedAnnotations: true,
allowExtensions:true
}

define view I_EngmntProjectRoleAssgmt
  as select from P_EngmntProjectRoleAssgmt as B
    inner join   P_WFPersonIdentification  as C on B.BusinessPartner = C.BusinessPartner
  association [0..1] to I_BusinessUserBasic         as _BusinessUserBasic on  $projection.BusinessPartner = _BusinessUserBasic.BusinessPartner
  // ***** I_BusinessUser is deprecated, It's successor view is I_BusinessUserBasic

  association [0..1] to I_BusinessUser              as _BusinessUser      on  $projection.BusinessPartner = _BusinessUser.BusinessPartner
  // ***** I_BusinessPartner has DCL check for blocked employee. Do not remove this association.

  association [0..1] to I_BusinessPartner           as _BusinessPartner   on  $projection.BusinessPartner = _BusinessPartner.BusinessPartner
  association [0..1] to I_WorkplaceAddress          as _WorkplaceAddress  on  $projection.BusinessPartnerUUID = _WorkplaceAddress.BusinessPartnerUUID
  association [0..1] to I_WorkforcePersonImageURL   as _Image             on  _Image.Person = B.BusinessPartner
  association [0..1] to I_EnterpriseProjectRoleType as _ProjectRole       on  $projection.EngagementProjectTeamRole = _ProjectRole.ProjectRoleType
  association [1]    to I_EngagementProject         as _EngagementProject on  $projection.EngagementProject = _EngagementProject.EngagementProject
  association [0..1] to I_PPM_ProjectRoleTypeText   as _ProjectRoleText   on  _ProjectRoleText.LanguageCode    = $session.system_language
                                                                          and _ProjectRoleText.ProjectRoleType = $projection.EngagementProjectTeamRole
  association [1..1] to I_EngmntProjWithUserInvlmnt as _UserInvlmnt       on  $projection.EngagementProjectUUID = _UserInvlmnt.ProjectUUID
{

      @ObjectModel.foreignKey.association: '_EngagementProject'
      @EndUserText.label: 'Engagement Project ID'
  key B.EngagementProject,

      @EndUserText.label: 'Project Role'
  key B.EngagementProjectTeamRole,

      @EndUserText.label: 'Created On'
      B.CreationDateTime,

      @ObjectModel.foreignKey.association: '_BusinessPartner'
      @EndUserText.label: 'Business Partner ID'
      B.BusinessPartner,

      @EndUserText.label: 'Project Role Name'
      @Semantics.name.jobTitle: true
      _ProjectRoleText.ObjectName,

      @Consumption.hidden: true
      B.EngagementProjectUUID,

      @Consumption.hidden: true
      B.EngagementProjectTeamRoleUUID,

      @Consumption.hidden: true
      B.EngmtProjTeamMemberUUID,

      @Consumption.hidden: true
      B.EngagementProjectMemberUUID,

      @Consumption.hidden: true
      B.BusinessPartnerUUID,

      @EndUserText.label: 'Business Partner Name'
      B.BusinessPartnerFullName,

      @EndUserText.label: 'Business Partner Type'
      B.BusinessPartnerType,

      @EndUserText.label: 'Business User'
      _BusinessUserBasic.UserID as BusinessUser,

      @EndUserText.label: 'User name'
      C.BPIdentificationNumber  as PersonExternalID,
      
      _BusinessUserBasic,

      @API.element: {
             successor: '_BusinessUserBasic',
             releaseState: #DEPRECATED
      }
      @VDM.lifecycle: {
             successor: '_BusinessUserBasic',
             status: #DEPRECATED
      }
      _BusinessUser,
      _Image,
      _ProjectRole,
      _ProjectRoleText,
      _EngagementProject,
      _WorkplaceAddress,
      _BusinessPartner,
      @Consumption.hidden: true
      _UserInvlmnt

}
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSUSERBASIC",
"I_PPM_PROJECTROLETYPETEXT",
"P_ENGMNTPROJECTROLEASSGMT",
"P_WFPERSONIDENTIFICATION"
],
"ASSOCIATED":
[
"I_BUSINESSPARTNER",
"I_BUSINESSUSER",
"I_BUSINESSUSERBASIC",
"I_ENGAGEMENTPROJECT",
"I_ENGMNTPROJWITHUSERINVLMNT",
"I_ENTERPRISEPROJECTROLETYPE",
"I_PPM_PROJECTROLETYPETEXT",
"I_WORKFORCEPERSONIMAGEURL",
"I_WORKPLACEADDRESS"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/