R_WorkAssignmentDetail

DDL: R_WORKASSIGNMENTDETAIL Type: view_entity COMPOSITE Package: WFD_WORKER_FACTSHEET_BL

Details for Work Assignment

R_WorkAssignmentDetail is a Composite CDS View that provides data about "Details for Work Assignment" in SAP S/4HANA. It reads from 3 data sources (R_WorkAssignmentDetailsAll, R_WorkAssignmentKeyMap, R_WorkAssignmentBP) and exposes 26 fields with key fields WorkAssignmentUUID, StartDate. It has 7 associations to related views. Part of development package WFD_WORKER_FACTSHEET_BL.

Data Sources (3)

SourceAliasJoin Type
R_WorkAssignmentDetailsAll _AssignmentDetails from
R_WorkAssignmentKeyMap _AssignmentKeyMap inner
R_WorkAssignmentBP _BuPaIdentification inner

Associations (7)

CardinalityTargetAliasCondition
[1..1] I_BusinessPartner _WorkAssignmentBP _WorkAssignmentBP.BusinessPartner = _BuPaIdentification.WorkAssignmentBusinessPartner
[1..1] I_BusinessPartner _WorkforcePersonBP _WorkforcePersonBP.BusinessPartner = _AssignmentKeyMap.BusinessPartner
[0..1] R_ManagerWorkAssignmentVH _ManagerWorkAssignmentVH $projection.ManagerEmployee = _ManagerWorkAssignmentVH.ManagerAssignmentExternalID and $projection.CompanyCode = _ManagerWorkAssignmentVH.CompanyCode and $projection.ManagerEmployee is not initial
[0..1] I_CostCenter _CostCenterText $projection.CompanyCode = _CostCenterText.CompanyCode and $projection.CostCenter = _CostCenterText.CostCenter and _CostCenterText.ValidityStartDate <= _AssignmentDetails.EndDate and _CostCenterText.ValidityEndDate >= _AssignmentDetails.EndDate
[0..1] I_CompanyCode _CompanyCodeText $projection.CompanyCode = _CompanyCodeText.CompanyCode
[0..1] I_WorkforceAssignmentStatus _WorkforceAssignmentStatus $projection.WorkforceAssignmentStatus = _WorkforceAssignmentStatus.WorkforceAssignmentStatus
[1..1] R_WorkforcePersonFactSheet _WorkforcePerson $projection.PersonUUID = _WorkforcePerson.PersonUUID

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Details for Work Assignment view
Metadata.ignorePropagatedAnnotations true view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view

Fields (26)

KeyFieldSource TableSource FieldDescription
KEY WorkAssignmentUUID _WorkAssignmentBP BusinessPartnerUUID
KEY StartDate R_WorkAssignmentDetailsAll StartDate
EndDate R_WorkAssignmentDetailsAll EndDate
WorkAssignment R_WorkAssignmentDetailsAll WorkAssignment
WorkAssignmentBusinessPartner R_WorkAssignmentBP WorkAssignmentBusinessPartner
PersonUUID _WorkforcePersonBP BusinessPartnerUUID
CompanyCode R_WorkAssignmentDetailsAll CompanyCode
CostCenter R_WorkAssignmentDetailsAll CostCenter
WorkforcePersonJobCode R_WorkAssignmentDetailsAll WorkforcePersonJobCode
WorkforcePersonJobTitle R_WorkAssignmentDetailsAll WorkforcePersonJobTitle
WorkforceAssignmentIsPrimary
ManagerAssignmentID R_WorkAssignmentDetailsAll ManagerAssignmentID
WeeklyWorkingDays R_WorkAssignmentDetailsAll WeeklyWorkingDays
WeeklyWorkingHours R_WorkAssignmentDetailsAll WeeklyWorkingHours
EmploymentPercent R_WorkAssignmentDetailsAll EmploymentPercent
WorkforceAssignmentStatus R_WorkAssignmentDetailsAll WorkforceAssignmentStatus
IsBlocked R_WorkAssignmentDetailsAll IsBlocked
ManagerEmployee R_WorkAssignmentDetailsAll ManagerAssignmentExternalID
ControllingArea R_WorkAssignmentDetailsAll ControllingArea
EmploymentPercentageUnit
_WorkAssignment _WorkAssignment
_WorkforcePerson _WorkforcePerson
_ManagerWorkAssignmentVH _ManagerWorkAssignmentVH
_CostCenterText _CostCenterText
_CompanyCodeText _CompanyCodeText
_WorkforceAssignmentStatus _WorkforceAssignmentStatus
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Details for Work Assignment'
@Metadata.ignorePropagatedAnnotations: true
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #SAP_INTERNAL_API
}

