I_ServiceContract

DDL: I_SERVICECONTRACT Type: view_entity BASIC Package: CRMS4_REPORT

Service Contract

I_ServiceContract is a Basic CDS View that provides data about "Service Contract" in SAP S/4HANA. It reads from 1 data source (I_ServiceDocument) and exposes 84 fields with key field ServiceContract. It has 4 associations to related views. Part of development package CRMS4_REPORT.

Data Sources (1)

SourceAliasJoin Type
I_ServiceDocument I_ServiceDocument from

Associations (4)

CardinalityTargetAliasCondition
[0..1] I_BusinessPartner _RespEmployee _RespEmployee.BusinessPartner = $projection.RespEmployeeBusinessPartnerId
[0..1] I_BusinessPartner _ContactPerson _ContactPerson.BusinessPartner = $projection.ContactPersonBusinessPartnerId
[0..1] I_SrvcDocPaymentMethod _PaymentMethod _PaymentMethod.PaymentMethod = $projection.PaymentMethod and _PaymentMethod.SalesOrganization = $projection.SalesOrganization and _PaymentMethod.OrgUnitTypeIDConcatenated = ''
[0..1] E_ServiceDocument _ServiceContractExt _ServiceContractExt.ServiceCategory = $projection.ServiceObjectType and _ServiceContractExt.ServiceOrder = $projection.ServiceContract

Annotations (12)

NameValueLevelField
EndUserText.label Service Contract view
AccessControl.authorizationCheck #MANDATORY view
AccessControl.personalData.blocking #NOT_REQUIRED view
Metadata.ignorePropagatedAnnotations true view
ObjectModel.representativeKey ServiceContract view
ObjectModel.sapObjectNodeType.name ServiceContract view
ObjectModel.modelingPattern #ANALYTICAL_DIMENSION view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #A view
ObjectModel.usageType.sizeCategory #XXL view
VDM.viewType #BASIC view
VDM.lifecycle.contract.type #PUBLIC_LOCAL_API view

Fields (84)

KeyFieldSource TableSource FieldDescription
KEY ServiceContract ServiceDocument
ServiceObjectType ServiceObjectType
ServiceContractUUID ServiceDocumentUUID
ServiceContractCharUUID
ServiceDocumentType ServiceDocumentType
ServiceContractDescription ServiceDocumentDescription
Language Language
PostingDate PostingDate
ServiceDocCreationDateTime ServiceDocCreationDateTime
ServiceDocChangedDateTime ServiceDocChangedDateTime
ServiceDocumentCreatedByUser ServiceDocumentCreatedByUser
ServiceDocumentChangedByUser ServiceDocumentChangedByUser
PricingDocument PricingDocument
RefBusinessSolutionOrder RefBusinessSolutionOrder
ServiceContractNetAmount ServiceDocNetAmount
ServiceContractGrossAmount ServiceDocGrossAmount
ServiceDocTaxAmount ServiceDocTaxAmount
SoldToParty SoldToParty
SoldToPartyRegion SoldToPartyRegion
SoldToPartyCountry SoldToPartyCountry
RespEmployeeBusinessPartnerId
ContactPersonBusinessPartnerId
ShipToParty ShipToParty
BillToParty BillToParty
PayerParty PayerParty
ServiceContractStartDateTime ServiceContractStartDateTime
ServiceContractEndDateTime ServiceContractEndDateTime
SrvcContrEarliestStartDateTime SrvcContrEarliestStartDateTime
SrvcContrLatestEndDateTime SrvcContrLatestEndDateTime
PaymentTerms PaymentTerms
PaymentMethod PaymentMethod
SrvcSEPAMandateRelevance SrvcSEPAMandateRelevance
SEPAMandate SEPAMandate
WBSElementInternalID WBSElementInternalID
TransactionCurrency TransactionCurrency
PurchaseOrderByCustomer PurchaseOrderByCustomer
CustomerPurchaseOrderDate CustomerPurchaseOrderDate
ServiceContractRejectionReason ServiceDocumentRejectionReason
Region Region
ServiceContractStatus ServiceDocumentStatus
ServiceContractIsReleased ServiceDocumentIsReleased
ServiceContractHasError ServiceDocumentHasError
SrvcContrBillingStatus ServiceDocBillingStatus
ServiceContractIsRejected ServiceDocumentIsRejected
ServiceContractIsOpen ServiceDocumentIsOpen
ServiceContractCanclnSts ServiceContractCanclnSts
SrvcContrRejectionStatus SrvcDocRejectionStatus
SalesOrganization SalesOrganization
SalesOffice SalesOffice
SalesGroup SalesGroup
Division Division
DistributionChannel DistributionChannel
BillingBlockReason BillingBlockReason
ServiceContractCanclnParty ServiceDocumentCanclnParty
ServiceContrCancellationReason ServiceDocumentCanclnReason
SrvcContrCreditStatus SrvcDocCreditStatus
_ServiceDocumentType _ServiceDocumentType
_ServiceObjType _ServiceObjType
_SoldToParty _SoldToParty
_SoldToPartyRegion _SoldToPartyRegion
_SoldToPartyCountry _SoldToPartyCountry
_RespEmployee _RespEmployee
_ContactPerson _ContactPerson
_ShipToParty _ShipToParty
_BillToParty _BillToParty
_PayerParty _PayerParty
_PaymentTerms _PaymentTerms
_PaymentMethod _PaymentMethod
_SrvcSEPAMandateRelevance _SrvcSEPAMandateRelevance
_TransactionCurrency _TransactionCurrency
_SrvcDocumentRejectionReason _SrvcDocumentRejectionReason
_Region _Region
_SrvcDocLifecycleStatus _SrvcDocLifecycleStatus
_ServiceDocHasError _ServiceDocHasError
_ServiceDocBillingStatus _ServiceDocBillingStatus
_ServiceDocumentIsOpen _ServiceDocumentIsOpen
_ServiceContractCanclnSts _ServiceContractCanclnSts
_SalesOrganization _SalesOrganization
_SalesOffice _SalesOffice
_SalesGroup _SalesGroup
_Division _Division
_DistributionChannel _DistributionChannel
_BillingBlockReason _BillingBlockReason
_SrvcDocCreditStatus _SrvcDocCreditStatus
@EndUserText.label: 'Service Contract'

