P_RO_SAFTSupplier

DDL: P_RO_SAFTSUPPLIER SQL: PROSAFTSUPPLIER Type: view CONSUMPTION Package: GLO_FIN_IS_SAFT_RO

Supplier Data for RO SAFT

P_RO_SAFTSupplier is a Consumption CDS View that provides data about "Supplier Data for RO SAFT" in SAP S/4HANA. It reads from 8 data sources and exposes 40 fields with key fields SourceLedger, Ledger, CompanyCode, Supplier, TaxID5. Part of development package GLO_FIN_IS_SAFT_RO.

Data Sources (8)

SourceAliasJoin Type
I_RO_SAFTAccountMapping Account inner
I_RO_SAFTAccountMapping Account inner
P_RO_SAFTOneTimeSupplier ots inner
P_RO_SAFTSuplrAcctBal P_RO_SAFTSuplrAcctBal inner
P_RO_SAFTSuplrAcctBal P_RO_SAFTSuplrAcctBal inner
I_Supplier Supplier inner
P_RO_SAFTSupplierVATNumber SupplierTaxType from
P_RO_SAFTSupplierVATNumber SupplierTaxType union_all

Parameters (4)

NameTypeDefault
P_FromPostingDate dats
P_ToPostingDate dats
P_FiscalYear gjahr
P_AlternativeGLAccountIsUsed saft_ro_alt_gl_account_flag

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName PROSAFTSUPPLIER view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
VDM.private true view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #BLOCKED_DATA_INCLUDED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MASTER view
VDM.viewType #CONSUMPTION view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Supplier Data for RO SAFT view

Fields (40)

KeyFieldSource TableSource FieldDescription
KEY SourceLedger Balance SourceLedger
KEY Ledger Balance Ledger
KEY CompanyCode Balance CompanyCode
KEY Supplier
KEY TaxID5 P_RO_SAFTSupplierVATNumber BPTaxLongNumber
KEY RO_SAFTStandardAccount I_RO_SAFTAccountMapping RO_SAFTStandardAccount
GLAccount Balance GLAccount
BusinessPartner
SupplierName
CountryISOCode
Region Address Region
PostalCode Address PostalCode
CityName Address CityName
StreetName Address StreetName
HouseNumber Address HouseNumber
Building Address Building
StartingBalanceAmtInCoCodeCrcy
EndingBalanceAmtInCoCodeCrcy
P_FromPostingDate
P_ToPostingDate
P_FiscalYear
SourceLedger
KEY Ledger Balance Ledger
KEY CompanyCode Balance CompanyCode
KEY Supplier
KEY TaxID5 P_RO_SAFTOneTimeSupplier VATRegistration
KEY RO_SAFTStandardAccount I_RO_SAFTAccountMapping RO_SAFTStandardAccount
GLAccount Balance GLAccount
BusinessPartner
SupplierName P_RO_SAFTOneTimeSupplier SupplierName
CountryISOCode P_RO_SAFTOneTimeSupplier CountryISOCode
Region P_RO_SAFTOneTimeSupplier Region
PostalCode P_RO_SAFTOneTimeSupplier PostalCode
CityName P_RO_SAFTOneTimeSupplier CityName
StreetName P_RO_SAFTOneTimeSupplier StreetName
HouseNumber
Building
StartingBalanceAmtInCoCodeCrcy
EndingBalanceAmtInCoCodeCrcy
CompanyCodeCurrency Balance CompanyCodeCurrency
@AbapCatalog.sqlViewName: 'PROSAFTSUPPLIER'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@VDM.private:true
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #BLOCKED_DATA_INCLUDED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MASTER
@VDM.viewType: #CONSUMPTION
@ClientHandling.algorithm: #SESSION_VARIABLE
@EndUserText.label: 'Supplier Data for RO SAFT'
define view P_RO_SAFTSupplier
  with parameters
    P_FromPostingDate            : dats,
    P_ToPostingDate              : dats,
    P_FiscalYear                 : gjahr,
    P_AlternativeGLAccountIsUsed : saft_ro_alt_gl_account_flag
  as select from           P_RO_SAFTSupplierVATNumber as SupplierTaxType

    inner join             P_RO_SAFTSuplrAcctBal(
                                         P_FromPostingDate: $parameters.P_FromPostingDate,
                                         P_ToPostingDate: $parameters.P_ToPostingDate,
                                         P_FiscalYear: $parameters.P_FiscalYear,
                                         P_AlternativeGLAccountIsUsed: $parameters.P_AlternativeGLAccountIsUsed
                                       )              as Balance  on  Balance.Supplier   = SupplierTaxType.Supplier
                                                                  and Balance.FiscalYear = $parameters.P_FiscalYear

    inner join             I_Supplier                 as Supplier on Supplier.Supplier = SupplierTaxType.Supplier

    inner join             I_RO_SAFTAccountMapping    as Account  on  Account.ChartOfAccounts = Balance.ActiveChartOfAccounts
                                                                  and Account.GLAccount       = Balance.ActiveGLAccount

    left outer to one join I_Address_2                as Address  on  Supplier.AddressID                = Address.AddressID
                                                                  and Address.AddressRepresentationCode is initial
                                                                  and Address.AddressPersonID           is initial