@ObjectModel.usageType:{
  serviceQuality: #C,
  sizeCategory: #XL,
  dataClass: #MIXED
}
define view entity R_WorkAssignmentDetail
  as select from R_WorkAssignmentDetailsAll as _AssignmentDetails
//  as select from I_WorkAssignmentDetail_1 as _AssignmentDetails

    inner join   R_WorkAssignmentBP       as _BuPaIdentification on _BuPaIdentification.WorkforceAssignment = _AssignmentDetails.WorkAssignment   //WorkforceAssignment

  //    inner join   R_WorkAssgmtsBPIdentification as _BuPaIdentification on _BuPaIdentification.WorkforceAssignment = _AssignmentDetails.WorkforceAssignment

    inner join   R_WorkAssignmentKeyMap   as _AssignmentKeyMap   on _AssignmentKeyMap.WorkforceAssignment = _AssignmentDetails.WorkAssignment     //WorkforceAssignment

  //    inner join   R_BPUsrRole                   as _BPUserRole         on  _BPUserRole.BusinessPartner         = _BuPaIdentification.BusinessPartner

  //                                                                      and _BPUserRole.BPRoleCategoryUsageCode = _BuPaIdentification.BPRoleCategoryUsageCode

  //                                                                        and _BPUserRole.BPIdentificationCategory = _BuPaIdentification.BPIdentificationType

  association [1..1] to I_BusinessPartner           as _WorkAssignmentBP          on  _WorkAssignmentBP.BusinessPartner = _BuPaIdentification.WorkAssignmentBusinessPartner
  association [1..1] to I_BusinessPartner           as _WorkforcePersonBP         on  _WorkforcePersonBP.BusinessPartner = _AssignmentKeyMap.BusinessPartner
  association [0..1] to R_ManagerWorkAssignmentVH   as _ManagerWorkAssignmentVH   on  $projection.ManagerEmployee = _ManagerWorkAssignmentVH.ManagerAssignmentExternalID
                                                                                  and $projection.CompanyCode     = _ManagerWorkAssignmentVH.CompanyCode
  //                                                                                  and $projection.ManagerAssignmentID = _ManagerWorkAssignmentVH.WorkAssignment

                                                                                  and $projection.ManagerEmployee is not initial
  association [0..1] to I_CostCenter                as _CostCenterText            on  $projection.CompanyCode           =  _CostCenterText.CompanyCode
                                                                                  and $projection.CostCenter            =  _CostCenterText.CostCenter
                                                                                 // and $projection.ControllingArea = _CostCenterText.ControllingArea

                                                                               //   and _CostCenterText.ValidityEndDate   = _AssignmentDetails.WorkforceAssgmtEndDate

                                                                                 and _CostCenterText.ValidityStartDate <= _AssignmentDetails.EndDate
                                                                                  and _CostCenterText.ValidityEndDate   >= _AssignmentDetails.EndDate
  association [0..1] to I_CompanyCode               as _CompanyCodeText           on  $projection.CompanyCode = _CompanyCodeText.CompanyCode
  association [0..1] to I_WorkforceAssignmentStatus as _WorkforceAssignmentStatus on  $projection.WorkforceAssignmentStatus = _WorkforceAssignmentStatus.WorkforceAssignmentStatus
  association [1..1] to R_WorkforcePersonFactSheet  as _WorkforcePerson           on  $projection.PersonUUID = _WorkforcePerson.PersonUUID
  association        to parent R_WorkAssignment     as _WorkAssignment            on  $projection.WorkAssignmentUUID = _WorkAssignment.WorkAssignmentUUID
                                                                                  and $projection.WorkAssignment     = _WorkAssignment.WorkAssignment
  // pernr addition


