I_PersWrkAgrmtManagerForKeyDte

DDL: I_PERSWRKAGRMTMANAGERFORKEYDTE SQL: IPERSWRKAGRMTMGR Type: view COMPOSITE Package: VDM_SHCM_EMPLOYEE_V2

Retrieve manager for given date

I_PersWrkAgrmtManagerForKeyDte is a Composite CDS View (Dimension) that provides data about "Retrieve manager for given date" in SAP S/4HANA. It reads from 1 data source (I_PersWrkAgrmtPosDet) and exposes 6 fields with key fields PersonWorkAgreement, KeyDate, ManagerPersonWorkAgreement. It has 2 associations to related views. Part of development package VDM_SHCM_EMPLOYEE_V2.

Data Sources (1)

SourceAliasJoin Type
I_PersWrkAgrmtPosDet perswrkagrmtposdet from

Parameters (1)

NameTypeDefault
P_KeyDate vdm_v_key_date

Associations (2)

CardinalityTargetAliasCondition
[1..1] I_PersonWorkAgreement _ManagerPersonWorkAgreement _ManagerPersonWorkAgreement.PersonWorkAgreement = $projection.ManagerPersonWorkAgreement
[1..1] I_PersonWorkAgreement_1 _ManagerPersonWorkAgreement_1 _ManagerPersonWorkAgreement_1.PersonWorkAgreement = $projection.ManagerPersonWorkAgreement

Annotations (13)

NameValueLevelField
AbapCatalog.sqlViewName IPERSWRKAGRMTMGR view
VDM.viewType #COMPOSITE view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.usageType.dataClass #MASTER view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #MANDATORY view
Analytics.dataCategory #DIMENSION view
Metadata.allowExtensions true view
ObjectModel.representativeKey PersonWorkAgreement view
EndUserText.label Retrieve manager for given date view
Metadata.ignorePropagatedAnnotations true view

Fields (6)

KeyFieldSource TableSource FieldDescription
KEY PersonWorkAgreement
KEY KeyDate
KEY ManagerPersonWorkAgreement
PersonWorkAgrmtAuthznGrpg
_ManagerPersonWorkAgreement _ManagerPersonWorkAgreement
_ManagerPersonWorkAgreement_1 _ManagerPersonWorkAgreement_1
@AbapCatalog.sqlViewName: 'IPERSWRKAGRMTMGR'
@VDM.viewType: #COMPOSITE
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel.usageType.dataClass: #MASTER
@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #L
@AbapCatalog.compiler.compareFilter: true
//@AccessControl.authorizationCheck: #CHECK

