I_ServiceContractPeriodicCube

DDL: I_SERVICECONTRACTPERIODICCUBE Type: view COMPOSITE Package: CRMS4_ANALYTICS_SERVICE_CONTR

Service Contract Cube with Periodic Data

I_ServiceContractPeriodicCube is a Composite CDS View (Cube) that provides data about "Service Contract Cube with Periodic Data" in SAP S/4HANA. It reads from 1 data source (I_ServiceDocumentEnhcd) and exposes 57 fields with key fields ServiceObjectType, ServiceContract. It has 10 associations to related views. Part of development package CRMS4_ANALYTICS_SERVICE_CONTR.

Data Sources (1)

SourceAliasJoin Type
I_ServiceDocumentEnhcd I_ServiceDocumentEnhcd from

Parameters (1)

NameTypeDefault
P_DisplayCurrency vdm_v_display_currency

Associations (10)

CardinalityTargetAliasCondition
[0..1] P_SrvcContrFinPeriodicSum _FinanceData $projection.ServiceContract = _FinanceData.ServiceContract
[0..1] P_SrvcContrDays _ContractDays $projection.ServiceContract = _ContractDays.ServiceDocument and $projection.ServiceObjectType = _ContractDays.ServiceObjectType
[0..1] I_CalendarDate _CurrentDate _CurrentDate.CalendarDate = $session.system_date
[0..1] I_Currency _TransactionCurrency $projection.TransactionCurrency = _TransactionCurrency.Currency
[0..1] I_Currency _CompanyCodeCurrency $projection.CompanyCodeCurrency = _CompanyCodeCurrency.Currency
[0..1] P_SrvcContrList _Contract $projection.ServiceContract = _Contract.ServiceContract
[0..1] E_ServiceDocument _ServiceDocumentExt $projection.ServiceObjectType = _ServiceDocumentExt.ServiceCategory and $projection.ServiceContract = _ServiceDocumentExt.ServiceOrder
[1..1] I_CalendarMonth _CalendarMonth $projection.CalendarMonth = _CalendarMonth.CalendarMonth
[1..1] I_CalendarQuarter _CalendarQuarter $projection.CalendarQuarter = _CalendarQuarter.CalendarQuarter
[1..1] I_CalendarYear _CalendarYear $projection.CalendarYear = _CalendarYear.CalendarYear

Annotations (14)

NameValueLevelField
EndUserText.label Service Contract Cube with Periodic Data view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName ISERVCCONTRPERD view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
AccessControl.authorizationCheck #CHECK view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XXL view
Analytics.dataCategory #CUBE view
Analytics.internalName #LOCAL view
Metadata.allowExtensions true view

Fields (57)