{
  key   _WorkAssignmentBP.BusinessPartnerUUID                                             as WorkAssignmentUUID,
  key   _AssignmentDetails.StartDate                                                      as StartDate,
        _AssignmentDetails.EndDate                                                        as EndDate,
        _AssignmentDetails.WorkAssignment                                                 as WorkAssignment,
        _BuPaIdentification.WorkAssignmentBusinessPartner                                 as WorkAssignmentBusinessPartner,
        _WorkforcePersonBP.BusinessPartnerUUID                                            as PersonUUID,
        _AssignmentDetails.CompanyCode                                                    as CompanyCode,
        _AssignmentDetails.CostCenter                                                     as CostCenter,
        _AssignmentDetails.WorkforcePersonJobCode                                         as WorkforcePersonJobCode,
        _AssignmentDetails.WorkforcePersonJobTitle                                        as WorkforcePersonJobTitle,
        cast ( _AssignmentDetails.WorkforceAssignmentIsPrimary as xfeld preserving type ) as WorkforceAssignmentIsPrimary,
        _AssignmentDetails.ManagerAssignmentID                                            as ManagerAssignmentID,
        _AssignmentDetails.WeeklyWorkingDays                                              as WeeklyWorkingDays,
        _AssignmentDetails.WeeklyWorkingHours                                             as WeeklyWorkingHours,
        _AssignmentDetails.EmploymentPercent                                              as EmploymentPercent,
        
        //        cast( '%' as percentageunit_kk )                                                  as EmploymentPercentageUnit,

        _AssignmentDetails.WorkforceAssignmentStatus                                      as WorkforceAssignmentStatus,
        _AssignmentDetails.IsBlocked                                                      as IsBlocked,
        @Consumption.valueHelp:'_ManagerWorkAssignmentVH'
        _AssignmentDetails.ManagerAssignmentExternalID                                    as ManagerEmployee,
         _AssignmentDetails.ControllingArea,
        //        _AssignmentDetails.ManagerAssignmentExternalID                                                         as Manager,

        //        concat( '#Worker-displayFactSheet?PersonExternalID=', _AssignmentDetails.ManagerAssignmentExternalID ) as ManagerURLTxt,

//        case

//        when _AssignmentDetails.ManagerAssignmentID is not initial

//        then

//        concat( '#Worker-displayFactSheet?PersonExternalID=', _AssignmentDetails.ManagerAssignmentExternalID )

//

//        else null

//        end                                                                               as ManagerURLTxt,

        cast('%' as qprozent)                                                             as EmploymentPercentageUnit,
     
     //now, manager full name is virtual element in C view

        //        case

        //        when _AssignmentDetails.ManagerAssignmentID = '00000000' or _AssignmentDetails.ManagerAssignmentID is initial then 'No Manager'

        //        else _ManagerWorkAssignmentVH.FullName

                //end                                                                               as ManagerFullName,



        _WorkAssignment,
        _WorkforcePerson,
        _ManagerWorkAssignmentVH,
        _CostCenterText,
        _CompanyCodeText,
        //                _BPUserRole,

        _WorkforceAssignmentStatus
}
//where

  //        _AssignmentDetails.WorkforceAssgmtEndDate   <> '00000000'

  //  and   _AssignmentDetails.WorkforceAssgmtStartDate <> '00000000'

  //  and   not(

  //      _AssignmentDetails.WorkforceAssgmtStartDate   <  _BPUserRole.BPUsrRoleValidFromDate

  //      and _AssignmentDetails.CompanyCode            is initial

  //    )

  //  _AssignmentDetails.CompanyCode is not initial and _AssignmentDetails.WrkAssgmtIsTechnicalInactive is initial