I_RSHProjectAssignmentTP

DDL: I_RSHPROJECTASSIGNMENTTP SQL: IRSHPROJASGTP Type: view TRANSACTIONAL

Project Assignment TP

I_RSHProjectAssignmentTP is a Transactional CDS View that provides data about "Project Assignment TP" in SAP S/4HANA. It reads from 1 data source (I_RSHProjectAssignment) and exposes 35 fields with key field ProjAssignmentUUID. It has 5 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_RSHProjectAssignment I_RSHProjectAssignment from

Associations (5)

CardinalityTargetAliasCondition
[0..*] I_RSHProjectAssignmentPerDayTP _ProjectAssignmentPerDay _ProjectAssignmentPerDay.ProjAssignmentUUID = $projection.ProjAssignmentUUID
[0..*] I_RSHProjectAssignmentKPITP _ProjectAssignmentKPI _ProjectAssignmentKPI.ProjAssignmentUUID = $projection.ProjAssignmentUUID
[0..*] I_RSHProjectAssignmentCapKPITP _ProjectAssignmentCapKPI _ProjectAssignmentCapKPI.ProjAssignmentUUID = $projection.ProjAssignmentUUID
[0..*] I_RSHProjectAssgmtPerWeekTP _ProjectAssignmentPerWeek _ProjectAssignmentPerWeek.ProjAssignmentUUID = $projection.ProjAssignmentUUID
[0..*] I_RSHProjectAssgmtPerMonthTP _ProjectAssignmentPerMonth _ProjectAssignmentPerMonth.ProjAssignmentUUID = $projection.ProjAssignmentUUID

Annotations (26)

NameValueLevelField
AbapCatalog.sqlViewName IRSHPROJASGTP view
AccessControl.authorizationCheck #NOT_REQUIRED view
EndUserText.label Project Assignment TP view
Metadata.allowExtensions true view
Search.searchable false view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.transactionalProcessingEnabled true view
ObjectModel.writeActivePersistence RSH_D_PROJASG view
ObjectModel.writeDraftPersistence RSH_D_PROJASG_D view
ObjectModel.lifecycle.enqueue.expiryBehavior #RELATIVE_TO_LAST_CHANGE view
ObjectModel.lifecycle.enqueue.expiryInterval PT1M view
ObjectModel.lifecycle.processing.expiryBehavior #RELATIVE_TO_LAST_CHANGE view
ObjectModel.lifecycle.processing.expiryInterval PT1M view
ObjectModel.lifecycle.draft.expiryInterval P1D view
ObjectModel.entityChangeStateId ProjAssignmentLastChangedAt view
ObjectModel.draftEnabled true view
ObjectModel.compositionRoot true view
ObjectModel.createEnabled true view
ObjectModel.updateEnabled true view
ObjectModel.deleteEnabled true view
ObjectModel.semanticKey ProjAssignmentUUID view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view

Fields (35)

KeyFieldSource TableSource FieldDescription
KEY ProjAssignmentUUID ProjAssignmentUUID
EmploymentInternalID EmploymentInternalID
ResourceDemandUUID ResourceDemandUUID
SourceOfSupply SourceOfSupply
SourceOfDraftCreationInRSH SourceOfDraftCreationInRSH
ProjAssignmentDistributionRule ProjAssignmentDistributionRule
ProjAssignmentStartDate ProjAssignmentStartDate
ProjAssignmentEndDate ProjAssignmentEndDate
ProjAssignmentTotalHours ProjAssignmentTotalHours
ProjAssignmentHoursPerDay ProjAssignmentHoursPerDay
ProjAssignmentUtilization ProjAssignmentUtilization
ProjAssignDayCapacityStartDate
ProjAssignDayCapacityEndDate
ProjAssignIsDistrToSpecifDays ProjAssignIsDistrToSpecifDays
ProjAssignIsDistrToMonday ProjAssignIsDistrToMonday
ProjAssignIsDistrToTuesday ProjAssignIsDistrToTuesday
ProjAssignIsDistrToWednesday ProjAssignIsDistrToWednesday
ProjAssignIsDistrToThursday ProjAssignIsDistrToThursday
ProjAssignIsDistrToFriday ProjAssignIsDistrToFriday
ProjAssignIsDistrToSaturday ProjAssignIsDistrToSaturday
ProjAssignIsDistrToSunday ProjAssignIsDistrToSunday
ProjAssignmentCreatedBy ProjAssignmentCreatedBy
ProjAssignmentCreatedAt ProjAssignmentCreatedAt
ProjAssignmentLastChangedBy ProjAssignmentLastChangedBy
ProjAssignmentLastChangedAt ProjAssignmentLastChangedAt
ProjAssignmentLifeCycle ProjAssignmentLifeCycle
EmployeeRequestOpenDuration EmployeeRequestOpenDuration
ProjectLastChangedDateTime ProjectLastChangedDateTime
EmployeeUtilLvlOverbooked
EmployeeUtilLvlFreeCapacity
_ProjectAssignmentPerDay _ProjectAssignmentPerDay
_ProjectAssignmentKPI _ProjectAssignmentKPI
_ProjectAssignmentCapKPI _ProjectAssignmentCapKPI
_ProjectAssignmentPerWeek _ProjectAssignmentPerWeek
_ProjectAssignmentPerMonth _ProjectAssignmentPerMonth
@AbapCatalog.sqlViewName: 'IRSHPROJASGTP'
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Project Assignment TP'
@Metadata.allowExtensions: true
@Search.searchable: false
@ClientHandling.algorithm: #SESSION_VARIABLE

