I_ServiceOrderCube

DDL: I_SERVICEORDERCUBE Type: view COMPOSITE

Service Order - Cube

I_ServiceOrderCube is a Composite CDS View (Cube) that provides data about "Service Order - Cube" in SAP S/4HANA. It reads from 1 data source (I_ServiceDocumentEnhcd) and exposes 37 fields with key fields ServiceObjectType, ServiceOrder. It has 3 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_ServiceDocumentEnhcd I_ServiceDocumentEnhcd from

Associations (3)

CardinalityTargetAliasCondition
[0..1] P_SrvcOrdDistinctConfExist _SrvcOrdItmConfExist $projection.ServiceObjectType = _SrvcOrdItmConfExist.ServiceObjectType and $projection.ServiceOrder = _SrvcOrdItmConfExist.ServiceOrder
[1..1] I_SrvcOrdConfStatus _SrvcOrdConfStatus $projection.SrvcOrdHasConfdItem = _SrvcOrdConfStatus.SrvcOrdHasConfdItem
[0..1] E_ServiceDocument _ServiceDocumentExt $projection.ServiceObjectType = _ServiceDocumentExt.ServiceCategory and $projection.ServiceOrder = _ServiceDocumentExt.ServiceOrder

Annotations (17)

NameValueLevelField
EndUserText.label Service Order - Cube view
ClientHandling.algorithm #SESSION_VARIABLE view
AbapCatalog.sqlViewName ISERVORDCUBE view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view
VDM.lifecycle.status #DEPRECATED view
VDM.lifecycle.successor I_ServiceOrderCube_2 view
AccessControl.authorizationCheck #CHECK view
ObjectModel.representativeKey ServiceOrder view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XXL view
Analytics.dataCategory #CUBE view
Metadata.allowExtensions true view
Metadata.ignorePropagatedAnnotations true view

Fields (37)

KeyFieldSource TableSource FieldDescription
KEY ServiceObjectType ServiceObjectType
KEY ServiceOrder ServiceDocument
ServiceOrderDescription ServiceDocumentDescription
ServiceOrderStatus ServiceDocumentStatus
ServiceDocumentType ServiceDocumentType
SoldToParty SoldToParty
RequestedServiceEndDate RequestedServiceEndDate
ServiceDocumentPriority ServiceDocumentPriority
ServiceDocumentHasError ServiceDocumentHasError
ServiceDocNetAmount ServiceDocNetAmount
TransactionCurrency TransactionCurrency
SalesOrganizationOrgUnitID SalesOrganizationOrgUnitID
SalesOfficeOrgUnitID SalesOfficeOrgUnitID
SalesGroupOrgUnitID SalesGroupOrgUnitID
SalesOrganization SalesOrganization
DistributionChannel DistributionChannel
Division Division
SalesOffice SalesOffice
SalesGroup SalesGroup
int4asNmbrOfIncompleteServiceOrders
int4endasNumberOfOverdueServiceOrders
_ServiceObjType _ServiceObjType
_ServiceDocumentStatus _ServiceDocumentStatus
_ServiceDocumentType _ServiceDocumentType
_ServiceDocumentPriority _ServiceDocumentPriority
_SoldToParty _SoldToParty
_ServiceDocHasError _ServiceDocHasError
_SrvcOrdConfStatus _SrvcOrdConfStatus
_SalesOrganizationOrgUnit _SalesOrganizationOrgUnit
_SalesOfficeOrgUnit _SalesOfficeOrgUnit
_SalesGroupOrgUnit _SalesGroupOrgUnit
_SalesOrganization _SalesOrganization
_SalesOffice _SalesOffice
_SalesGroup _SalesGroup
_DistributionChannel _DistributionChannel
_Division _Division
_TransactionCurrency _TransactionCurrency
@EndUserText.label: 'Service Order - Cube'
@ClientHandling.algorithm: #SESSION_VARIABLE
@AbapCatalog: {
  sqlViewName: 'ISERVORDCUBE',
  compiler.compareFilter: true,
  preserveKey: true
}
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #PUBLIC_LOCAL_API,
  lifecycle.status: #DEPRECATED,
  lifecycle.successor: 'I_ServiceOrderCube_2'
}
@AccessControl: {
  authorizationCheck: #CHECK,
  personalData.blocking: #('TRANSACTIONAL_DATA')
}

@ObjectModel: {
   representativeKey: 'ServiceOrder',
   usageType: {
     dataClass:      #MIXED,
     serviceQuality: #D,
     sizeCategory:   #XXL
   }
}
@Analytics.dataCategory: #CUBE
@Metadata.allowExtensions:true
@Metadata.ignorePropagatedAnnotations: true