@AccessControl.authorizationCheck: #MANDATORY
@Analytics.dataCategory: #DIMENSION
@Metadata.allowExtensions: true
@ObjectModel.representativeKey: 'PersonWorkAgreement'
@EndUserText.label: 'Retrieve manager for given date'
@Metadata.ignorePropagatedAnnotations:true
@ObjectModel.supportedCapabilities: [#ANALYTICAL_DIMENSION]

define view I_PersWrkAgrmtManagerForKeyDte
  with parameters
    @Consumption.hidden     : true
    @Environment.systemField: #SYSTEM_DATE
    P_KeyDate : vdm_v_key_date
  as select from I_PersWrkAgrmtPosDet as perswrkagrmtposdet
  //  as select from P_U_PersWrkAgrmtMgrForKeyDte (P_KeyDate: $parameters.P_KeyDate)

  association [1..1] to I_PersonWorkAgreement   as _ManagerPersonWorkAgreement   on _ManagerPersonWorkAgreement.PersonWorkAgreement = $projection.ManagerPersonWorkAgreement
  association [1..1] to I_PersonWorkAgreement_1 as _ManagerPersonWorkAgreement_1 on _ManagerPersonWorkAgreement_1.PersonWorkAgreement = $projection.ManagerPersonWorkAgreement
{
  key cast( PersonWorkAgreement as persno preserving type ) as PersonWorkAgreement,
  key cast( $parameters.P_KeyDate as dats preserving type ) as KeyDate,
      @ObjectModel.foreignKey.association: '_ManagerPersonWorkAgreement_1'
  key cast( ManagerPersonWorkAgreement as mstbr preserving type ) as ManagerPersonWorkAgreement,
      cast( PersonWorkAgrmtAuthznGrpg as vdsk1 preserving type ) as PersonWorkAgrmtAuthznGrpg,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_ManagerPersonWorkAgreement_1'
      _ManagerPersonWorkAgreement,
      _ManagerPersonWorkAgreement_1
}
where
  (
        perswrkagrmtposdet.StartDate                  <= $parameters.P_KeyDate
    and perswrkagrmtposdet.EndDate                    >= $parameters.P_KeyDate
  )
  and(
        perswrkagrmtposdet.ManagerPersonWorkAgreement is not null
  )
  and(
        perswrkagrmtposdet.ManagerPersonWorkAgreement <> '00000000'
  )

/*  with parameters
    @Consumption.hidden     : true
    @Environment.systemField: #SYSTEM_DATE
    P_KeyDate : vdm_v_key_date
  as select from wfd_tf_perwrkagrmtmgrforkeydte( p_client: $session.client, p_todaydate: $parameters.P_KeyDate )
//  as select from P_U_PersWrkAgrmtMgrForKeyDte (P_KeyDate: $parameters.P_KeyDate)

  association [1..1] to I_PersonWorkAgreement   as _ManagerPersonWorkAgreement   on _ManagerPersonWorkAgreement.PersonWorkAgreement = $projection.ManagerPersonWorkAgreement
  association [1..1] to I_PersonWorkAgreement_1 as _ManagerPersonWorkAgreement_1 on _ManagerPersonWorkAgreement_1.PersonWorkAgreement = $projection.ManagerPersonWorkAgreement
{
  key  PersonWorkAgreement,
  key  $parameters.P_KeyDate as KeyDate,
       @ObjectModel.foreignKey.association: '_ManagerPersonWorkAgreement_1'
  key  ManagerPersonWorkAgreement,
       PersonWorkAgrmtAuthznGrpg,
       @API.element.releaseState: #DEPRECATED
       @API.element.successor: '_ManagerPersonWorkAgreement_1'
       _ManagerPersonWorkAgreement,
       _ManagerPersonWorkAgreement_1
}
*/

//define view I_PersWrkAgrmtManagerForKeyDte

//  with parameters

//    @Consumption.hidden     : true

//    @Environment.systemField: #SYSTEM_DATE

//    P_KeyDate : vdm_v_key_date

//  as select from P_U_PersWrkAgrmtMgrForKeyDte (P_KeyDate: $parameters.P_KeyDate)

//  association [1..1] to I_PersonWorkAgreement   as _ManagerPersonWorkAgreement   on _ManagerPersonWorkAgreement.PersonWorkAgreement = $projection.ManagerPersonWorkAgreement

//  association [1..1] to I_PersonWorkAgreement_1 as _ManagerPersonWorkAgreement_1 on _ManagerPersonWorkAgreement_1.PersonWorkAgreement = $projection.ManagerPersonWorkAgreement

//{

//  key  PersonWorkAgreement,

//  key  $parameters.P_KeyDate as KeyDate,

//       @ObjectModel.foreignKey.association: '_ManagerPersonWorkAgreement_1'

//  key  ManagerPersonWorkAgreement,

//       PersonWorkAgrmtAuthznGrpg,

//       @API.element.releaseState: #DEPRECATED

//       @API.element.successor: '_ManagerPersonWorkAgreement_1'

//       _ManagerPersonWorkAgreement,

//       _ManagerPersonWorkAgreement_1

//}


//  as select from    I_PersWrkAgrmtPosDet                                             as PersWrkAgrmtPosDet

//    left outer join I_PersWrkAgrmtPosToMgrPosition(P_KeyDate: $parameters.P_KeyDate) as PersWrkAgrmtPosToMgrPosition on PersWrkAgrmtPosToMgrPosition.PersonWorkAgreement = PersWrkAgrmtPosDet.PersonWorkAgreement

//

//    left outer join I_PersWrkAgrmtPosDet                                             as PersonWrkAgrmtManager        on  PersonWrkAgrmtManager.PersonWrkAgrmtPosition = PersWrkAgrmtPosToMgrPosition.ManagerWrkAgrmtPosition // retrieve the corresponding workagreement of teh position

//                                                                                                                     and PersonWrkAgrmtManager.StartDate              <= $parameters.P_KeyDate

//                                                                                                                     and PersonWrkAgrmtManager.EndDate                >= $parameters.P_KeyDate

//

//  association [1..1] to I_PersonWorkAgreement   as _ManagerPersonWorkAgreement   on _ManagerPersonWorkAgreement.PersonWorkAgreement = $projection.ManagerPersonWorkAgreement

//  association [1..1] to I_PersonWorkAgreement_1 as _ManagerPersonWorkAgreement_1 on _ManagerPersonWorkAgreement_1.PersonWorkAgreement = $projection.ManagerPersonWorkAgreement

//

//{

//  key PersWrkAgrmtPosDet.PersonWorkAgreement as PersonWorkAgreement,

//  key $parameters.P_KeyDate                  as KeyDate,

//      @ObjectModel.foreignKey.association: '_ManagerPersonWorkAgreement_1'

//  key case when PersWrkAgrmtPosToMgrPosition.ManagerWrkAgrmtPosition is not null

//    then PersonWrkAgrmtManager.PersonWorkAgreement

//   when PersWrkAgrmtPosDet.ManagerPersonWorkAgreement is not null

//     then  PersWrkAgrmtPosDet.ManagerPersonWorkAgreement

//   end                                       as ManagerPersonWorkAgreement,

//      PersWrkAgrmtPosDet.PersonWorkAgrmtAuthznGrpg,

//      @API.element.releaseState: #DEPRECATED

//      @API.element.successor: '_ManagerPersonWorkAgreement_1'

//      _ManagerPersonWorkAgreement,

//      _ManagerPersonWorkAgreement_1

//}

//where

//          PersWrkAgrmtPosDet.StartDate                         <= $parameters.P_KeyDate

//  and     PersWrkAgrmtPosDet.EndDate                           >= $parameters.P_KeyDate

//  and(

//    (

//          PersWrkAgrmtPosToMgrPosition.ManagerWrkAgrmtPosition is not null

//      and PersWrkAgrmtPosToMgrPosition.ManagerWrkAgrmtPosition <> ''

//      and PersonWrkAgrmtManager.PersonWorkAgreement            is not null

//    )

//    or(

//          PersWrkAgrmtPosDet.ManagerPersonWorkAgreement        is not null

//      and PersWrkAgrmtPosDet.ManagerPersonWorkAgreement        <> ''

//    )

//  )