R_WorkAssignmentBankAccountTP
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)
| Source | Alias | Join Type |
|---|---|---|
| R_WorkAssignmentBP | _BuPaIdentification | inner |
| I_BusinessPartnerBank_2 | _BusinessPartnerBank | from |
| I_BusinessPartner | _WorkAssignmentBP | inner |
Associations (3)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [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)
| Name | Value | Level | Field |
|---|---|---|---|
| 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)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| 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
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA