R_WorkAssignmentPayment

DDL: R_WORKASSIGNMENTPAYMENT Type: view_entity COMPOSITE Package: WFD_WORKER_FACTSHEET_BL

Payment for Workforce Person

R_WorkAssignmentPayment is a Composite CDS View that provides data about "Payment for Workforce Person" in SAP S/4HANA. It reads from 4 data sources (I_CompanyCode, R_WorkAssignmentBP_1, R_WorkAssignment, I_SupplierCompany) and exposes 29 fields with key fields WorkAssignmentUUID, BankIdentification. It has 4 associations to related views. Part of development package WFD_WORKER_FACTSHEET_BL.

Data Sources (4)

SourceAliasJoin Type
I_CompanyCode _CompanyCode inner
R_WorkAssignmentBP_1 PaymentBP from
R_WorkAssignment R_WorkAssignment inner
I_SupplierCompany VendorMaster inner

Associations (4)

CardinalityTargetAliasCondition
[0..1] R_PaymentMethodText _PaymentMethodText _PaymentMethodText.PaymentMethodInEmplCentral = $projection.PaymentMethodInEmplCentral and _PaymentMethodText.Language = $session.system_language
[0..1] I_PaymentMethodText _FinancePaymentMethodText _FinancePaymentMethodText.Country = $projection.CompanyCodeCountry and _FinancePaymentMethodText.PaymentMethod = $projection.PaymentMethod and _FinancePaymentMethodText.Language = $session.system_language
[0..1] I_CountryText _CountryText $projection.BankCountryKey = _CountryText.Country and _CountryText.Language = $session.system_language
[0..1] I_CurrencyText _CurrencyText $projection.Currency = _CurrencyText.Currency and _CurrencyText.Language = $session.system_language

Annotations (8)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
EndUserText.label Payment for Workforce Person view
Metadata.ignorePropagatedAnnotations true view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MIXED view

Fields (29)

KeyFieldSource TableSource FieldDescription
KEY WorkAssignmentUUID relationUUID BusinessPartnerUUID
KEY BankIdentification Bank BankIdentification
EmployeeInternalID R_WorkAssignmentBP_1 WorkAssignmentBusinessPartner
EmploymentInternalID R_WorkAssignmentBP_1 WorkforceAssignment
WorkforcePersonExternalID R_WorkAssignmentBP_1 WorkforcePersonExternalID
BankAccountHolderName Bank BankAccountHolderName
BankAccountName Bank BankAccountName
BankControlKey Bank BankControlKey
BankCountryKey Bank BankCountryKey
Bank Bank BankNumber
BankName Bank BankName
BankAccount Bank BankAccount
IBAN Bank IBAN
SWIFTCode Bank SWIFTCode
PaymentMethodsList I_SupplierCompany PaymentMethodsList
PaymentMethodInEmplCentral _PaymentMethod PaymentMethodInEmplCentral
datsendasValidityEndDate
datsendasValidityStartDate
BankReference
Currency I_CompanyCode Currency
CompanyCode I_SupplierCompany CompanyCode
CompanyCodeCountry I_CompanyCode Country
PaymentMethod
BusinessPartner Bank BusinessPartner
_WorkAssignment _WorkAssignment
_CountryText _CountryText
_CurrencyText _CurrencyText
_FinancePaymentMethodText _FinancePaymentMethodText
_PaymentMethodText _PaymentMethodText
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #MANDATORY
@EndUserText.label: 'Payment for Workforce Person'
@Metadata.ignorePropagatedAnnotations: true
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #SAP_INTERNAL_API
}
@Consumption.dbHints: [ 'USE_HEX_PLAN' ] 
@ObjectModel.usageType:{
  serviceQuality: #C,
  sizeCategory: #L,
  dataClass: #MIXED
}
define view entity R_WorkAssignmentPayment
//  as select from           R_WorkAssignmentBP            as PaymentBP

  as select from           R_WorkAssignmentBP_1            as PaymentBP
    left outer to one join I_BusinessPartner             as relationUUID   on relationUUID.BusinessPartner = PaymentBP.WorkAssignmentBusinessPartner

    left outer to one join I_Supplier_to_BusinessPartner as vendor         on vendor.BusinessPartnerUUID = relationUUID.BusinessPartnerUUID

    left outer to one join I_BusinessPartnerBank         as Bank           on Bank.BusinessPartner = PaymentBP.WorkAssignmentBusinessPartner
  //Get Company Code Country

    inner join             R_WorkAssignment                                on R_WorkAssignment.WorkAssignmentUUID = relationUUID.BusinessPartnerUUID

    inner join             I_CompanyCode                 as _CompanyCode   on _CompanyCode.CompanyCode = R_WorkAssignment.CompanyCode

    inner join             I_SupplierCompany             as VendorMaster   on  VendorMaster.Supplier    = vendor.Supplier
                                                                           and VendorMaster.CompanyCode = R_WorkAssignment.CompanyCode

    left outer to one join R_PaymentMethod               as _PaymentMethod on  _PaymentMethod.CompanyCodeCountry = _CompanyCode.Country
                                                                           and _PaymentMethod.BankCountryKey     = Bank.BankCountryKey
                                                                           and _PaymentMethod.PaymentMethod      = VendorMaster.PaymentMethodsList

  //Payment Method Text

  association [0..1] to R_PaymentMethodText     as _PaymentMethodText        on  _PaymentMethodText.PaymentMethodInEmplCentral = $projection.PaymentMethodInEmplCentral
                                                                             and _PaymentMethodText.Language                   = $session.system_language
  //FI Payment Method Text

  association [0..1] to I_PaymentMethodText     as _FinancePaymentMethodText on  _FinancePaymentMethodText.Country       = $projection.CompanyCodeCountry //TBD $projection.BankCountryKey

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

  association [0..1] to I_CurrencyText          as _CurrencyText             on  $projection.Currency   = _CurrencyText.Currency
                                                                             and _CurrencyText.Language = $session.system_language

  association        to parent R_WorkAssignment as _WorkAssignment           on  $projection.WorkAssignmentUUID   = _WorkAssignment.WorkAssignmentUUID
                                                                             and $projection.EmploymentInternalID = _WorkAssignment.WorkAssignment
  // pernr addition