@AccessControl: {
    authorizationCheck: #MANDATORY,
    personalData.blocking: #NOT_REQUIRED
}

@Metadata.ignorePropagatedAnnotations: true

@ObjectModel: {
    representativeKey: 'ServiceContract',
    sapObjectNodeType.name: 'ServiceContract',
    supportedCapabilities: [ #ANALYTICAL_DIMENSION, 
                             #CDS_MODELING_ASSOCIATION_TARGET, 
                             #SQL_DATA_SOURCE, 
                             #CDS_MODELING_DATA_SOURCE ],
    modelingPattern: #ANALYTICAL_DIMENSION,
    usageType: {
        dataClass:      #TRANSACTIONAL,
        serviceQuality: #A,
        sizeCategory:   #XXL
    }
}

@VDM: {
  viewType: #BASIC,
  lifecycle.contract.type: #PUBLIC_LOCAL_API
}

define view entity I_ServiceContract
  as select from I_ServiceDocument
  
  association [0..1] to I_BusinessPartner       as _RespEmployee          on _RespEmployee.BusinessPartner = $projection.RespEmployeeBusinessPartnerId 
  
  association [0..1] to I_BusinessPartner       as _ContactPerson         on _ContactPerson.BusinessPartner = $projection.ContactPersonBusinessPartnerId
  
  association [0..1] to I_SrvcDocPaymentMethod  as _PaymentMethod         on _PaymentMethod.PaymentMethod             = $projection.PaymentMethod
                                                                         and _PaymentMethod.SalesOrganization         = $projection.SalesOrganization
                                                                         and _PaymentMethod.OrgUnitTypeIDConcatenated = ''

  association [0..1] to E_ServiceDocument       as _ServiceContractExt    on _ServiceContractExt.ServiceCategory = $projection.ServiceObjectType
                                                                         and _ServiceContractExt.ServiceOrder    = $projection.ServiceContract 
{
      // Header Keys

      @ObjectModel.text.element: [ 'ServiceContractDescription' ]
  key ServiceDocument                                                 as ServiceContract,
      @ObjectModel.foreignKey.association: '_ServiceObjType'
      ServiceObjectType,
      
      ServiceDocumentUUID                                             as ServiceContractUUID,
      cast( ServiceDocumentCharUUID as sysuuid_c preserving type )    as ServiceContractCharUUID,

      // Header Details

      @ObjectModel.foreignKey.association: '_ServiceDocumentType'
      ServiceDocumentType,
      @Semantics.text: true
      ServiceDocumentDescription                                      as ServiceContractDescription,
      Language,
      PostingDate,
      @Semantics.dateTime: true
      ServiceDocCreationDateTime,
      @Semantics.dateTime: true
      ServiceDocChangedDateTime,
      ServiceDocumentCreatedByUser,
      ServiceDocumentChangedByUser,
      PricingDocument,
      RefBusinessSolutionOrder,
      @Aggregation.default: #SUM
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceDocNetAmount                                             as ServiceContractNetAmount,
      @Aggregation.default: #SUM
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceDocGrossAmount                                           as ServiceContractGrossAmount,
      @Aggregation.default: #SUM
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceDocTaxAmount,
      SoldToParty,
      SoldToPartyRegion,
      SoldToPartyCountry,

      @ObjectModel.foreignKey.association: '_RespEmployee'
      cast( ResponsibleEmployee as crmt_person_resp preserving type ) as RespEmployeeBusinessPartnerId,
      @ObjectModel.foreignKey.association: '_ContactPerson'
      cast( ContactPerson as crmt_contact_person preserving type )    as ContactPersonBusinessPartnerId,

      ShipToParty,
      BillToParty,
      PayerParty,
      
      ServiceContractStartDateTime,
      ServiceContractEndDateTime,
      SrvcContrEarliestStartDateTime,
      SrvcContrLatestEndDateTime,
      PaymentTerms,
      PaymentMethod,
      SrvcSEPAMandateRelevance,
      SEPAMandate,
      WBSElementInternalID,
      TransactionCurrency,
      PurchaseOrderByCustomer,
      CustomerPurchaseOrderDate,
      ServiceDocumentRejectionReason                                  as ServiceContractRejectionReason,
      Region,
      ServiceDocumentStatus                                           as ServiceContractStatus,
      @Semantics.booleanIndicator: true
      ServiceDocumentIsReleased                                       as ServiceContractIsReleased,
      @Semantics.booleanIndicator: true
      ServiceDocumentHasError                                         as ServiceContractHasError,
      ServiceDocBillingStatus                                         as SrvcContrBillingStatus,
      @Semantics.booleanIndicator: true
      ServiceDocumentIsRejected                                       as ServiceContractIsRejected,
      @Semantics.booleanIndicator: true
      ServiceDocumentIsOpen                                           as ServiceContractIsOpen,
      ServiceContractCanclnSts,
      SrvcDocRejectionStatus                                          as SrvcContrRejectionStatus,
      
      @ObjectModel.foreignKey.association: '_SalesOrganization'
      SalesOrganization,
      @ObjectModel.foreignKey.association: '_SalesOffice'
      SalesOffice,
      @ObjectModel.foreignKey.association: '_SalesGroup'
      SalesGroup,
      @ObjectModel.foreignKey.association: '_Division'
      Division,
      @ObjectModel.foreignKey.association: '_DistributionChannel'
      DistributionChannel,
      BillingBlockReason,
      ServiceDocumentCanclnParty                                      as ServiceContractCanclnParty,
      ServiceDocumentCanclnReason                                     as ServiceContrCancellationReason,
      SrvcDocCreditStatus                                             as SrvcContrCreditStatus,
      
      _ServiceDocumentType,
      _ServiceObjType,
      _SoldToParty,
      _SoldToPartyRegion,
      _SoldToPartyCountry,
      _RespEmployee,
      _ContactPerson,
      _ShipToParty,
      _BillToParty,
      _PayerParty,
      _PaymentTerms,
      _PaymentMethod,
      _SrvcSEPAMandateRelevance,
      _TransactionCurrency,
      _SrvcDocumentRejectionReason,
      _Region,
      _SrvcDocLifecycleStatus,
      _ServiceDocHasError,
      _ServiceDocBillingStatus,
      _ServiceDocumentIsOpen,
      _ServiceContractCanclnSts,
      _SalesOrganization,
      _SalesOffice,
      _SalesGroup,
      _Division,
      _DistributionChannel,
      _BillingBlockReason,
      _SrvcDocCreditStatus
} where     ServiceObjectType = 'BUS2000112'
        and ServiceDocumentTemplateType is initial
        and ServiceDocumentIsQuotation = ' '