P_ServiceDocLinItmFinData

DDL: P_SERVICEDOCLINITMFINDATA Type: view COMPOSITE

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)

SourceAliasJoin Type
I_GLAccountLineItemSemTag I_GLAccountLineItemSemTag from
I_UserSetGetParamForCtrlgArea I_UserSetGetParamForCtrlgArea inner

Associations (1)

CardinalityTargetAliasCondition
[0..1] P_Calendar _YTDCalendar _YTDCalendar.CalendarDate = $session.system_date

Annotations (9)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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":""
}
}*/