{
  key    relationUUID.BusinessPartnerUUID                                                      as WorkAssignmentUUID,
  key    Bank.BankIdentification                                                               as BankIdentification,
         PaymentBP.WorkAssignmentBusinessPartner                                               as EmployeeInternalID,
         PaymentBP.WorkforceAssignment                                                         as EmploymentInternalID,
         PaymentBP.WorkforcePersonExternalID                                                   as WorkforcePersonExternalID,
         Bank.BankAccountHolderName                                                            as BankAccountHolderName,
         Bank.BankAccountName                                                                  as BankAccountName,
         Bank.BankControlKey                                                                   as BankControlKey,
         Bank.BankCountryKey                                                                   as BankCountryKey,
         Bank.BankNumber                                                                       as Bank,
         Bank.BankName                                                                         as BankName,
         Bank.BankAccount                                                                      as BankAccount,
         Bank.IBAN                                                                             as IBAN,
         Bank.SWIFTCode                                                                        as SWIFTCode,
         VendorMaster.PaymentMethodsList                                                       as PaymentMethodsList, //where cond

         _PaymentMethod.PaymentMethodInEmplCentral,

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

         @Semantics.businessDate.to: true
         case when Bank.ValidityEndDate != 00010101000000
         then tstmp_to_dats(Bank.ValidityEndDate,'UTC',  $session.client, 'NULL')
         else cast ( '99991231' as abap.dats)
         end                                                          as ValidityEndDate,        
    //     cast ( substring( cast(Bank.ValidityStartDate as abap.char( 17 ) ), 1, 8 ) as begda ) as ValidityStartDate,        

         @Semantics.businessDate.from: true
         case when Bank.ValidityStartDate != 00010101000000
         then tstmp_to_dats(Bank.ValidityStartDate,'UTC',  $session.client, 'NULL')
         else cast ( '00010101' as abap.dats )
         end                                                          as ValidityStartDate,
         
         cast(Bank.BankAccountReferenceText as refbk)                                          as BankReference,
         //Company Currency.

         _CompanyCode.Currency,
         VendorMaster.CompanyCode                                                              as CompanyCode,
         _CompanyCode.Country                                                                  as CompanyCodeCountry,
         //FI Payment Method (T, P, F)

         //cast( VendorMaster.PaymentMethodsList as wfd_payment_method )                            as WorkerPaymentMethod,

         cast( VendorMaster.PaymentMethodsList as farp_schzw_bseg )                            as PaymentMethod,
         //         relationUUID.AuthorizationGroup                                                       as WorkforceAuthorizationGroup,

         //         cast( lpad('',80,' ') as /shcm/pay_currency )                                         as WrkFrcPaymentCurrency,

         //         cast( lpad('',80,' ') as wfd_pay_currency )                                           as WrkFrcPaymentCurrency,

         Bank.BusinessPartner,
         _WorkAssignment,
         _CountryText,
         _CurrencyText,
         _FinancePaymentMethodText,
         _PaymentMethodText


}
where
       VendorMaster.PaymentMethodsList      <> ''
  and  relationUUID.BusinessPartnerCategory =  '1'
  and(
       Bank.BankNumber                      is not null
    or Bank.BankAccount                     is not null
    or Bank.IBAN                            is not null
    or VendorMaster.CompanyCode             is not null
  )