I_WorkforcePersonDEX

DDL: I_WORKFORCEPERSONDEX Type: view_entity COMPOSITE

Workforce Person

I_WorkforcePersonDEX is a Composite CDS View that provides data about "Workforce Person" in SAP S/4HANA. It reads from 1 data source (wfd_d_keymap) and exposes 14 fields with key field BusinessPartner. It has 3 associations to related views.

Data Sources (1)

SourceAliasJoin Type
wfd_d_keymap keymap inner

Associations (3)

CardinalityTargetAliasCondition
[0..*] I_ServicePerformerToSuplr _ServicePerformerToSupplier $projection.BusinessPartner = _ServicePerformerToSupplier.Person
[0..1] I_WorkplaceAddress _WorkplaceAddress bp.BusinessPartnerUUID = _WorkplaceAddress.BusinessPartnerUUID
[1..*] I_WorkAssgmtDetsDEX _WorkAssgmtDets $projection.BusinessPartner = _WorkAssgmtDets.BusinessPartner

Annotations (11)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
VDM.viewType #COMPOSITE view
Analytics.dataExtraction.enabled true view
ObjectModel.modelingPattern #NONE view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.sapObjectNodeType.name WorkforcePerson view
Metadata.ignorePropagatedAnnotations true view
EndUserText.label Workforce Person view

Fields (14)

KeyFieldSource TableSource FieldDescription
KEY BusinessPartner bp BusinessPartner
FirstName bp FirstName
LastName bp LastName
MiddleName bp MiddleName
PersonFullName bp PersonFullName
BirthName bp BusinessPartnerBirthName
Initials bp Initials
NativePreferredLanguage bp CorrespondenceLanguage
LastNamePrefix bp LastNamePrefix
BusinessPartnerUUID bp BusinessPartnerUUID
UserID user UserID
_ServicePerformerToSupplier _ServicePerformerToSupplier
_WorkplaceAddress _WorkplaceAddress
_WorkAssgmtDets _WorkAssgmtDets
@AccessControl.authorizationCheck:#MANDATORY
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED

@VDM.viewType: #COMPOSITE
@Analytics.dataExtraction: {
            enabled: true,
            delta.changeDataCapture:
    {

            mapping:[

                  {
                    table: 'but000', role: #MAIN,
                    viewElement: ['BusinessPartner'],
                    tableElement: ['partner']
                  },
                  {
                    table: 'but0id', role: #LEFT_OUTER_TO_ONE_JOIN,
                    viewElement: ['BusinessPartner', 'BPIdentificationType', 'PersonExternalID'],
                    tableElement: ['partner', 'type', 'idnumber']
                  },
                  {
                    table: 'usr21', role: #LEFT_OUTER_TO_ONE_JOIN,
                    viewElement: ['UserID'],
                    tableElement: ['bname']
                }
            ]
        }
    }

@ObjectModel.supportedCapabilities:[ #EXTRACTION_DATA_SOURCE ]
@ObjectModel.modelingPattern: #NONE
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #TRANSACTIONAL
@ObjectModel.sapObjectNodeType.name:'WorkforcePerson'

@Metadata.ignorePropagatedAnnotations: true
@EndUserText.label: 'Workforce Person'

define view entity I_WorkforcePersonDEX
  as select distinct from  I_BusinessPartner    as bp
    inner join             wfd_d_keymap         as keymap  on bp.BusinessPartner = keymap.business_partner_id
    left outer to one join        I_BuPaIdentification as BPIdEmp on
      ( BPIdEmp.BusinessPartner        = keymap.business_partner_id
      and BPIdEmp.BPIdentificationType = 'HCM001' ) // HCM001 - Employee ID

    left outer to one join        I_BuPaIdentification as BPIdCon on
      ( BPIdCon.BusinessPartner        = keymap.business_partner_id
      and BPIdCon.BPIdentificationType = 'HCM030' ) // HCM030 - Service Agent

    left outer to one join I_User               as user    on user.BusinessPartnerUUID = bp.BusinessPartnerUUID
  association [0..*] to I_ServicePerformerToSuplr as _ServicePerformerToSupplier on $projection.BusinessPartner = _ServicePerformerToSupplier.Person
  association [0..1] to I_WorkplaceAddress        as _WorkplaceAddress           on bp.BusinessPartnerUUID = _WorkplaceAddress.BusinessPartnerUUID
  association [1..*] to I_WorkAssgmtDetsDEX       as _WorkAssgmtDets             on $projection.BusinessPartner = _WorkAssgmtDets.BusinessPartner

{
  key bp.BusinessPartner          as BusinessPartner,

      case  
      when BPIdEmp.BPIdentificationNumber <> ' ' 
        then BPIdEmp.BPIdentificationNumber
      else
        BPIdCon.BPIdentificationNumber
      end                         as PersonExternalID,

      case  
      when BPIdEmp.BPIdentificationType <> ' '
        then BPIdEmp.BPIdentificationType
      else
        BPIdCon.BPIdentificationType
      end                         as BPIdentificationType,

      bp.FirstName                as FirstName,
      bp.LastName                 as LastName,
      bp.MiddleName               as MiddleName,
      bp.PersonFullName           as PersonFullName,
      bp.BusinessPartnerBirthName as BirthName,
      bp.Initials                 as Initials,
      bp.CorrespondenceLanguage   as NativePreferredLanguage,
      bp.LastNamePrefix           as LastNamePrefix,
      bp.BusinessPartnerUUID      as BusinessPartnerUUID,
      user.UserID                 as UserID,
      _ServicePerformerToSupplier,
      _WorkplaceAddress,
      _WorkAssgmtDets

}
where
  keymap.block_ind = ''
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUPAIDENTIFICATION",
"I_BUSINESSPARTNER",
"I_USER",
"WFD_D_KEYMAP"
],
"ASSOCIATED":
[
"I_SERVICEPERFORMERTOSUPLR",
"I_WORKASSGMTDETSDEX",
"I_WORKPLACEADDRESS"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/