P_ServiceDocLinItmFinData
P_ServiceDocLinItmFinData is a Composite CDS View in SAP S/4HANA. It reads from 2 data sources (I_GLAccountLineItemSemTag, I_UserSetGetParamForCtrlgArea) and exposes 52 fields with key fields Ledger, SourceLedger, CompanyCode, FiscalYear, AccountingDocument. It has 1 association to related views.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_GLAccountLineItemSemTag | I_GLAccountLineItemSemTag | from |
| I_UserSetGetParamForCtrlgArea | I_UserSetGetParamForCtrlgArea | inner |
Associations (1)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | P_Calendar | _YTDCalendar | _YTDCalendar.CalendarDate = $session.system_date |
Annotations (9)
| Name | Value | Level | Field |
|---|---|---|---|
| ClientHandling.algorithm | #SESSION_VARIABLE | view | |
| AbapCatalog.sqlViewName | PSRVCDOCFINITM | view | |
| AbapCatalog.compiler.compareFilter | true | view | |
| AbapCatalog.preserveKey | true | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| ObjectModel.usageType.serviceQuality | #D | view | |
| ObjectModel.usageType.sizeCategory | #XXL | view | |
| VDM.viewType | #COMPOSITE | view | |
| VDM.private | true | view |
Fields (52)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | Ledger | Ledger | ||
| KEY | SourceLedger | SourceLedger | ||
| KEY | CompanyCode | CompanyCode | ||
| KEY | FiscalYear | FiscalYear | ||
| KEY | AccountingDocument | AccountingDocument | ||
| KEY | LedgerGLLineItem | LedgerGLLineItem | ||
| KEY | GLAccountHierarchy | GLAccountHierarchy | ||
| KEY | SemanticTag | SemanticTag | ||
| KEY | ValidityStartDate | ValidityStartDate | ||
| KEY | ValidityEndDate | ValidityEndDate | ||
| KEY | ServiceContract | ServiceContract | ||
| KEY | ServiceContractItem | ServiceContractItem | ||
| KEY | ServiceDocument | ServiceDocument | ||
| KEY | ServiceDocumentItem | ServiceDocumentItem | ||
| KEY | BusinessSolutionOrder | BusinessSolutionOrder | ||
| KEY | BusinessSolutionOrderItem | BusinessSolutionOrderItem | ||
| ServiceDocumentType | ServiceDocumentType | |||
| ServiceContractType | ServiceContractType | |||
| CompanyCodeCurrency | CompanyCodeCurrency | |||
| RevenueAmountInCompanyCodeCrcy | RevenueAmountInCompanyCodeCrcy | |||
| CostAmountInCompanyCodeCrcy | CostAmountInCompanyCodeCrcy | |||
| RecognizedMarginAmtInCCCrcy | RecognizedMarginAmtInCCCrcy | |||
| CreationDate | CreationDate | |||
| PostingDate | PostingDate | |||
| DocumentDate | DocumentDate | |||
| FiscalYearVariant | I_GLAccountLineItemSemTag | FiscalYearVariant | ||
| FiscalPeriod | FiscalPeriod | |||
| FiscalQuarter | FiscalQuarter | |||
| Product | SoldProduct | |||
| ProductGroup | SoldProductGroup | |||
| SalesOrganization | SalesOrganization | |||
| DistributionChannel | DistributionChannel | |||
| OrganizationDivision | OrganizationDivision | |||
| _Ledger | _Ledger | |||
| _SourceLedger | _SourceLedger | |||
| _CompanyCode | _CompanyCode | |||
| _FiscalYear | _FiscalYear | |||
| _JournalEntry | _JournalEntry | |||
| _Hierarchy | _Hierarchy | |||
| _SemanticTag | _SemanticTag | |||
| _CompanyCodeCurrency | _CompanyCodeCurrency | |||
| _ServiceContract | _ServiceContract | |||
| _ServiceContractItem | _ServiceContractItem | |||
| _ServiceDocument | _ServiceDocument | |||
| _ServiceDocumentItem | _ServiceDocumentItem | |||
| _ServiceDocumentType | _ServiceDocumentType | |||
| _ServiceContractType | _ServiceContractType | |||
| _FiscalYearVariant | _FiscalYearVariant | |||
| _SoldProduct | _SoldProduct | |||
| _SoldProductGroup | _SoldProductGroup | |||
| _SalesOrganization | _SalesOrganization | |||
| _DistributionChannel | _DistributionChannel |
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog:{
sqlViewName: 'PSRVCDOCFINITM',
compiler.compareFilter: true,
preserveKey: true
}
@ObjectModel: {
usageType: {
dataClass: #MIXED,
serviceQuality: #D,
sizeCategory: #XXL
}
}
@VDM: {
viewType: #COMPOSITE,
private:true
}
define view P_ServiceDocLinItmFinData
as select from I_GLAccountLineItemSemTag
inner join I_UserSetGetParamForCtrlgArea on I_GLAccountLineItemSemTag.GLAccountHierarchy = I_UserSetGetParamForCtrlgArea.CtrlgStdFinStatementVersion
association [0..1] to P_Calendar as _YTDCalendar on _YTDCalendar.CalendarDate = $session.system_date
{
@ObjectModel.foreignKey.association: '_Ledger'
@Environment.sql.passValue: true
key Ledger,
@ObjectModel.foreignKey.association: '_SourceLedger'
key SourceLedger,
@ObjectModel.foreignKey.association: '_CompanyCode'
@Environment.sql.passValue: true
key CompanyCode,
@ObjectModel.foreignKey.association: '_FiscalYear'
@Environment.sql.passValue: true
key FiscalYear,
@ObjectModel.foreignKey.association: '_JournalEntry'
key AccountingDocument,
key LedgerGLLineItem,
@ObjectModel.foreignKey.association: '_Hierarchy'
@Environment.sql.passValue: true
key GLAccountHierarchy,
@ObjectModel.foreignKey.association: '_SemanticTag'
key SemanticTag,
@Semantics.businessDate.from: true
key ValidityStartDate,
@Semantics.businessDate.to: true
key ValidityEndDate,
@ObjectModel.foreignKey.association: '_ServiceContract'
key ServiceContract,
@ObjectModel.foreignKey.association: '_ServiceContractItem'
key ServiceContractItem,
@ObjectModel.foreignKey.association: '_ServiceDocument'
key ServiceDocument,
@ObjectModel.foreignKey.association: '_ServiceDocumentItem'
key ServiceDocumentItem,
key BusinessSolutionOrder,
key BusinessSolutionOrderItem,
@ObjectModel.foreignKey.association: '_ServiceDocumentType'
ServiceDocumentType,
@ObjectModel.foreignKey.association: '_ServiceContractType'
ServiceContractType,
@Semantics.currencyCode:true
CompanyCodeCurrency,
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
RevenueAmountInCompanyCodeCrcy, //Revenue
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
CostAmountInCompanyCodeCrcy, //Cost
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
RecognizedMarginAmtInCCCrcy, //Profit
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
case
when _YTDCalendar.FirstDayOfYearDate <= CreationDate and CreationDate <= $session.system_date
then RevenueAmountInCompanyCodeCrcy
end as YTDSrvcContrRevnAmtInDC,
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
case
when _YTDCalendar.FirstDayOfYearDate <= CreationDate and CreationDate <= $session.system_date
then CostAmountInCompanyCodeCrcy
end as YTDSrvcContrCostInDC,
@Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
case
when _YTDCalendar.FirstDayOfYearDate <= CreationDate and CreationDate <= $session.system_date
then RecognizedMarginAmtInCCCrcy
end as YTDSrvcContrPrftMarginAmtInDC,
CreationDate,
PostingDate,
DocumentDate,
@Semantics.fiscal.yearVariant: true
@ObjectModel.foreignKey.association: '_FiscalYearVariant'
I_GLAccountLineItemSemTag.FiscalYearVariant,
FiscalPeriod,
FiscalQuarter,
@ObjectModel.foreignKey.association: '_SoldProduct'
SoldProduct as Product,
@ObjectModel.foreignKey.association: '_SoldProductGroup'
SoldProductGroup as ProductGroup,
@ObjectModel.foreignKey.association: '_SalesOrganization'
SalesOrganization,
@ObjectModel.foreignKey.association: '_DistributionChannel'
DistributionChannel,
OrganizationDivision,
_Ledger,
_SourceLedger,
_CompanyCode,
_FiscalYear,
_JournalEntry,
_Hierarchy,
_SemanticTag,
_CompanyCodeCurrency,
_ServiceContract,
_ServiceContractItem,
_ServiceDocument,
_ServiceDocumentItem,
_ServiceDocumentType,
_ServiceContractType,
_FiscalYearVariant,
_SoldProduct,
_SoldProductGroup,
_SalesOrganization,
_DistributionChannel
}
where
_Ledger.IsLeadingLedger = 'X'
and(
GLAccountHierarchy is not initial
or GLAccountHierarchy <> ''
)
and(
(
AccountAssignmentType = 'PR'
and ControllingObjectClass = 'PA'
)
or AccountAssignmentType = 'EO'
or AccountAssignmentType = 'SV'
or AccountAssignmentType = 'SC'
or AccountAssignmentType = 'PD'
)
and(
SemanticTag = 'REC_MARGIN'
or SemanticTag = 'RECO_COS'
or SemanticTag = 'RECO_REV'
)
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_GLACCOUNTLINEITEMSEMTAG",
"I_LEDGER",
"I_USERSETGETPARAMFORCTRLGAREA",
"P_CALENDAR"
],
"ASSOCIATED":
[
"I_COMPANYCODE",
"I_CURRENCY",
"I_DISTRIBUTIONCHANNEL",
"I_FINANCIALSTATEMENTHIERARCHY",
"I_FISCALYEARFORCOMPANYCODE",
"I_FISCALYEARVARIANT",
"I_JOURNALENTRY",
"I_LEDGER",
"I_PRODUCT",
"I_PRODUCTGROUP",
"I_SALESORGANIZATION",
"I_SEMANTICTAG",
"I_SERVICEDOCUMENTTYPE",
"I_SRVCDOCBYDOCUMENTTYPE",
"I_SRVCDOCITEMBYDOCUMENTTYPE",
"P_CALENDAR"
],
"BASE":
[
"I_GLACCOUNTLINEITEMSEMTAG"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
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