@ObjectModel: {
    transactionalProcessingEnabled: true,
    writeActivePersistence: 'RSH_D_PROJASG',
    writeDraftPersistence: 'RSH_D_PROJASG_D',

    lifecycle.enqueue.expiryBehavior: #RELATIVE_TO_LAST_CHANGE,
    lifecycle.enqueue.expiryInterval: 'PT1M', //Lock shall expire between 1 to 5 minutes! The draft lifecycle handler runs every 5 minutes!

    lifecycle.processing.expiryBehavior: #RELATIVE_TO_LAST_CHANGE,
    lifecycle.processing.expiryInterval: 'PT1M', //Draft shall expire between 1 to 5 minutes too!


    lifecycle.draft.expiryInterval: 'P1D', // Any unused draft shall be deleted after 1 day!


    entityChangeStateId: 'ProjAssignmentLastChangedAt',
    draftEnabled: true,
    compositionRoot: true,
    createEnabled: true, updateEnabled: true, deleteEnabled: true,
    semanticKey: 'ProjAssignmentUUID',
    usageType: { dataClass: #TRANSACTIONAL, serviceQuality: #D, sizeCategory: #XL }
    }

@VDM.viewType: #TRANSACTIONAL
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API

/*
CONTRACT**********************************************************************************************************************

Name:                       Assignment transaction processing
Specification:              The view creates the draft enabled BO.
Requires:                   NA
Ensures:                    The draft enabled business object is created.
Owners:                     PSP
Contributors:               CF, PSP, RY
Unit Test required Y/N:     Y
Additional comments         None

END OF CONTRACT***************************************************************************************************************
*/

define view I_RSHProjectAssignmentTP
  as select from I_RSHProjectAssignment

  association [0..*] to I_RSHProjectAssignmentPerDayTP as _ProjectAssignmentPerDay   on _ProjectAssignmentPerDay.ProjAssignmentUUID = $projection.ProjAssignmentUUID

  association [0..*] to I_RSHProjectAssignmentKPITP    as _ProjectAssignmentKPI      on _ProjectAssignmentKPI.ProjAssignmentUUID = $projection.ProjAssignmentUUID

  association [0..*] to I_RSHProjectAssignmentCapKPITP as _ProjectAssignmentCapKPI   on _ProjectAssignmentCapKPI.ProjAssignmentUUID = $projection.ProjAssignmentUUID

  association [0..*] to I_RSHProjectAssgmtPerWeekTP as _ProjectAssignmentPerWeek  on _ProjectAssignmentPerWeek.ProjAssignmentUUID = $projection.ProjAssignmentUUID

  association [0..*] to I_RSHProjectAssgmtPerMonthTP   as _ProjectAssignmentPerMonth on _ProjectAssignmentPerMonth.ProjAssignmentUUID = $projection.ProjAssignmentUUID

{
  key ProjAssignmentUUID,
      EmploymentInternalID,
      ResourceDemandUUID,
      SourceOfSupply,
      SourceOfDraftCreationInRSH,
      
      ProjAssignmentDistributionRule,
      ProjAssignmentStartDate,
      ProjAssignmentEndDate,
      ProjAssignmentTotalHours,
      ProjAssignmentHoursPerDay,
      ProjAssignmentUtilization,
      dats_add_days(cast( concat( left(ProjAssignmentStartDate, 6 ), '01') as dats), -36, 'FAIL')  as ProjAssignDayCapacityStartDate,
      dats_add_days(cast( concat( left(ProjAssignmentStartDate, 6 ), '01') as dats), 67, 'FAIL')   as ProjAssignDayCapacityEndDate,
      ProjAssignIsDistrToSpecifDays,
      ProjAssignIsDistrToMonday,
      ProjAssignIsDistrToTuesday,
      ProjAssignIsDistrToWednesday,
      ProjAssignIsDistrToThursday,
      ProjAssignIsDistrToFriday,
      ProjAssignIsDistrToSaturday,
      ProjAssignIsDistrToSunday,
      @Semantics.user.createdBy: true
      ProjAssignmentCreatedBy,
      @Semantics.systemDateTime.createdAt: true
      ProjAssignmentCreatedAt,
      @Semantics.user.lastChangedBy: true
      ProjAssignmentLastChangedBy,
      @Semantics.systemDateTime.lastChangedAt: true
      ProjAssignmentLastChangedAt,
      ProjAssignmentLifeCycle,
      //Passback the field to be used in the assignemnt structure

      EmployeeRequestOpenDuration,
      ProjectLastChangedDateTime,

      cast( EmployeeUtilLvlOverbooked as rsh_ps_overbooked_threshold )                             as EmployeeUtilLvlOverbooked,
      cast( EmployeeUtilLvlFreeCapacity as rsh_ps_free_capacity_threshold )                        as EmployeeUtilLvlFreeCapacity,


      /* Associations */
      //_Employment,

      @ObjectModel.association.type: #TO_COMPOSITION_CHILD
      _ProjectAssignmentPerDay,
      @ObjectModel.association.type: #TO_COMPOSITION_CHILD
      _ProjectAssignmentKPI,
      @ObjectModel.association.type: #TO_COMPOSITION_CHILD
      _ProjectAssignmentCapKPI,
      @ObjectModel.association.type: #TO_COMPOSITION_CHILD
      _ProjectAssignmentPerWeek,
      @ObjectModel.association.type: #TO_COMPOSITION_CHILD
      _ProjectAssignmentPerMonth
}