P_InactiveWorkAssignment

DDL: P_INACTIVEWORKASSIGNMENT Type: view_entity COMPOSITE Package: VDM_WFD_WORK_FORCE

Work Assignment Status of a Worker

P_InactiveWorkAssignment is a Composite CDS View that provides data about "Work Assignment Status of a Worker" in SAP S/4HANA. It reads from 3 data sources (I_WorkAssignmentDetail_1, I_BusinessPartner, I_WorkforcePersonKeyMap) and exposes 3 fields with key field BusinessPartnerUUID. Part of development package VDM_WFD_WORK_FORCE.

Data Sources (3)

SourceAliasJoin Type
I_WorkAssignmentDetail_1 assgmtdets inner
I_BusinessPartner bp inner
I_WorkforcePersonKeyMap keymap from

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
VDM.private true view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
Metadata.ignorePropagatedAnnotations true view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view

Fields (3)

KeyFieldSource TableSource FieldDescription
KEY BusinessPartnerUUID I_BusinessPartner BusinessPartnerUUID
WorkforceAssignmentStatus
IsBlocked
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #MANDATORY
@VDM.private: true
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@Metadata.ignorePropagatedAnnotations: true
@VDM: {
  viewType: #COMPOSITE
}
@ObjectModel.usageType:{
  serviceQuality: #C,
  sizeCategory: #XL,
  dataClass: #MIXED
}
@Consumption.dbHints:[ 'USE_HEX_PLAN' ]
//............................................................................................................................

// This CDS view is meant for private consumption in Worker Overview ONLY ---- Do not use it for for other applications

//............................................................................................................................


define view entity P_InactiveWorkAssignment
  as select from   I_WorkforcePersonKeyMap as keymap   
    inner join I_BusinessPartner        as bp on bp.BusinessPartner = keymap.BusinessPartner  
    inner join I_WorkAssignmentDetail_1 as assgmtdets on assgmtdets.WorkforceAssignment = keymap.WorkAssignment
                                                       and(
                                                         (
                                                           assgmtdets.WorkforceAssgmtStartDate        <= $session.system_date
                                                           and assgmtdets.WorkforceAssgmtEndDate      >= $session.system_date
                                                         )
                                                         or(
                                                           assgmtdets.WorkforceAssgmtStartDate        >= $session.system_date
                                                         ) 
                                                       )


{

  key bp.BusinessPartnerUUID,
      max(assgmtdets.WorkforceAssignmentStatus) as WorkforceAssignmentStatus,
      @Semantics.booleanIndicator: true
      min(assgmtdets.IsBlocked)         as IsBlocked
}
group by
  bp.BusinessPartnerUUID