I_EngmntProjAssgmtToSessionUsr

DDL: I_ENGMNTPROJASSGMTTOSESSIONUSR SQL: IEPASSGTOSESNUSR Type: view COMPOSITE Package: CPD_CDS

Engagement Project Assignment To User

I_EngmntProjAssgmtToSessionUsr is a Composite CDS View that provides data about "Engagement Project Assignment To User" in SAP S/4HANA. It reads from 2 data sources (I_EngagementProjFinancialPlan, P_EngmntProjWthRolesAsAttrib) and exposes 37 fields with key field EngagementProjectUUID. It has 5 associations to related views. Part of development package CPD_CDS.

Data Sources (2)

SourceAliasJoin Type
I_EngagementProjFinancialPlan FinancialPlan inner
P_EngmntProjWthRolesAsAttrib Project from

Associations (5)

CardinalityTargetAliasCondition
[1..1] I_Customer _Customer $projection.Customer = _Customer.Customer
[1..1] I_BusinessUserBasic _ProjectManager $projection.ProjectManagerExternalID = _ProjectManager.UserID
[0..1] I_BusinessUserBasic _ProjectAccountant $projection.ProjectAccountantExternalID = _ProjectAccountant.UserID
[0..1] I_BusinessUserBasic _ProjectController $projection.ProjectControllerExternalID = _ProjectController.UserID
[0..1] I_BusinessUserBasic _ProjectPartner $projection.ProjectPartnerExternalID = _ProjectPartner.UserID

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName IEPASSGTOSESNUSR view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #COMPOSITE view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.modelingPattern #TRANSACTIONAL_ENTITY view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #REQUIRED view
EndUserText.label Engagement Project Assignment To User view

Fields (37)

KeyFieldSource TableSource FieldDescription
KEY EngagementProjectUUID P_EngmntProjWthRolesAsAttrib EngagementProjectUUID
EngagementProject P_EngmntProjWthRolesAsAttrib EngagementProject
EngagementProjectName EngagementProjectName
ProjectStartDate ProjectStartDate
ProjectEndDate ProjectEndDate
Customer Customer
EngagementProjectServiceOrg EngagementProjectServiceOrg
EngagementProjectType EngagementProjectType
EngagementProjectCategory EngagementProjectCategory
EngagementProjectStage EngagementProjectStage
ProjectVisibility ProjectVisibility
IsMyProject IsMyProject
Currency Currency
EngagementProjFinPlanUUID EngagementProjFinPlanUUID
EngmntProjReviewYearPeriod EngmntProjReviewYearPeriod
EngagementProjectReviewStatus EngagementProjectReviewStatus
LastChangeDateTime P_EngmntProjWthRolesAsAttrib LastChangeDateTime
ProjManagerUserID ProjectManager
ProjectManagerName ProjectManagerName
ProjectManagerExternalID ProjectManagerExternalID
ProjAccountantUserID ProjectAccountant
ProjectAccountantName ProjectAccountantName
ProjControllerUserID ProjectController
ProjectControllerName ProjectControllerName
ProjPartnerUserID Projectpartner
ProjectPartnerName ProjectpartnerName
CurrentYearPeriod
ProjectProfileCode ProjectProfileCode
ControllingArea ControllingArea
EngmntProjectHeaderCompanyCode CompanyCode
EngagementProjectCostCenter CostCenter
ProfitCenter ProfitCenter
_Customer _Customer
_ProjectManager _ProjectManager
_ProjectAccountant _ProjectAccountant
_ProjectController _ProjectController
_ProjectPartner _ProjectPartner
@AbapCatalog.sqlViewName: 'IEPASSGTOSESNUSR'
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #COMPOSITE
@AbapCatalog:{ compiler.compareFilter: true,
               preserveKey: true }
