R_WorkAssgmtPaymentTP

DDL: R_WORKASSGMTPAYMENTTP Type: view_entity TRANSACTIONAL

TP View for Payment for Workforce Person

R_WorkAssgmtPaymentTP is a Transactional CDS View that provides data about "TP View for Payment for Workforce Person" in SAP S/4HANA. It reads from 5 data sources (R_WorkAssignmentBP, I_BusinessPartnerBank_2, I_Supplier_to_BusinessPartner, I_BusinessPartner, R_WorkAssignmentTP) and exposes 23 fields with key fields WorkAssignmentUUID, BankIdentification. It has 3 associations to related views.

Data Sources (5)

SourceAliasJoin Type
R_WorkAssignmentBP _BuPaIdentification inner
I_BusinessPartnerBank_2 _BusinessPartnerBank from
I_Supplier_to_BusinessPartner _SupplierBP inner
I_BusinessPartner _WorkAssignmentBP inner
R_WorkAssignmentTP R_WorkAssignmentTP inner

Associations (3)

CardinalityTargetAliasCondition
[1..1] I_SupplierCompany _SupplierCompany _SupplierCompany.Supplier = _SupplierBP.Supplier and _SupplierCompany.CompanyCode = R_WorkAssignmentTP.CompanyCode
[1..1] I_BusinessPartner _WorkforcePersonBP _WorkforcePersonBP.BusinessPartner = _BuPaIdentification.BusinessPartner
[1..1] R_WorkforcePersonTP _WorkforcePerson $projection.PersonUUID = _WorkforcePerson.PersonUUID

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label TP View for Payment for Workforce Person view
Metadata.ignorePropagatedAnnotations true view
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #S view
ObjectModel.usageType.dataClass #MIXED view

Fields (23)

KeyFieldSource TableSource FieldDescription
KEY WorkAssignmentUUID I_BusinessPartner BusinessPartnerUUID
KEY BankIdentification I_BusinessPartnerBank_2 BankIdentification
EmployeeInternalID R_WorkAssignmentBP WorkAssignmentBusinessPartner
EmploymentInternalID R_WorkAssignmentBP WorkforceAssignment
WorkforcePersonExternalID R_WorkAssignmentBP WorkforcePersonExternalID
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
PaymentMethodsList _SupplierCompany PaymentMethodsList
datsendasValidityStartDate
datsendasValidityEndDate
BankReference
CompanyCode _SupplierCompany CompanyCode
WorkerPaymentMethod
BusinessPartner I_BusinessPartnerBank_2 BusinessPartner
PersonUUID _WorkforcePersonBP BusinessPartnerUUID
_WorkforcePerson _WorkforcePerson
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'TP View for Payment for Workforce Person'
@Metadata.ignorePropagatedAnnotations: true
@VDM: {
  viewType: #TRANSACTIONAL,
  lifecycle.contract.type: #SAP_INTERNAL_API
}

@ObjectModel.usageType:{
  serviceQuality: #X,
  sizeCategory: #S,
  dataClass: #MIXED
}
define view entity R_WorkAssgmtPaymentTP

  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 UUID

    inner join   I_BusinessPartner             as _WorkAssignmentBP   on _WorkAssignmentBP.BusinessPartner = _BuPaIdentification.WorkAssignmentBusinessPartner

    inner join   R_WorkAssignmentTP                                   on R_WorkAssignmentTP.WorkAssignmentUUID = _WorkAssignmentBP.BusinessPartnerUUID

  //Below association/Join is to get the Supplier (Payment should be available/displayed/fetched only if there is a supplier for that - Double check)

    inner join   I_Supplier_to_BusinessPartner as _SupplierBP         on _SupplierBP.BusinessPartnerUUID = _WorkAssignmentBP.BusinessPartnerUUID

  //Below association is to get the Supplier Master from Supplier

  association [1..1] to I_SupplierCompany         as _SupplierCompany   on  _SupplierCompany.Supplier    = _SupplierBP.Supplier
                                                                        and _SupplierCompany.CompanyCode = R_WorkAssignmentTP.CompanyCode

  //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.WorkAssignmentBusinessPartner                 as EmployeeInternalID,
         _BuPaIdentification.WorkforceAssignment                           as EmploymentInternalID,
         _BuPaIdentification.WorkforcePersonExternalID                     as WorkforcePersonExternalID,
         _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,
         //Display only field - Fetched from the I_SupplierCompany ( LFB1- zwels )

         _SupplierCompany.PaymentMethodsList                               as PaymentMethodsList,

         //         cast ( substring( cast(_BusinessPartnerBank.BankValidityEndDate   as abap.char( 17 ) ), 1, 8 ) as endda ) as ValidityEndDate,

         //         cast ( substring( cast(_BusinessPartnerBank.BankValidityStartDate as abap.char( 17 ) ), 1, 8 ) as begda ) as ValidityStartDate,

         //         cast ( substring( cast(_BusinessPartnerBank.ValidityEndDate   as abap.char( 17 ) ), 1, 8 ) as endda ) as ValidityEndDate,

         //         cast ( substring( cast(_BusinessPartnerBank.ValidityStartDate as abap.char( 17 ) ), 1, 8 ) as begda ) as ValidityStartDate,


         @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,

         _SupplierCompany.CompanyCode                                      as CompanyCode,

         //Known as Payment Type in UI

         cast( _SupplierCompany.PaymentMethodsList as wfd_payment_method ) as WorkerPaymentMethod, 
         _BusinessPartnerBank.BusinessPartner,
         _WorkforcePersonBP.BusinessPartnerUUID                            as PersonUUID,
         //         _SupplierBP.Supplier                                                                                  as Supplier,

