C_ServiceQuotationDEX

DDL: C_SERVICEQUOTATIONDEX Type: view_entity CONSUMPTION Package: CRMS4_ANALYTICS_DEX

Data Extraction for Service Quotation

C_ServiceQuotationDEX is a Consumption CDS View (Fact) that provides data about "Data Extraction for Service Quotation" in SAP S/4HANA. It reads from 1 data source (I_ServiceDocumentEnhcd) and exposes 37 fields with key fields ServiceObjectType, ServiceDocument. It has 1 association to related views. Part of development package CRMS4_ANALYTICS_DEX.

Data Sources (1)

SourceAliasJoin Type
I_ServiceDocumentEnhcd ServiceQuotation from

Associations (1)

CardinalityTargetAliasCondition
[0..1] E_ServiceDocument _ServiceDocumentExt $projection.ServiceObjectType = _ServiceDocumentExt.ServiceCategory and $projection.ServiceDocument = _ServiceDocumentExt.ServiceOrder

Annotations (12)

NameValueLevelField
EndUserText.label Data Extraction for Service Quotation view
VDM.viewType #CONSUMPTION view
Analytics.technicalName CSRVCQTANDEX view
Analytics.dataCategory #FACT view
Analytics.dataExtraction.enabled true view
AccessControl.authorizationCheck #MANDATORY view
ObjectModel.representativeKey ServiceDocument view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.sapObjectNodeType.name ServiceQuotation view
Metadata.ignorePropagatedAnnotations true view

Fields (37)

KeyFieldSource TableSource FieldDescription
KEY ServiceObjectType I_ServiceDocumentEnhcd ServiceObjectType
KEY ServiceDocument I_ServiceDocumentEnhcd ServiceDocument
ServiceDocumentDescription I_ServiceDocumentEnhcd ServiceDocumentDescription
RequestedServiceStartDateTime I_ServiceDocumentEnhcd RequestedServiceStartDateTime
RequestedServiceEndDateTime I_ServiceDocumentEnhcd RequestedServiceEndDateTime
SrvcQtanValidityStartDateTime I_ServiceDocumentEnhcd SrvcQtanValidityStartDateTime
SrvcQtanValidityEndDateTime I_ServiceDocumentEnhcd SrvcQtanValidityEndDateTime
ServiceDocumentIsReleased I_ServiceDocumentEnhcd ServiceDocumentIsReleased
ServiceDocumentIsOpen I_ServiceDocumentEnhcd ServiceDocumentIsOpen
ServiceDocumentIsRejected I_ServiceDocumentEnhcd ServiceDocumentIsRejected
ServiceDocumentStatus I_ServiceDocumentEnhcd ServiceDocumentStatus
SalesOrganization I_ServiceDocumentEnhcd SalesOrganization
DistributionChannel I_ServiceDocumentEnhcd DistributionChannel
Division I_ServiceDocumentEnhcd Division
SalesOffice I_ServiceDocumentEnhcd SalesOffice
SalesGroup I_ServiceDocumentEnhcd SalesGroup
ContactPersonBusinessPartnerId I_ServiceDocumentEnhcd ContactPerson
RespyMgmtGlobalTeamID
SoldToParty I_ServiceDocumentEnhcd SoldToParty
ShipToParty I_ServiceDocumentEnhcd ShipToParty
PaymentTerms I_ServiceDocumentEnhcd PaymentTerms
ServiceDocumentRejectionReason I_ServiceDocumentEnhcd ServiceDocumentRejectionReason
TransactionCurrency I_ServiceDocumentEnhcd TransactionCurrency
ServiceDocGrossAmount I_ServiceDocumentEnhcd ServiceDocGrossAmount
ServiceDocNetAmount I_ServiceDocumentEnhcd ServiceDocNetAmount
ServiceDocTaxAmount I_ServiceDocumentEnhcd ServiceDocTaxAmount
ReferenceInHouseRepair I_ServiceDocumentEnhcd ReferenceInHouseRepair
ServiceDocumentType I_ServiceDocumentEnhcd ServiceDocumentType
SerialNumber ServiceQtanRefObj SerialNumber
Equipment ServiceQtanRefObj Equipment
SrvcQtanFunctionalLocation
ProductID ServiceQtanRefObj ProductID
_ServiceObjType I_ServiceDocumentEnhcd _ServiceObjType
_ServiceDocumentType I_ServiceDocumentEnhcd _ServiceDocumentType
_TransactionCurrency I_ServiceDocumentEnhcd _TransactionCurrency
_SrvcDocLifecycleStatus I_ServiceDocumentEnhcd _SrvcDocLifecycleStatus
_SrvcDocumentRejectionReason I_ServiceDocumentEnhcd _SrvcDocumentRejectionReason
@EndUserText.label: 'Data Extraction for Service Quotation'
@VDM: {
  viewType: #CONSUMPTION
  // lifecycle.contract.type: #PUBLIC_LOCAL_API  //! Removed due to ATC

}

