P_NL_SAFTVATCode
P_NL_SAFTVATCode is a Composite CDS View in SAP S/4HANA. It reads from 8 data sources and exposes 19 fields with key fields CompanyCode, TaxItemClassification, TaxCode, Country, ChartOfAccounts.
Data Sources (8)
| Source | Alias | Join Type |
|---|---|---|
| I_CompanyCode | CompanyCode | inner |
| I_CompanyCode | CompanyCode | inner |
| I_Country | Country | inner |
| I_Country | Country | inner |
| I_SAFTTaxAcctDetermination | TaxAcctDetermination | inner |
| I_NL_TaxAbroadAccountDetn | TaxAcctDetermination | inner |
| I_TaxCode | TaxCode | from |
| I_TaxCode | TaxCode | union |
Parameters (1)
| Name | Type | Default |
|---|---|---|
| P_CompanyCode | bukrs |
Annotations (10)
| Name | Value | Level | Field |
|---|---|---|---|
| AbapCatalog.sqlViewName | PNLSAFTVATCODE | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AccessControl.authorizationCheck | #NOT_REQUIRED | view | |
| AccessControl.personalData.blocking | #NOT_REQUIRED | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| VDM.private | true | view | |
| VDM.viewType | #COMPOSITE | view | |
| ClientHandling.algorithm | #SESSION_VARIABLE | view |
Fields (19)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | CompanyCode | I_CompanyCode | CompanyCode | |
| KEY | TaxItemClassification | I_NL_TaxAbroadAccountDetn | TaxItemClassification | |
| KEY | TaxCode | I_TaxCode | TaxCode | |
| KEY | Country | I_CompanyCode | Country | |
| KEY | ChartOfAccounts | I_NL_TaxAbroadAccountDetn | ChartOfAccounts | |
| TaxCalculationProcedure | I_TaxCode | TaxCalculationProcedure | ||
| GLAccount | I_NL_TaxAbroadAccountDetn | GLAccount | ||
| TaxCodeName | ||||
| _TaxCalculationProcedure | I_TaxCode | _TaxCalculationProcedure | ||
| CompanyCode | ||||
| KEY | TaxItemClassification | I_NL_TaxAbroadAccountDetn | TaxItemClassification | |
| KEY | TaxCode | I_TaxCode | TaxCode | |
| KEY | Country | I_CompanyCode | Country | |
| KEY | ChartOfAccounts | I_NL_TaxAbroadAccountDetn | ChartOfAccounts | |
| TaxCalculationProcedure | I_TaxCode | TaxCalculationProcedure | ||
| GLAccount | I_NL_TaxAbroadAccountDetn | GLAccount | ||
| TaxCodeName | ||||
| _TaxCalculationProcedure | I_TaxCode | _TaxCalculationProcedure | ||
| _Country | I_CompanyCode | _Country |
@AbapCatalog.sqlViewName: 'PNLSAFTVATCODE'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@AccessControl.personalData.blocking: #NOT_REQUIRED
@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #XL
@ObjectModel.usageType.dataClass: #MIXED
@VDM.private: true
@VDM.viewType: #COMPOSITE
@ClientHandling.algorithm: #SESSION_VARIABLE
define view P_NL_SAFTVATCode
with parameters
P_CompanyCode : bukrs
as select from I_TaxCode as TaxCode
inner join I_CompanyCode as CompanyCode on CompanyCode.CompanyCode = $parameters.P_CompanyCode
inner join I_Country as Country on Country.Country = CompanyCode.Country
and Country.TaxCalculationProcedure = TaxCode.TaxCalculationProcedure
inner join I_SAFTTaxAcctDetermination as TaxAcctDetermination on TaxAcctDetermination.TaxCode = TaxCode.TaxCode
and TaxAcctDetermination.ChartOfAccounts = CompanyCode.ChartOfAccounts
and TaxAcctDetermination.Country = CompanyCode.Country
left outer to one join R_TaxAbroadActivationStatus as TXAStatus on TXAStatus.CompanyCode = $parameters.P_CompanyCode
{
key CompanyCode.CompanyCode,
key TaxAcctDetermination.TaxItemClassification,
key TaxCode.TaxCode,
@ObjectModel.foreignKey.association: '_Country'
key CompanyCode.Country,
key TaxAcctDetermination.ChartOfAccounts,
@ObjectModel.foreignKey.association: '_TaxCalculationProcedure'
TaxCode.TaxCalculationProcedure,
TaxAcctDetermination.GLAccount,
coalesce(TaxCode._Text[1: Language = $session.system_language].TaxCodeName, '') as TaxCodeName,
TaxCode._TaxCalculationProcedure,
CompanyCode._Country
}
where
TXAStatus.TaxAbroadActivationStatus <= 3 //3 or less = migration not done
or TXAStatus.TaxAbroadActivationStatus is null
union
select from I_TaxCode as TaxCode
inner join I_CompanyCode as CompanyCode on CompanyCode.CompanyCode = $parameters.P_CompanyCode
inner join I_Country as Country on Country.Country = CompanyCode.Country
and Country.TaxCalculationProcedure = TaxCode.TaxCalculationProcedure
inner join I_NL_TaxAbroadAccountDetn as TaxAcctDetermination on TaxAcctDetermination.TaxCode = TaxCode.TaxCode
and TaxAcctDetermination.ChartOfAccounts = CompanyCode.ChartOfAccounts
and TaxAcctDetermination.Country = CompanyCode.Country
left outer to one join R_TaxAbroadActivationStatus as TXAStatus on TXAStatus.CompanyCode = $parameters.P_CompanyCode
{
key CompanyCode.CompanyCode,
key TaxAcctDetermination.TaxItemClassification,
key TaxCode.TaxCode,
@ObjectModel.foreignKey.association: '_Country'
key CompanyCode.Country,
key TaxAcctDetermination.ChartOfAccounts,
@ObjectModel.foreignKey.association: '_TaxCalculationProcedure'
TaxCode.TaxCalculationProcedure,
TaxAcctDetermination.GLAccount,
coalesce(TaxCode._Text[1: Language = $session.system_language].TaxCodeName, '') as TaxCodeName,
TaxCode._TaxCalculationProcedure,
CompanyCode._Country
}
where
TXAStatus.TaxAbroadActivationStatus >= 4
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