// View is C1 enabled.

// Conatin Deprecated annotations.


define view I_ServiceOrderCube
  as select from I_ServiceDocumentEnhcd

  association [0..1] to P_SrvcOrdDistinctConfExist as _SrvcOrdItmConfExist on  $projection.ServiceObjectType = _SrvcOrdItmConfExist.ServiceObjectType
                                                                           and $projection.ServiceOrder      = _SrvcOrdItmConfExist.ServiceOrder

  association [1..1] to I_SrvcOrdConfStatus        as _SrvcOrdConfStatus   on  $projection.SrvcOrdHasConfdItem = _SrvcOrdConfStatus.SrvcOrdHasConfdItem

  association [0..1] to E_ServiceDocument          as _ServiceDocumentExt  on  $projection.ServiceObjectType = _ServiceDocumentExt.ServiceCategory
                                                                           and $projection.ServiceOrder      = _ServiceDocumentExt.ServiceOrder
{
      @ObjectModel.foreignKey.association: '_ServiceObjType'
  key ServiceObjectType,
  key ServiceDocument               as ServiceOrder,
      ServiceDocumentDescription    as ServiceOrderDescription,
      @ObjectModel.foreignKey.association: '_ServiceDocumentStatus'
      ServiceDocumentStatus         as ServiceOrderStatus,
      @ObjectModel.foreignKey.association: '_ServiceDocumentType'
      ServiceDocumentType,

      @ObjectModel.foreignKey.association: '_SoldToParty'
      SoldToParty,

      RequestedServiceEndDate,

      @ObjectModel.foreignKey.association: '_ServiceDocumentPriority'
      ServiceDocumentPriority,

      @ObjectModel.foreignKey.association: '_ServiceDocHasError'
      ServiceDocumentHasError,

      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceDocNetAmount,

      @ObjectModel.foreignKey.association: '_TransactionCurrency'
      @Semantics.currencyCode:true
      TransactionCurrency,

      @ObjectModel.foreignKey.association: '_SalesOrganizationOrgUnit'
      SalesOrganizationOrgUnitID,

      @ObjectModel.foreignKey.association: '_SalesOfficeOrgUnit'
      SalesOfficeOrgUnitID,

      @ObjectModel.foreignKey.association: '_SalesGroupOrgUnit'
      SalesGroupOrgUnitID,

      @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,

      @DefaultAggregation: #SUM
      cast( case when ServiceDocumentStatus = 'A' then cast (1 as abap.int4)
                 when ServiceDocumentStatus = 'B' then cast (1 as abap.int4)
                 when ServiceDocumentStatus = 'D' then cast (1 as abap.int4)
                 end as abap.int4 ) as NmbrOfIncompleteServiceOrders,

      @DefaultAggregation: #SUM
      case when RequestedServiceEndDate < $session.system_date  and
                      ( ServiceDocumentStatus = 'A' or
                        ServiceDocumentStatus = 'B' or
                      ServiceDocumentStatus = 'D' )
            then cast (1 as abap.int4)
            end                     as NumberOfOverdueServiceOrders,

      // Confirmation exists or not

      case
           when _SrvcOrdItmConfExist.ServiceConfirmation is not null and
                      ( ServiceDocumentStatus = 'A' or
                        ServiceDocumentStatus = 'B' or
                      ServiceDocumentStatus = 'D' )
           then 'X'
           else ' '
        end                         as SrvcOrdHasConfdItem,

      _ServiceObjType,
      @ObjectModel.association.boundFields.dataMatchesSourceAndTargetTypes: true
      _ServiceDocumentStatus,
      _ServiceDocumentType,
      _ServiceDocumentPriority,
      _SoldToParty,
      @ObjectModel.association.boundFields.dataMatchesSourceAndTargetTypes: true
      _ServiceDocHasError,
      _SrvcOrdConfStatus,
      @ObjectModel.association.boundFields.dataMatchesSourceAndTargetTypes: true
      _SalesOrganizationOrgUnit,
      @ObjectModel.association.boundFields.dataMatchesSourceAndTargetTypes: true
      _SalesOfficeOrgUnit,
      @ObjectModel.association.boundFields.dataMatchesSourceAndTargetTypes: true
      _SalesGroupOrgUnit,
      _SalesOrganization,
      _SalesOffice,
      _SalesGroup,
      _DistributionChannel,
      _Division,
      _TransactionCurrency
}
where
      ServiceObjectType = 'BUS2000116'
  and ServiceDocumentIsQuotation != 'X'