{
  key Balance.SourceLedger,
  key Balance.Ledger,
  key Balance.CompanyCode,
  key max(Balance.Supplier)                                                     as Supplier,
  key SupplierTaxType.BPTaxLongNumber                                           as TaxID5,
  key Account.RO_SAFTStandardAccount,
      Balance.GLAccount,
      max(Supplier._SupplierToBusinessPartner._BusinessPartner.BusinessPartner) as BusinessPartner,
      cast(Supplier.BusinessPartnerName1 as abap.char(81))                      as SupplierName,
      cast( Address._Country.CountryISOCode as land1 )                          as CountryISOCode,
      Address.Region,
      Address.PostalCode,
      Address.CityName,
      Address.StreetName,
      Address.HouseNumber,
      Address.Building,

      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      sum(Balance.StartingBalanceAmtInCoCodeCrcy)                               as StartingBalanceAmtInCoCodeCrcy,

      @Semantics.amount.currencyCode: 'CompanyCodeCurrency'
      sum(Balance.EndingBalanceAmtInCoCodeCrcy)                                 as EndingBalanceAmtInCoCodeCrcy,
      @Semantics.currencyCode:true
      Balance.CompanyCodeCurrency
}
where
       SupplierTaxType.BPTaxLongNumber        <> '0'
  and  SupplierTaxType.BPTaxLongNumber        <> 'EXCLUDE'
  and(
       Balance.StartingBalanceAmtInCoCodeCrcy <> 0
    or Balance.NumberOfItems                  >  0
  )
group by
  Balance.SourceLedger,
  Balance.Ledger,
  Balance.CompanyCode,
  SupplierTaxType.BPTaxLongNumber,
  Account.RO_SAFTStandardAccount,
  Balance.GLAccount,
  Supplier.BusinessPartnerName1,
  Address._Country.CountryISOCode,
  Address.Region,
  Address.PostalCode,
  Address.CityName,
  Address.StreetName,
  Address.HouseNumber,
  Address.Building,
  Balance.CompanyCodeCurrency

union all select from P_RO_SAFTSupplierVATNumber as SupplierTaxType

  inner join          P_RO_SAFTOneTimeSupplier   as ots     on ots.Supplier = SupplierTaxType.Supplier
  inner join          P_RO_SAFTSuplrAcctBal(
                                    P_FromPostingDate: $parameters.P_FromPostingDate,
                                    P_ToPostingDate: $parameters.P_ToPostingDate,
                                    P_FiscalYear: $parameters.P_FiscalYear,
                                    P_AlternativeGLAccountIsUsed: $parameters.P_AlternativeGLAccountIsUsed
                                  )              as Balance on  Balance.CompanyCode     = ots.CompanyCode
                                                            and Balance.Supplier        = ots.Supplier
                                                            and Balance.VATRegistration = ots.VATRegistration
                                                            and Balance.FiscalYear      = $parameters.P_FiscalYear
  inner join          I_RO_SAFTAccountMapping    as Account on  Account.ChartOfAccounts = Balance.ActiveChartOfAccounts
                                                            and Account.GLAccount       = Balance.ActiveGLAccount

{
  key Balance.SourceLedger,
  key Balance.Ledger,
  key Balance.CompanyCode,
  key max(Balance.Supplier)                       as Supplier,
  key ots.VATRegistration                         as TaxID5,
  key Account.RO_SAFTStandardAccount,

      Balance.GLAccount,
      ''                                          as BusinessPartner,
      ots.SupplierName,
      ots.CountryISOCode,
      ots.Region,
      ots.PostalCode,
      ots.CityName,
      ots.StreetName,
      ''                                          as HouseNumber,
      ''                                          as Building,

      sum(Balance.StartingBalanceAmtInCoCodeCrcy) as StartingBalanceAmtInCoCodeCrcy,
      sum(Balance.EndingBalanceAmtInCoCodeCrcy)   as EndingBalanceAmtInCoCodeCrcy,
      @Semantics.currencyCode:true
      Balance.CompanyCodeCurrency
}
where
       SupplierTaxType.BPTaxLongNumber        =  '0'
  and(
       Balance.StartingBalanceAmtInCoCodeCrcy <> 0
    or Balance.NumberOfItems                  >  0
  )
group by
  Balance.SourceLedger,
  Balance.Ledger,
  Balance.CompanyCode,
  ots.VATRegistration,
  Account.RO_SAFTStandardAccount,
  Balance.GLAccount,
  ots.SupplierName,
  ots.CountryISOCode,
  ots.Region,
  ots.PostalCode,
  ots.CityName,
  ots.StreetName,
  Balance.CompanyCodeCurrency