@Analytics: {
    technicalName: 'CSRVCQTANDEX',
    dataCategory: #FACT,
    dataExtraction: {
        enabled: true,
        delta.changeDataCapture: {
            mapping:[
                {
                    filter: [{operator: #EQ, tableElement: 'objtype_h', value: 'BUS2000116'}],
                    table: 'crms4d_serv_h', role: #MAIN,
                    viewElement: ['ServiceObjectType', 'ServiceDocument'],
                    tableElement: ['objtype_h', 'object_id']
                },
                {
                    filter: [{operator: #EQ, tableElement: 'objtype_h', value: 'BUS2000116'}],
                    table: 'crms4d_refobj', role: #LEFT_OUTER_TO_ONE_JOIN,
                    viewElement: ['ServiceObjectType', 'ServiceDocument'],
                    tableElement: ['objtype_h', 'object_id']
                }  ]  }   }   }

@AccessControl: {
  authorizationCheck: #MANDATORY,
  personalData.blocking: #('TRANSACTIONAL_DATA')
}

@ObjectModel: {
  representativeKey: 'ServiceDocument',
   usageType: {
     dataClass:      #TRANSACTIONAL,
     serviceQuality: #D,
     sizeCategory:   #XL
   },
   supportedCapabilities: [#EXTRACTION_DATA_SOURCE]
}

@ObjectModel.sapObjectNodeType.name: 'ServiceQuotation'
@Metadata.ignorePropagatedAnnotations: true

define view entity C_ServiceQuotationDEX
  as select from           I_ServiceDocumentEnhcd     as ServiceQuotation
    left outer to one join I_ServiceDocumentRefObject as ServiceQtanRefObj on  ServiceQtanRefObj.ServiceObjectType      = 'BUS2000116'
                                                                           and ServiceQtanRefObj.ServiceDocument        = ServiceQuotation.ServiceDocument
                                                                           and ServiceQtanRefObj.ServiceDocumentItem    is null
                                                                           and ServiceQtanRefObj.SrvcRefObjIsMainObject = 'X'

  association [0..1] to E_ServiceDocument as _ServiceDocumentExt on  $projection.ServiceObjectType = _ServiceDocumentExt.ServiceCategory
                                                                 and $projection.ServiceDocument   = _ServiceDocumentExt.ServiceOrder


{
      @ObjectModel.foreignKey.association: '_ServiceObjType'
  key ServiceQuotation.ServiceObjectType,
  key ServiceQuotation.ServiceDocument,
      /* Header Details */
      //      ServiceQuotation.ServiceDocumentUUID,

      //      ServiceQuotation.ServiceDocumentCharUUID,

      ServiceQuotation.ServiceDocumentDescription,
      ServiceQuotation.RequestedServiceStartDateTime,
      ServiceQuotation.RequestedServiceEndDateTime,
      ServiceQuotation.SrvcQtanValidityStartDateTime,
      ServiceQuotation.SrvcQtanValidityEndDateTime,
      @Semantics.booleanIndicator: true
      ServiceQuotation.ServiceDocumentIsReleased,
      @Semantics.booleanIndicator: true
      ServiceQuotation.ServiceDocumentIsOpen,
      @Semantics.booleanIndicator: true
      ServiceQuotation.ServiceDocumentIsRejected,

      @ObjectModel.foreignKey.association: '_SrvcDocLifecycleStatus'
      ServiceQuotation.ServiceDocumentStatus,

      /* Organizational units with the S/4 SD codes */
      ServiceQuotation.SalesOrganization,
      ServiceQuotation.DistributionChannel,
      ServiceQuotation.Division,
      ServiceQuotation.SalesOffice,
      ServiceQuotation.SalesGroup,

      ServiceQuotation.ContactPerson       as ContactPersonBusinessPartnerId,
      ServiceQuotation._ServiceTeamHeader.RespyMgmtGlobalTeamID,
      
      ServiceQuotation.SoldToParty,
      ServiceQuotation.ShipToParty,
      
      ServiceQuotation.PaymentTerms,
      @ObjectModel.foreignKey.association: '_SrvcDocumentRejectionReason'
      ServiceQuotation.ServiceDocumentRejectionReason,
      
     
      @ObjectModel.foreignKey.association: '_TransactionCurrency'
      ServiceQuotation.TransactionCurrency,
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceQuotation.ServiceDocGrossAmount,
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceQuotation.ServiceDocNetAmount,
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceQuotation.ServiceDocTaxAmount,
      ServiceQuotation.ReferenceInHouseRepair,
      @ObjectModel.foreignKey.association: '_ServiceDocumentType'
      ServiceQuotation.ServiceDocumentType,

      /* Reference Object Details */
//            ServiceQtanRefObj.ServiceRefObjectSequenceNumber,

      ServiceQtanRefObj.SerialNumber,
      ServiceQtanRefObj.Equipment,
      cast ( ServiceQtanRefObj.FunctionalLocation as functionallocation preserving type ) as SrvcQtanFunctionalLocation,
      ServiceQtanRefObj.ProductID,
//      ServiceQtanRefObj.ServiceDocumentItem,

//      ServiceQtanRefObj.SrvcRefObjIsMainObject,

      

      /* Keys */
      ServiceQuotation._ServiceObjType,

      ServiceQuotation._ServiceDocumentType,
      ServiceQuotation._TransactionCurrency,
      ServiceQuotation._SrvcDocLifecycleStatus,
      ServiceQuotation._SrvcDocumentRejectionReason


}
where
      ServiceQuotation.ServiceObjectType          = 'BUS2000116'
  and ServiceQuotation.ServiceDocumentIsQuotation = 'X'