R_ManagerContactCard

DDL: R_MANAGERCONTACTCARD Type: view_entity COMPOSITE Package: ODATA_CA_BUM_WF

Manager Details

R_ManagerContactCard is a Composite CDS View that provides data about "Manager Details" in SAP S/4HANA. It reads from 2 data sources (R_WorkAssignmentBP, I_BusinessPartner) and exposes 9 fields with key fields ManagerAssignmentExternalID, CompanyCodeendasCompanyCode. It has 1 association to related views. It is exposed through 2 OData services (UI_WORKER_FACTSHEET, UI_WORKFORCE_MANAGE). Part of development package ODATA_CA_BUM_WF.

Data Sources (2)

SourceAliasJoin Type
R_WorkAssignmentBP _BuPaIdentification inner
I_BusinessPartner _WorkAssignmentBP inner

Associations (1)

CardinalityTargetAliasCondition
[1..*] I_WorkforceAssignmentDetails _AssignmentDetails _AssignmentDetails.WorkforceAssignment = _AssignmentKeyMap.WorkforceAssignment and _AssignmentDetails.WorkforceAssignmentStatus = '1'

Annotations (9)

NameValueLevelField
AccessControl.authorizationCheck #NOT_REQUIRED view
Metadata.ignorePropagatedAnnotations true view
Consumption.ranked true view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #S view
ObjectModel.usageType.dataClass #MIXED view
EndUserText.label Manager Details view

OData Services (2)

ServiceBindingVersionContractRelease
UI_WORKER_FACTSHEET UI_WORKER_FACTSHEET V4 C1 NOT_RELEASED
UI_WORKFORCE_MANAGE UI_WORKFORCE_MANAGE V4 C1 NOT_RELEASED

Fields (9)

KeyFieldSource TableSource FieldDescription
KEY ManagerAssignmentExternalID _AssignmentKeyMap WorkforcePersonUserID
KEY CompanyCodeendasCompanyCode
FullName I_BusinessPartner BusinessPartnerFullName
FirstName I_BusinessPartner FirstName
LastName I_BusinessPartner LastName
EmailAddress _WorkplaceAddress DefaultEmailAddress
MobilePhoneNumber _WorkplaceAddress MobilePhoneNumber
PhoneNumber _WorkplaceAddress PhoneNumber
WorkAssignment _AssignmentKeyMap WorkforceAssignment
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@Metadata.ignorePropagatedAnnotations: true
@Consumption.ranked:true
//@ObjectModel.representativeKey:'ManagerAssignmentExternalID'

//@ObjectModel.representativeKey:'ManagerAssignmentExternalID'

//@ObjectModel.alternativeKey:'CompanyCode'

//@ObjectModel.alternativeKey: [{id: 'ManagerAssignmentExternalID'}, {id: 'CompanyCode'}]'

//@ObjectModel.foreignKey.association 

@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #SAP_INTERNAL_API
}
@ObjectModel.usageType:{
  serviceQuality: #X,
  sizeCategory: #S,
  dataClass: #MIXED
}
@EndUserText.label: 'Manager Details'
define view entity R_ManagerContactCard
  as select distinct from   R_WorkAssignmentKeyMap       as _AssignmentKeyMap
  //Get the Employment BP (for both old and new BP Models)

    inner join              R_WorkAssignmentBP           as _BuPaIdentification       on _BuPaIdentification.WorkforceAssignment = _AssignmentKeyMap.WorkforceAssignment
    inner join              I_BusinessPartner            as _WorkAssignmentBP         on _WorkAssignmentBP.BusinessPartner = _BuPaIdentification.WorkAssignmentBusinessPartner
    left outer to many join I_WorkforceAssignmentDetails as _AssignmentDetailsManager on  _AssignmentDetailsManager.ManagerAssignmentExternalID = _AssignmentKeyMap.WorkforcePersonUserID
                                                                                      and _AssignmentDetailsManager.WorkforceAssignmentStatus   = '1'
    left outer to one join  I_WorkplaceAddress           as _WorkplaceAddress         on _WorkplaceAddress.BusinessPartnerUUID = _WorkAssignmentBP.BusinessPartnerUUID
  association [1..*] to I_WorkforceAssignmentDetails as _AssignmentDetails on  _AssignmentDetails.WorkforceAssignment       = _AssignmentKeyMap.WorkforceAssignment
                                                                           and _AssignmentDetails.WorkforceAssignmentStatus = '1'
{

          @UI.facet: [ {
                          purpose:    #QUICK_VIEW,
                          type:       #FIELDGROUP_REFERENCE,
                          targetQualifier: 'ManagerContactCard',
                          label: 'Manager Details'
                        }
                      ]

          @ObjectModel.text.element: ['FullName']
          @UI.textArrangement: #TEXT_FIRST
          @EndUserText: { label: 'Manager', quickInfo: 'ID' }
          @UI.fieldGroup: [{ qualifier:'ManagerContactCard', position: 10}]
  key     _AssignmentKeyMap.WorkforcePersonUserID   as ManagerAssignmentExternalID,
          @UI.hidden: true
  key     case
            when _AssignmentDetailsManager.CompanyCode  is not initial
            then _AssignmentDetailsManager.CompanyCode
            else _AssignmentDetails.CompanyCode
          end                                       as CompanyCode,
          @EndUserText: { label: 'Full Name' }
          @Semantics: {
            text: true,
            name.fullName: true
                      }
          @UI.fieldGroup: [{ qualifier:'ManagerContactCard', position: 20}]
          _WorkAssignmentBP.BusinessPartnerFullName as FullName,
          @UI.fieldGroup: [{ qualifier:'ManagerContactCard', position: 30}]
          @Semantics.text
          @Semantics.name: { givenName: true }
          @EndUserText: { label: 'First Name' }
          _WorkAssignmentBP.FirstName               as FirstName,
          @UI.fieldGroup: [{ qualifier:'ManagerContactCard', position: 40}]
          @Semantics.text
          @Semantics.name: { familyName: true }
          @EndUserText: { label: 'Last Name' }
          _WorkAssignmentBP.LastName                as LastName,
          @UI.fieldGroup: [{ qualifier:'ManagerContactCard', position: 50}]
          @Semantics.eMail.address: true
          @Semantics:{ eMail.type:  [ #WORK ] }
          _WorkplaceAddress.DefaultEmailAddress     as EmailAddress,
          @Semantics: { telephone.type:  [ #CELL ] }
          @UI.fieldGroup: [{ qualifier:'ManagerContactCard', position: 60}]
          @EndUserText: { label: 'Mobile Phone Number' }
          _WorkplaceAddress.MobilePhoneNumber       as MobilePhoneNumber,
          @Semantics: { telephone.type:  [ #WORK, #PREF ] }
          @UI.fieldGroup: [{ qualifier:'ManagerContactCard', position: 70}]
          @EndUserText: { label: 'Phone Number' }
          _WorkplaceAddress.PhoneNumber             as PhoneNumber,
          //       @UI.hidden: true

          //       case

          //        when _AssignmentDetailsManager.CompanyCode  is not initial

          //        then _AssignmentDetailsManager.CompanyCode

          //        else _AssignmentDetails.CompanyCode

          //        end                                      as CompanyCode,

          @UI.hidden: true
          _AssignmentKeyMap.WorkforceAssignment     as WorkAssignment
}
where
  _AssignmentKeyMap.WorkforcePersonUserID is not initial