@ObjectModel: {
    usageType: { serviceQuality: #C,
                 sizeCategory: #L,
                 dataClass: #TRANSACTIONAL },
    modelingPattern: #TRANSACTIONAL_ENTITY,
    supportedCapabilities: [#CDS_MODELING_DATA_SOURCE,
                            #SQL_DATA_SOURCE]
}
@AccessControl: {
    authorizationCheck: #CHECK,
    personalData: { blocking: #REQUIRED,
                    blockingIndicator: ['_Customer.IsBusinessPurposeCompleted',
                                        '_ProjectManager.IsBusinessPurposeCompleted',
                                        '_ProjectAccountant.IsBusinessPurposeCompleted',
                                        '_ProjectController.IsBusinessPurposeCompleted',
                                        '_ProjectPartner.IsBusinessPurposeCompleted' ] }
}
@EndUserText.label: 'Engagement Project Assignment To User'
define view I_EngmntProjAssgmtToSessionUsr
  as select from P_EngmntProjWthRolesAsAttrib  as Project
    inner join   I_EngagementProjFinancialPlan as FinancialPlan on Project.EngagementProjectUUID = FinancialPlan.EngagementProjectUUID

  association [1..1] to I_Customer          as _Customer          on $projection.Customer = _Customer.Customer
  association [1..1] to I_BusinessUserBasic as _ProjectManager    on $projection.ProjectManagerExternalID = _ProjectManager.UserID
  association [0..1] to I_BusinessUserBasic as _ProjectAccountant on $projection.ProjectAccountantExternalID = _ProjectAccountant.UserID
  association [0..1] to I_BusinessUserBasic as _ProjectController on $projection.ProjectControllerExternalID = _ProjectController.UserID
  association [0..1] to I_BusinessUserBasic as _ProjectPartner    on $projection.ProjectPartnerExternalID = _ProjectPartner.UserID
{

  key Project.EngagementProjectUUID,
      Project.EngagementProject,
      EngagementProjectName,
      ProjectStartDate,
      ProjectEndDate,
      Customer,
      EngagementProjectServiceOrg,
      EngagementProjectType,
      EngagementProjectCategory,
      EngagementProjectStage,
      ProjectVisibility,
      IsMyProject,
      Currency,
      EngagementProjFinPlanUUID,
      EngmntProjReviewYearPeriod,
      EngagementProjectReviewStatus,
      @Semantics.dateTime:true
      @Semantics.systemDate.lastChangedAt: true
      Project.LastChangeDateTime,

      // For all the records where External id is null or blank {Possible for Controller, Accountant and Partner} we are setting as 'A'.

      // This is required because External id is used on join condition of the Union view.

      // If these fields have null values join condition will fail.

      ProjectManager                                                                                                       as ProjManagerUserID,
      ProjectManagerName,
      ProjectManagerExternalID,

      ProjectAccountant                                                                                                    as ProjAccountantUserID,
      ProjectAccountantName,
      case
      when ProjectAccountantExternalID is null
      then 'A'
      else ProjectAccountantExternalID
      end                                                                                                                  as ProjectAccountantExternalID,

      ProjectController                                                                                                    as ProjControllerUserID,
      ProjectControllerName,
      case
      when ProjectControllerExternalID is null
      then 'A'
      else ProjectControllerExternalID
      end                                                                                                                  as ProjectControllerExternalID,

      Projectpartner                                                                                                       as ProjPartnerUserID,
      ProjectpartnerName                                                                                                   as ProjectPartnerName,
      case
      when ProjectpartnerExternalID is null
      then 'A'
      else ProjectpartnerExternalID
      end                                                                                                                  as ProjectPartnerExternalID,

      cast(concat(substring(CurrentDate, 1, 4), concat('0', substring(CurrentDate, 5, 2))) as /cpd/ss_current_year_period) as CurrentYearPeriod,

      ProjectProfileCode,
      ControllingArea,
      CompanyCode                                                                                                          as EngmntProjectHeaderCompanyCode,
      CostCenter                                                                                                           as EngagementProjectCostCenter,
      ProfitCenter,

      _Customer,
      _ProjectManager,
      _ProjectAccountant,
      _ProjectController,
      _ProjectPartner
}