//         _WorkAssignment,

         _WorkforcePerson

}
where
       _SupplierCompany.PaymentMethodsList       <> ''
  and  _WorkAssignmentBP.BusinessPartnerCategory =  '1'
  and(
       _BusinessPartnerBank.BankNumber           is not null
    or _BusinessPartnerBank.BankAccount          is not null
    or _BusinessPartnerBank.IBAN                 is not null
    or _SupplierCompany.CompanyCode              is not null
  )


//Modelling from WA Colleagues

//  as select from           R_WorkAssignmentBP            as _BuPaIdentification

//

//    left outer to one join I_BusinessPartner             as _WorkAssignmentBP    on _WorkAssignmentBP.BusinessPartner = _BuPaIdentification.WorkAssignmentBusinessPartner

//    left outer to one join I_Supplier_to_BusinessPartner as _Supplier            on _Supplier.BusinessPartnerUUID = _WorkAssignmentBP.BusinessPartnerUUID //Remove - double check

//    left outer to one join I_BusinessPartnerBank         as _BusinessPartnerBank on _BusinessPartnerBank.BusinessPartner = _BuPaIdentification.WorkAssignmentBusinessPartner //Should be an inner join

//  //    left outer to one join I_BusinessPartnerBankTP_2     as _BusinessPartnerBank on _BusinessPartnerBank.BusinessPartner = _BuPaIdentification.WorkAssignmentBusinessPartner

//

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

//  association [0..1] to I_SupplierCompany         as _VendorMaster      on _VendorMaster.Supplier = _Supplier.Supplier

//

//  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

//

//  // pernr addition

//{

//  key    _WorkAssignmentBP.BusinessPartnerUUID                                                                 as WorkAssignmentUUID,

//  key    _BusinessPartnerBank.BankIdentification                                                               as BankIdentification,

//         _BuPaIdentification.WorkAssignmentBusinessPartner                                                     as EmployeeInternalID,

//         _BuPaIdentification.WorkforceAssignment                                                               as EmploymentInternalID,

//         _BuPaIdentification.WorkforcePersonExternalID                                                         as WorkforcePersonExternalID,

//         _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,

//         _VendorMaster.PaymentMethodsList                                                                      as PaymentMethodsList, //where cond // should be seperated from Bank info

//

//         //         cast ( substring( cast(_BusinessPartnerBank.BankValidityEndDate   as abap.char( 17 ) ), 1, 8 ) as endda ) as ValidityEndDate,

//         //         cast ( substring( cast(_BusinessPartnerBank.BankValidityStartDate as abap.char( 17 ) ), 1, 8 ) as begda ) as ValidityStartDate,

//         cast ( substring( cast(_BusinessPartnerBank.ValidityEndDate   as abap.char( 17 ) ), 1, 8 ) as endda ) as ValidityEndDate,

//         cast ( substring( cast(_BusinessPartnerBank.ValidityStartDate as abap.char( 17 ) ), 1, 8 ) as begda ) as ValidityStartDate,

//         cast(_BusinessPartnerBank.BankAccountReferenceText as refbk)                                          as BankReference,

//

//         _VendorMaster.CompanyCode                                                                             as CompanyCode, // should be seperated from Bank info

//         cast( _VendorMaster.PaymentMethodsList as wfd_payment_method )                                        as WorkerPaymentMethod, // should be seperated from Bank info

//         _BusinessPartnerBank.BusinessPartner,

//         _WorkforcePersonBP.BusinessPartnerUUID                                                                as PersonUUID,

//         _WorkAssignment,

//         _WorkforcePerson

//

//}

//where

//       _VendorMaster.PaymentMethodsList          <> ''

//  and  _WorkAssignmentBP.BusinessPartnerCategory =  '1'

//  and(

//       _BusinessPartnerBank.BankNumber           is not null

//    or _BusinessPartnerBank.BankAccount          is not null

//    or _BusinessPartnerBank.IBAN                 is not null

//    or _VendorMaster.CompanyCode                 is not null

//  )



//==========================================

//  inner join I_Supplier_to_BusinessPartner as _SupplierBP            on _SupplierBP.BusinessPartnerUUID = _WorkAssignmentBP.BusinessPartnerUUID


// inner join I_Supplier_to_BusinessPartner as _SupplierBP            on $projection.WorkAssignmentUUID = _SupplierBP.BusinessPartnerUUID


//  //Below association is to get the UUID (why not from R_WorkAssignmentBP)

//  association [1..1] to I_BusinessPartner             as _WorkAssignmentBP  on _WorkAssignmentBP.BusinessPartner = _BuPaIdentification.WorkAssignmentBusinessPartner

//

//  //Below association is to get the Supplier (Payment should be available only if there is a supplier for that)

//  association [1..1] to I_Supplier_to_BusinessPartner as _SupplierBP        on $projection.WorkAssignmentUUID = _SupplierBP.BusinessPartnerUUID

//

//  //Below association is to get the Supplier Master from Supplier

//  association [0..1] to I_SupplierCompany             as _SupplierCompany   on $projection.Supplier = _SupplierCompany.Supplier

//

//  //Required for deriving PersonUUID - because BEHDEF authorization/lock is depends on PersonUUID

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

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSPARTNER",
"I_BUSINESSPARTNERBANK_2",
"I_SUPPLIERCOMPANY",
"I_SUPPLIER_TO_BUSINESSPARTNER",
"R_WORKASSIGNMENTBP",
"R_WORKASSIGNMENTTP"
],
"ASSOCIATED":
[
"R_WORKFORCEPERSONTP"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/