KeyFieldSource TableSource FieldDescription
KEY ServiceObjectType ServiceObjectType
KEY ServiceContract ServiceDocument
ServiceContractUUID ServiceDocumentCharUUID
ServiceDocumentDescription ServiceDocumentDescription
ServiceDocumentType ServiceDocumentType
_ServiceDocumentType _ServiceDocumentType
ServiceDocumentStatus ServiceDocumentStatus
ServiceContractStartDate ServiceContractStartDate
ServiceContractEndDate ServiceContractEndDate
ServiceContractStartDateTime ServiceContractStartDateTime
ServiceContractEndDateTime ServiceContractEndDateTime
CreationDate _FinanceData CreationDate
CalendarQuarter _FinanceData CalendarQuarter
CalendarYear _FinanceData CalendarYear
CalendarMonth _FinanceData CalendarMonth
CalendarWeek _FinanceData CalendarWeek
TransactionCurrency TransactionCurrency
SalesOrganization SalesOrganization
DistributionChannel DistributionChannel
Division Division
SalesOffice SalesOffice
SalesGroup SalesGroup
SalesOrganizationOrgUnitID SalesOrganizationOrgUnitID
SalesOfficeOrgUnitID SalesOfficeOrgUnitID
SalesGroupOrgUnitID SalesGroupOrgUnitID
ServiceOrganization ServiceOrganization
SoldToPartyCountry SoldToPartyCountry
_SoldToPartyCountry _SoldToPartyCountry
SoldToPartyRegion SoldToPartyRegion
_SoldToPartyRegion _SoldToPartyRegion
SoldToParty SoldToParty
BusinessPartnerFullName _SoldToParty BusinessPartnerFullName
ResponsibleEmployee ResponsibleEmployee
CompanyCodeCurrency _FinanceData CompanyCodeCurrency
Currency
TotalSrvcContrValueInDC _Contract TotalSrvcContrValueInDC
_ServiceObjType _ServiceObjType
_CompanyCodeCurrency _CompanyCodeCurrency
_TransactionCurrency _TransactionCurrency
_CurrentDate _CurrentDate
_SoldToParty _SoldToParty
_SalesOrganization _SalesOrganization
_DistributionChannel _DistributionChannel
_Division _Division
_SalesOffice _SalesOffice
_SalesGroup _SalesGroup
_SalesOrganizationOrgUnit _SalesOrganizationOrgUnit
_SalesOrganizationOrgUnit_2 _SalesOrganizationOrgUnit_2
_SalesOfficeOrgUnit _SalesOfficeOrgUnit
_SalesOfficeOrgUnit_2 _SalesOfficeOrgUnit_2
_SalesGroupOrgUnit _SalesGroupOrgUnit
_SalesGroupOrgUnit_2 _SalesGroupOrgUnit_2
_ServiceDocumentStatus _ServiceDocumentStatus
_SrvcDocLifecycleStatus _SrvcDocLifecycleStatus
_CalendarMonth _CalendarMonth
_CalendarQuarter _CalendarQuarter
_CalendarYear _CalendarYear
@EndUserText.label: 'Service Contract Cube with Periodic Data'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog: {
  sqlViewName: 'ISERVCCONTRPERD',
  compiler.compareFilter: true,
  preserveKey: true
}
@VDM: {
  viewType: #COMPOSITE,
   lifecycle.contract.type: #PUBLIC_LOCAL_API
}
@AccessControl: {
  authorizationCheck: #CHECK,
  personalData.blocking: #('TRANSACTIONAL_DATA')
}
@ObjectModel: {
//   representativeKey: 'ServiceContract',

   usageType: {
     dataClass:      #MIXED,
     serviceQuality: #D,
     sizeCategory:   #XXL
   }
}
@Analytics: {
   dataCategory: #CUBE,
   internalName: #LOCAL
   }
@Metadata.allowExtensions:true
//@Metadata.ignorePropagatedAnnotations: true



