R_WorkAssignmentBankAccountTP

DDL: R_WORKASSIGNMENTBANKACCOUNTTP Type: view_entity TRANSACTIONAL Package: ODATA_CA_BUM_WF

TP View for Bank Accounts for Workforce Person

R_WorkAssignmentBankAccountTP is a Transactional CDS View that provides data about "TP View for Bank Accounts for Workforce Person" in SAP S/4HANA. It reads from 3 data sources (R_WorkAssignmentBP, I_BusinessPartnerBank_2, I_BusinessPartner) and exposes 21 fields with key fields WorkAssignmentUUID, BankIdentification. It has 3 associations to related views. Part of development package ODATA_CA_BUM_WF.

Data Sources (3)

SourceAliasJoin Type
R_WorkAssignmentBP _BuPaIdentification inner
I_BusinessPartnerBank_2 _BusinessPartnerBank from
I_BusinessPartner _WorkAssignmentBP inner

Associations (3)

CardinalityTargetAliasCondition
[0..1] I_CountryText _CountryText $projection.BankCountryKey = _CountryText.Country and _CountryText.Language = $session.system_language
[1..1] I_BusinessPartner _WorkforcePersonBP _WorkforcePersonBP.BusinessPartner = _BuPaIdentification.BusinessPartner
[1..1] R_WorkforcePersonTP _WorkforcePerson $projection.PersonUUID = _WorkforcePerson.PersonUUID

Annotations (9)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label TP View for Bank Accounts for Workforce Person view
Metadata.ignorePropagatedAnnotations true view
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
AccessControl.personalData.blocking #NOT_REQUIRED view

Fields (21)

KeyFieldSource TableSource FieldDescription
KEY WorkAssignmentUUID I_BusinessPartner BusinessPartnerUUID
KEY BankIdentification I_BusinessPartnerBank_2 BankIdentification
WorkforceAssignment R_WorkAssignmentBP WorkforceAssignment
BankAccountHolderName I_BusinessPartnerBank_2 BankAccountHolderName
BankAccountName I_BusinessPartnerBank_2 BankAccountName
BankControlKey I_BusinessPartnerBank_2 BankControlKey
BankCountryKey I_BusinessPartnerBank_2 BankCountryKey
Bank I_BusinessPartnerBank_2 BankNumber
BankName I_BusinessPartnerBank_2 BankName
BankAccount I_BusinessPartnerBank_2 BankAccount
IBAN I_BusinessPartnerBank_2 IBAN
SWIFTCode I_BusinessPartnerBank_2 SWIFTCode
datsendasValidityStartDate
datsendasValidityEndDate
BankReference
BusinessPartner I_BusinessPartnerBank_2 BusinessPartner
PersonUUID _WorkforcePersonBP BusinessPartnerUUID
BPBankIsProtected I_BusinessPartnerBank_2 BPBankIsProtected
_WorkAssignment _WorkAssignment
_WorkforcePerson _WorkforcePerson
_CountryText _CountryText
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'TP View for Bank Accounts for Workforce Person'
@Metadata.ignorePropagatedAnnotations: true
@VDM: {
  viewType: #TRANSACTIONAL,
  lifecycle.contract.type: #SAP_INTERNAL_API
}

@ObjectModel.usageType:{
  serviceQuality: #C,
  sizeCategory: #XL,
  dataClass: #MIXED
}
@AccessControl.personalData.blocking: #NOT_REQUIRED
@Consumption.dbHints: [ '&PREFER_JOIN_WITH_FDA 0&', 'USE_HEX_PLAN' ]
define view entity R_WorkAssignmentBankAccountTP

  as select from I_BusinessPartnerBank_2 as _BusinessPartnerBank
    inner join   R_WorkAssignmentBP      as _BuPaIdentification on _BuPaIdentification.WorkAssignmentBusinessPartner = _BusinessPartnerBank.BusinessPartner

  //Below association/Join is to get the WA UUID

    inner join   I_BusinessPartner       as _WorkAssignmentBP   on  _WorkAssignmentBP.BusinessPartner         = _BuPaIdentification.WorkAssignmentBusinessPartner
                                                                and _WorkAssignmentBP.BusinessPartnerCategory = '1'

  //Do we need below association?

  //      inner join   R_WorkAssignmentTP                             on R_WorkAssignmentTP.WorkAssignmentUUID = _WorkAssignmentBP.BusinessPartnerUUID


  association [0..1] to I_CountryText             as _CountryText       on  $projection.BankCountryKey = _CountryText.Country
                                                                        and _CountryText.Language      = $session.system_language

  //Below association required for deriving PersonUUID - because BDEF authorization/lock is depends on PersonUUID

  association [1..1] to I_BusinessPartner         as _WorkforcePersonBP on  _WorkforcePersonBP.BusinessPartner = _BuPaIdentification.BusinessPartner

  //Below associations for handling DCL

  association [1..1] to R_WorkforcePersonTP       as _WorkforcePerson   on  $projection.PersonUUID = _WorkforcePerson.PersonUUID
  association        to parent R_WorkAssignmentTP as _WorkAssignment    on  $projection.WorkAssignmentUUID = _WorkAssignment.WorkAssignmentUUID

{
  key    _WorkAssignmentBP.BusinessPartnerUUID                        as WorkAssignmentUUID,
  key    _BusinessPartnerBank.BankIdentification                      as BankIdentification,
         _BuPaIdentification.WorkforceAssignment                      as WorkforceAssignment,
         _BusinessPartnerBank.BankAccountHolderName                   as BankAccountHolderName,
         _BusinessPartnerBank.BankAccountName                         as BankAccountName,
         _BusinessPartnerBank.BankControlKey                          as BankControlKey,
         _BusinessPartnerBank.BankCountryKey                          as BankCountryKey,
         _BusinessPartnerBank.BankNumber                              as Bank,
         _BusinessPartnerBank.BankName                                as BankName,
         _BusinessPartnerBank.BankAccount                             as BankAccount,
         _BusinessPartnerBank.IBAN                                    as IBAN,
         _BusinessPartnerBank.SWIFTCode                               as SWIFTCode,
         @Semantics.businessDate.from: true
         case when _BusinessPartnerBank.ValidityStartDate != 00010101000000
         then tstmp_to_dats(_BusinessPartnerBank.ValidityStartDate,'UTC',  $session.client, 'NULL')
         else cast ( '00010101' as abap.dats )
         end                                                          as ValidityStartDate,
         @Semantics.businessDate.to: true
         case when _BusinessPartnerBank.ValidityEndDate != 00010101000000
         then tstmp_to_dats(_BusinessPartnerBank.ValidityEndDate,'UTC',  $session.client, 'NULL')
         else cast ( '99991231' as abap.dats)
         end                                                          as ValidityEndDate,
         cast(_BusinessPartnerBank.BankAccountReferenceText as refbk) as BankReference,
         _BusinessPartnerBank.BusinessPartner,
         _WorkforcePersonBP.BusinessPartnerUUID                       as PersonUUID,
         @Semantics.booleanIndicator
         _BusinessPartnerBank.BPBankIsProtected                       as BPBankIsProtected,
         _WorkAssignment,
         _WorkforcePerson,
         _CountryText
}
where
     _BusinessPartnerBank.BankNumber  is not null
  or _BusinessPartnerBank.BankAccount is not null
  or _BusinessPartnerBank.IBAN        is not null