define view I_ServiceContractPeriodicCube
  with parameters
    P_DisplayCurrency : vdm_v_display_currency
  as select from I_ServiceDocumentEnhcd
  association [0..1] to P_SrvcContrFinPeriodicSum as _FinanceData         on  $projection.ServiceContract = _FinanceData.ServiceContract
  association [0..1] to P_SrvcContrDays           as _ContractDays        on  $projection.ServiceContract   = _ContractDays.ServiceDocument
                                                                          and $projection.ServiceObjectType = _ContractDays.ServiceObjectType
  association [0..1] to I_CalendarDate            as _CurrentDate         on  _CurrentDate.CalendarDate = $session.system_date
  association [0..1] to I_Currency                as _TransactionCurrency on  $projection.TransactionCurrency = _TransactionCurrency.Currency
  association [0..1] to I_Currency                as _CompanyCodeCurrency on  $projection.CompanyCodeCurrency = _CompanyCodeCurrency.Currency
  association [0..1] to P_SrvcContrList           as _Contract            on  $projection.ServiceContract = _Contract.ServiceContract
  association [0..1] to E_ServiceDocument         as _ServiceDocumentExt  on  $projection.ServiceObjectType = _ServiceDocumentExt.ServiceCategory
                                                                          and $projection.ServiceContract   = _ServiceDocumentExt.ServiceOrder
  association [1..1] to I_CalendarMonth           as _CalendarMonth       on  $projection.CalendarMonth = _CalendarMonth.CalendarMonth
  association [1..1] to I_CalendarQuarter         as _CalendarQuarter     on  $projection.CalendarQuarter = _CalendarQuarter.CalendarQuarter
  association [1..1] to I_CalendarYear            as _CalendarYear        on  $projection.CalendarYear = _CalendarYear.CalendarYear
{
       @ObjectModel.foreignKey.association: '_ServiceObjType'
  key  ServiceObjectType,
  key  ServiceDocument                      as ServiceContract,
       ServiceDocumentCharUUID              as ServiceContractUUID,

       ServiceDocumentDescription,
       @ObjectModel.foreignKey.association: '_ServiceDocumentType'
       ServiceDocumentType,
       _ServiceDocumentType,
       ServiceDocumentStatus,
       ServiceContractStartDate,
       ServiceContractEndDate,

       ServiceContractStartDateTime,
       ServiceContractEndDateTime,

       _FinanceData.CreationDate            as CreationDate,
       @ObjectModel.foreignKey.association: '_CalendarQuarter'
       _FinanceData.CalendarQuarter         as CalendarQuarter,
       @ObjectModel.foreignKey.association: '_CalendarYear'
       _FinanceData.CalendarYear            as CalendarYear,

       @ObjectModel.foreignKey.association: '_CalendarMonth'
       _FinanceData.CalendarMonth           as CalendarMonth,
       _FinanceData.CalendarWeek            as CalendarWeek,


       @ObjectModel.foreignKey.association: '_TransactionCurrency'
       @Semantics.currencyCode:true
       TransactionCurrency,
       @ObjectModel.foreignKey.association: '_SalesOrganization'
       SalesOrganization,
       @ObjectModel.foreignKey.association: '_DistributionChannel'
       DistributionChannel,
       @ObjectModel.foreignKey.association: '_Division'
       Division,
       @ObjectModel.foreignKey.association: '_SalesOffice'
       SalesOffice,
       @ObjectModel.foreignKey.association: '_SalesGroup'
       SalesGroup,
       @ObjectModel.foreignKey.association: '_SalesOrganizationOrgUnit_2'
       SalesOrganizationOrgUnitID,
       @ObjectModel.foreignKey.association: '_SalesOfficeOrgUnit_2'
       SalesOfficeOrgUnitID,
       @ObjectModel.foreignKey.association: '_SalesGroupOrgUnit_2'
       SalesGroupOrgUnitID,
       ServiceOrganization,
       @ObjectModel.foreignKey.association: '_SoldToPartyCountry'
       SoldToPartyCountry,
       _SoldToPartyCountry,
       @ObjectModel.foreignKey.association: '_SoldToPartyRegion'
       SoldToPartyRegion,
       _SoldToPartyRegion,
       SoldToParty,
       _SoldToParty.BusinessPartnerFullName as BusinessPartnerFullName,
       ResponsibleEmployee,

       ///////////////////////////////////////////////////////////////////////////////////////////////

       /////////////////////////// List of Contracts by Contract Value ///////////////////////////////

       ///////////////////////////////////////////////////////////////////////////////////////////////


       @ObjectModel.foreignKey.association: '_CompanyCodeCurrency'
       @Semantics.currencyCode: true
       _FinanceData.CompanyCodeCurrency     as CompanyCodeCurrency,

       @Semantics.currencyCode: true
       cast(:P_DisplayCurrency as currency) as Currency,

       @Semantics: { amount : {currencyCode: 'Currency'} }
       @DefaultAggregation: #SUM
       currency_conversion(  amount =>  ServiceDocNetAmount,
                                     source_currency =>  TransactionCurrency,
                                     target_currency => $parameters.P_DisplayCurrency,
                                     exchange_rate_type => 'M',
                                     exchange_rate_date =>  cast( $session.system_date as abap.dats),
                                     error_handling => 'KEEP_UNCONVERTED'
                                    )       as ServiceDocNetAmount,

       @Semantics: { amount : {currencyCode: 'Currency'} }
       _Contract.TotalSrvcContrValueInDC,

       @Semantics: { amount : {currencyCode: 'Currency'} }
       @DefaultAggregation: #SUM
       currency_conversion(  amount =>  _Contract.AnnualSrvcContrValueInDC,
                                     source_currency =>  TransactionCurrency,
                                     target_currency => $parameters.P_DisplayCurrency,
                                     exchange_rate_type => 'M',
                                     exchange_rate_date =>  cast( $session.system_date as abap.dats),
                                     error_handling => 'KEEP_UNCONVERTED'
                                    )       as AnnualSrvcContrValueInDC,

       @Semantics: { amount : {currencyCode: 'Currency'} }
       @DefaultAggregation: #SUM
       currency_conversion(  amount =>   _FinanceData.SrvcContrProfitabilityInDC,
                                source_currency =>  _FinanceData.CompanyCodeCurrency,
                                target_currency => $parameters.P_DisplayCurrency,
                                exchange_rate_type => 'M',
                                exchange_rate_date =>  cast( $session.system_date as abap.dats),
                                error_handling => 'KEEP_UNCONVERTED'
                               )            as SrvcContrProfitabilityInDC,

       @Semantics: { amount : {currencyCode: 'Currency'} }
       @DefaultAggregation: #SUM
       currency_conversion(  amount =>   _FinanceData.TotalSrvcContrCostAmtInCc,
                                source_currency =>  _FinanceData.CompanyCodeCurrency,
                                target_currency => $parameters.P_DisplayCurrency,
                                exchange_rate_type => 'M',
                                exchange_rate_date =>  cast( $session.system_date as abap.dats),
                                error_handling => 'KEEP_UNCONVERTED'
                               )            as TotalSrvcContrCostAmtInCc,

       @Semantics: { amount : {currencyCode: 'Currency'} }
       @DefaultAggregation: #SUM
       currency_conversion(  amount =>   _FinanceData.TotalSrvcContrRevnAmtInCc,
                                source_currency =>  _FinanceData.CompanyCodeCurrency,
                                target_currency => $parameters.P_DisplayCurrency,
                                exchange_rate_type => 'M',
                                exchange_rate_date =>  cast( $session.system_date as abap.dats),
                                error_handling => 'KEEP_UNCONVERTED'
                               )            as TotalSrvcContrRevnAmtInCc,

       @Semantics: { amount : {currencyCode: 'Currency'} }
       @DefaultAggregation: #SUM
       currency_conversion(  amount =>   _FinanceData.YTDSrvcContrCostInDC,
                      source_currency =>  _FinanceData.CompanyCodeCurrency,
                      target_currency => $parameters.P_DisplayCurrency,
                      exchange_rate_type => 'M',
                      exchange_rate_date =>  cast( $session.system_date as abap.dats),
                      error_handling => 'KEEP_UNCONVERTED'
                     )                      as YTDSrvcContrCostInDC,

       @Semantics: { amount : {currencyCode: 'Currency'} }
       @DefaultAggregation: #SUM
       currency_conversion(  amount =>   _FinanceData.YTDSrvcContrRevnAmtInDC ,
                                  source_currency =>  _FinanceData.CompanyCodeCurrency,
                                  target_currency => $parameters.P_DisplayCurrency,
                                  exchange_rate_type => 'M',
                                  exchange_rate_date =>  cast( $session.system_date as abap.dats),
                                  error_handling => 'KEEP_UNCONVERTED'
                                 )          as YTDSrvcContrRevnAmtInDC,

       @Semantics: { amount : {currencyCode: 'Currency'} }
       @DefaultAggregation: #SUM
       currency_conversion(  amount =>   _FinanceData.YTDSrvcContrPrftMarginAmtInDC ,
                                  source_currency =>  _FinanceData.CompanyCodeCurrency,
                                  target_currency => $parameters.P_DisplayCurrency,
                                  exchange_rate_type => 'M',
                                  exchange_rate_date =>  cast( $session.system_date as abap.dats),
                                  error_handling => 'KEEP_UNCONVERTED'
                                 )          as YTDSrvcContrPrftMarginAmtInDC,

       /* Associations */
       _ServiceObjType,
       _CompanyCodeCurrency,
       _TransactionCurrency,
       _CurrentDate,
       _SoldToParty,
       _SalesOrganization,
       _DistributionChannel,
       _Division,
       _SalesOffice,
       _SalesGroup,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_SalesOrganizationOrgUnit_2'
      _SalesOrganizationOrgUnit,
      _SalesOrganizationOrgUnit_2,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_SalesOfficeOrgUnit_2'
      _SalesOfficeOrgUnit,
      _SalesOfficeOrgUnit_2,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_SalesGroupOrgUnit_2'       
      _SalesGroupOrgUnit,
      _SalesGroupOrgUnit_2,
      @ObjectModel.association.boundFields.dataMatchesSourceAndTargetTypes: true
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_SrvcDocLifecycleStatus'
      _ServiceDocumentStatus,
      _SrvcDocLifecycleStatus,
       _CalendarMonth,
       _CalendarQuarter,
       _CalendarYear

}
where
      ServiceObjectType      = 'BUS2000112'
  and ServiceContractEndDate is not initial