R_ServiceContractTP

DDL: R_SERVICECONTRACTTP Type: view_entity TRANSACTIONAL Package: CRMS4_SERVICE_CONTRACT_RAP

Service Contract - TP

R_ServiceContractTP is a Transactional CDS View that provides data about "Service Contract - TP" in SAP S/4HANA. It reads from 1 data source (I_ServiceDocumentEnhcd) and exposes 117 fields with key field ServiceContract. It has 33 associations to related views. Part of development package CRMS4_SERVICE_CONTRACT_RAP.

Data Sources (1)

SourceAliasJoin Type
I_ServiceDocumentEnhcd I_ServiceDocumentEnhcd from

Associations (33)

CardinalityTargetAliasCondition
[0..1] I_StatusObjectUUIDStatus _SrvcContrStatus $projection.ServiceContractUUID = _SrvcContrStatus.StatusObjectUUID and ( _SrvcContrStatus.StatusCode = 'I1002' or _SrvcContrStatus.StatusCode = 'I1003' or _SrvcContrStatus.StatusCode = 'I1004' or _SrvcContrStatus.StatusCode = 'I1005' ) and _SrvcContrStatus.StatusIsActive = 'X'
[0..1] I_CustMgmtExtRefID _ExtRefServiceContract _ExtRefServiceContract.CustMgmtObjectType = 'BUS2000112' and $projection.ServiceContract = _ExtRefServiceContract.CustMgmtDocument and _ExtRefServiceContract.CustMgmtExtRefIDType = '0003'
[0..1] I_CustMgmtExtRefID _ExtRefServiceQtan _ExtRefServiceQtan.CustMgmtObjectType = 'BUS2000112' and $projection.ServiceContract = _ExtRefServiceQtan.CustMgmtDocument and _ExtRefServiceQtan.CustMgmtExtRefIDType = '0009'
[0..1] I_WBSElementBasicData _WBSElement _WBSElement.WBSElementInternalID = I_ServiceDocumentEnhcd.WBSElementInternalID
[0..1] R_SrvcDocDocumentFlow _RefServiceTemplate $projection.ServiceContractUUID = _RefServiceTemplate.ServiceDocumentUUID and _RefServiceTemplate.PrdcssrSuccssrDocObjectType = 'BUS2000112' and _RefServiceTemplate.ServiceObjectType = 'BUS2000112' and _RefServiceTemplate.ServiceDocumentTemplateType is not initial
[0..1] R_BusinessSolutionOrderTP _SolutionOrder $projection.RefBusinessSolutionOrder = _SolutionOrder.BusinessSolutionOrder
[0..1] E_ServiceDocument _Extension $projection.ServiceObjectType = _Extension.ServiceCategory and $projection.ServiceContract = _Extension.ServiceOrder
[0..1] I_PaymentMethodInCountryVH _PaymentMethodVH $projection.PaymentMethod = _PaymentMethodVH.PaymentMethod and $projection.SoldToPartyCountry = _PaymentMethodVH.Country
[0..1] I_CustMgmtLifecycleUserStsText _CustMgmtLifecycleUserStsText $projection.ServiceContractStatus = _CustMgmtLifecycleUserStsText.CustMgmtLifecycleUserStatus and _CustMgmtLifecycleUserStsText.Language = $session.system_language
[1] I_ServiceDocumentStatusText _ServiceDocumentStatusText $projection.ServiceContractStatus = _ServiceDocumentStatusText.ServiceDocumentStatus and _ServiceDocumentStatusText.Language = $session.system_language
[1..*] I_ServiceDocumentTypeText _ServiceDocumentTypeText $projection.ServiceContractType = _ServiceDocumentTypeText.ServiceDocumentType
[1..*] I_SrvcDocLifecycleStatusText _SrvcDocLifecycleStatusText $projection.ServiceContractStatus = _SrvcDocLifecycleStatusText.ServiceDocumentStatus
[1..*] I_SalesOrganizationText _SalesOrganizationText $projection.SalesOrganization = _SalesOrganizationText.SalesOrganization
[1..*] I_DistributionChannelText _DistributionChannelText $projection.DistributionChannel = _DistributionChannelText.DistributionChannel
[1..*] I_DivisionText _DivisionText $projection.Division = _DivisionText.Division
[1..*] I_SalesOfficeText _SalesOfficeText $projection.SalesOffice = _SalesOfficeText.SalesOffice
[1..*] I_SalesGroupText _SalesGroupText $projection.SalesGroup = _SalesGroupText.SalesGroup
[1..*] I_PaymentTermsText _PaymentTermsText $projection.PaymentTerms = _PaymentTermsText.PaymentTerms
[1..*] I_CurrencyText _CurrencyText $projection.TransactionCurrency = _CurrencyText.Currency
[1..*] I_ServiceDocBillingStatusText _ServiceDocBillingStatusText $projection.SrvcContrBillingStatus = _ServiceDocBillingStatusText.ServiceDocBillingStatus
[1..*] I_SrvcDocRejectionStatusText _SrvcDocRejectionStatusText $projection.SrvcDocRejectionStatus = _SrvcDocRejectionStatusText.ServiceDocumentIsRejected
[1..*] I_SrvcDocTransferStatusText _ServiceDocTransferStatusText $projection.SrvcDocTransferStatus = _ServiceDocTransferStatusText.SrvcDocTransferStatus
[1..*] I_ServiceCancellationPartyText _ServiceCancellationPartyText $projection.ServiceContractCanclnParty = _ServiceCancellationPartyText.ServiceContractCanclnParty
[1..*] I_ServiceCanclnReasonText _ServiceCanclnReasonText $projection.ServiceContrCancellationReason = _ServiceCanclnReasonText.ServiceContrCancellationReason
[0..*] R_ServiceContractItemTP _ServiceContractItemTP
[0..*] R_SrvcContrPartnerTP _SrvcContrPartnerTP
[0..*] R_SrvcContrPriceElementTP _SrvcContrPriceElementTP
[0..*] R_SrvcContrUserStatusTP _SrvcContrUserStatusTP
[0..*] R_SrvcContrAppointmentTP _SrvcContrAppointmentTP
[0..*] R_SrvcContrDurationTP _SrvcContrDurationTP
[0..*] R_SrvcContrFUPBillgDocTP _SrvcContrFUPBillgDocTP
[0..*] R_SrvcContrFUPSrvcOrdTP _SrvcContrFUPSrvcOrdTP
[0..*] R_SrvcContrLongTextTP _SrvcContrLongTextTP

Annotations (10)

NameValueLevelField
AccessControl.authorizationCheck #MANDATORY view
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
Metadata.ignorePropagatedAnnotations true view
EndUserText.label Service Contract - TP view
ObjectModel.sapObjectNodeType.name ServiceContract view
ObjectModel.representativeKey ServiceContract view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view

Fields (117)

KeyFieldSource TableSource FieldDescription
KEY ServiceContract ServiceDocument
ServiceObjectType ServiceObjectType
ServiceContractType ServiceDocumentType
ServiceContractUUID ServiceDocumentUUID
ServiceContractDescription ServiceDocumentDescription
Language Language
PostingDate PostingDate
ServiceDocCreationDateTime ServiceDocCreationDateTime
ServiceDocChangedDateTime ServiceDocChangedDateTime
ServiceDocumentCreatedByUser ServiceDocumentCreatedByUser
ServiceDocumentChangedByUser ServiceDocumentChangedByUser
SoldToParty SoldToParty
ShipToParty ShipToParty
BillToParty BillToParty
PayerParty PayerParty
ContactPersonBusinessPartnerId ContactPerson
RespEmployeeBusinessPartnerId ResponsibleEmployee
PaymentTerms PaymentTerms
PaymentMethod PaymentMethod
SEPAMandate SEPAMandate
SrvcSEPAMandateRelevance SrvcSEPAMandateRelevance
SalesOrganization SalesOrganization
DistributionChannel DistributionChannel
Division Division
SalesOffice SalesOffice
SalesGroup SalesGroup
EnterpriseServiceOrganization EnterpriseServiceOrganization
SalesOrganizationOrgUnitID SalesOrganizationOrgUnitID
SalesOfficeOrgUnitID SalesOfficeOrgUnitID
SalesGroupOrgUnitID SalesGroupOrgUnitID
ServiceOrganization ServiceOrganization
SoldToPartyCountry SoldToPartyCountry
ServiceContractStatus ServiceDocumentStatus
SrvcContrBillingStatus ServiceDocBillingStatus
SrvcDocRejectionStatus SrvcDocRejectionStatus
ServiceContractHasError ServiceDocumentHasError
SrvcDocTransferStatus SrvcDocTransferStatus
SrvcContrCreditStatus SrvcDocCreditStatus
ServiceContractStartDateTime ServiceContractStartDateTime
ServiceContractEndDateTime ServiceContractEndDateTime
SrvcContrEarliestStartDateTime SrvcContrEarliestStartDateTime
SrvcContrLatestEndDateTime SrvcContrLatestEndDateTime
TransactionCurrency TransactionCurrency
ServiceDocGrossAmount ServiceDocGrossAmount
ServiceDocNetAmount ServiceDocNetAmount
ServiceDocTaxAmount ServiceDocTaxAmount
PricingDocument PricingDocument
ServiceContractCanclnParty ServiceDocumentCanclnParty
ServiceContrCancellationReason ServiceDocumentCanclnReason
ServiceContractCanclnSts ServiceContractCanclnSts
PurchaseOrderByCustomer PurchaseOrderByCustomer
CustomerPurchaseOrderDate CustomerPurchaseOrderDate
ServiceContractRejectionReason ServiceDocumentRejectionReason
SrvcContrExternalReference _ExtRefServiceContract CustMgmtExtRefID
ServiceQtanExtReference _ExtRefServiceQtan CustMgmtExtRefID
RefBusinessSolutionOrder RefBusinessSolutionOrder
RefServiceContractTemplate
WBSElementExternalID _WBSElement WBSElementExternalID
_ServiceContractItemTP _ServiceContractItemTP
_SrvcContrPriceElementTP _SrvcContrPriceElementTP
_ServiceDocumentType _ServiceDocumentType
_ServiceObjType _ServiceObjType
_SoldToParty _SoldToParty
_ShipToParty _ShipToParty
_BillToParty _BillToParty
_PayerParty _PayerParty
_ContactPerson _ContactPerson
_RespEmployee _RespEmployee
_PaymentTerms _PaymentTerms
_PaymentMethod _PaymentMethod
_PaymentMethodVH _PaymentMethodVH
_SrvcSEPAMandateRelevance _SrvcSEPAMandateRelevance
_SalesOrganization _SalesOrganization
_DistributionChannel _DistributionChannel
_Division _Division
_SalesOffice _SalesOffice
_SalesGroup _SalesGroup
_SrvcDocumentRejectionReason _SrvcDocumentRejectionReason
_SalesOrganizationOrgUnit_2 _SalesOrganizationOrgUnit_2
_SalesOfficeOrgUnit_2 _SalesOfficeOrgUnit_2
_SalesGroupOrgUnit_2 _SalesGroupOrgUnit_2
_ServiceOrganizationOrgUnit_2 _ServiceOrganizationOrgUnit_2
_EnterpriseServiceOrg _EnterpriseServiceOrg
_SrvcContrStatus _SrvcContrStatus
_SrvcDocTransferStatus _SrvcDocTransferStatus
_TransactionCurrency _TransactionCurrency
_ExtRefServiceContract _ExtRefServiceContract
_ExtRefServiceQtan _ExtRefServiceQtan
_ServiceContractCanclnSts _ServiceContractCanclnSts
_SrvcContrPartnerTP _SrvcContrPartnerTP
_SrvcContrUserStatusTP _SrvcContrUserStatusTP
_SrvcContrFUPBillgDocTP _SrvcContrFUPBillgDocTP
_SrvcContrFUPSrvcOrdTP _SrvcContrFUPSrvcOrdTP
_SrvcContrAppointmentTP _SrvcContrAppointmentTP
_SrvcContrDurationTP _SrvcContrDurationTP
_SrvcContrLongTextTP _SrvcContrLongTextTP
_CustMgmtLifecycleUserStsText _CustMgmtLifecycleUserStsText
_ServiceDocumentStatusText _ServiceDocumentStatusText
_SrvcDocLifecycleStatus _SrvcDocLifecycleStatus
_ServiceDocHasError _ServiceDocHasError
_SrvcDocCreditStatus _SrvcDocCreditStatus
_ServiceDocBillingStatus _ServiceDocBillingStatus
_SolutionOrder _SolutionOrder
_ServiceDocumentTypeText _ServiceDocumentTypeText
_SrvcDocLifecycleStatusText _SrvcDocLifecycleStatusText
_SalesOrganizationText _SalesOrganizationText
_DistributionChannelText _DistributionChannelText
_DivisionText _DivisionText
_SalesOfficeText _SalesOfficeText
_SalesGroupText _SalesGroupText
_PaymentTermsText _PaymentTermsText
_CurrencyText _CurrencyText
_ServiceDocBillingStatusText _ServiceDocBillingStatusText
_SrvcDocRejectionStatusText _SrvcDocRejectionStatusText
_ServiceDocTransferStatusText _ServiceDocTransferStatusText
_ServiceCancellationPartyText _ServiceCancellationPartyText
_ServiceCanclnReasonText _ServiceCanclnReasonText
@AccessControl: {
  authorizationCheck: #MANDATORY,
  personalData.blocking: #('TRANSACTIONAL_DATA')
}
@VDM: {
  viewType: #TRANSACTIONAL,
  lifecycle.contract.type: #SAP_INTERNAL_API
}
@Metadata:
{
  ignorePropagatedAnnotations: true
}

@EndUserText.label: 'Service Contract - TP'
@ObjectModel.sapObjectNodeType.name: 'ServiceContract'
@ObjectModel: {
  semanticKey: ['ServiceContract'],
  representativeKey: 'ServiceContract',
  usageType: {dataClass:      #TRANSACTIONAL,
              serviceQuality: #C,
              sizeCategory:   #L}
}
define root view entity R_ServiceContractTP
  as select from I_ServiceDocumentEnhcd

  association [0..1] to I_StatusObjectUUIDStatus       as _SrvcContrStatus              on  $projection.ServiceContractUUID = _SrvcContrStatus.StatusObjectUUID
                                                                                        and (
                                                                                           _SrvcContrStatus.StatusCode      = 'I1002'
                                                                                           or _SrvcContrStatus.StatusCode   = 'I1003'
                                                                                           or _SrvcContrStatus.StatusCode   = 'I1004'
                                                                                           or _SrvcContrStatus.StatusCode   = 'I1005'
                                                                                         )
                                                                                        and _SrvcContrStatus.StatusIsActive = 'X'

  association [0..1] to I_CustMgmtExtRefID             as _ExtRefServiceContract        on  _ExtRefServiceContract.CustMgmtObjectType   = 'BUS2000112'
                                                                                        and $projection.ServiceContract                 = _ExtRefServiceContract.CustMgmtDocument
                                                                                        and _ExtRefServiceContract.CustMgmtExtRefIDType = '0003'

  association [0..1] to I_CustMgmtExtRefID             as _ExtRefServiceQtan            on  _ExtRefServiceQtan.CustMgmtObjectType   = 'BUS2000112'
                                                                                        and $projection.ServiceContract             = _ExtRefServiceQtan.CustMgmtDocument
                                                                                        and _ExtRefServiceQtan.CustMgmtExtRefIDType = '0009'

  association [0..1] to I_WBSElementBasicData          as _WBSElement                   on  _WBSElement.WBSElementInternalID = I_ServiceDocumentEnhcd.WBSElementInternalID

  association [0..1] to R_SrvcDocDocumentFlow          as _RefServiceTemplate           on  $projection.ServiceContractUUID                 = _RefServiceTemplate.ServiceDocumentUUID
                                                                                        and _RefServiceTemplate.PrdcssrSuccssrDocObjectType = 'BUS2000112'
                                                                                        and _RefServiceTemplate.ServiceObjectType           = 'BUS2000112'
                                                                                        and _RefServiceTemplate.ServiceDocumentTemplateType is not initial

  association [0..1] to R_BusinessSolutionOrderTP      as _SolutionOrder                on  $projection.RefBusinessSolutionOrder = _SolutionOrder.BusinessSolutionOrder

  //! Extensibility support

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

  association [0..1] to I_PaymentMethodInCountryVH     as _PaymentMethodVH              on  $projection.PaymentMethod      = _PaymentMethodVH.PaymentMethod
                                                                                        and $projection.SoldToPartyCountry = _PaymentMethodVH.Country

  association [0..1] to I_CustMgmtLifecycleUserStsText as _CustMgmtLifecycleUserStsText on  $projection.ServiceContractStatus      = _CustMgmtLifecycleUserStsText.CustMgmtLifecycleUserStatus
                                                                                        and _CustMgmtLifecycleUserStsText.Language = $session.system_language


  association [1]    to I_ServiceDocumentStatusText    as _ServiceDocumentStatusText    on  $projection.ServiceContractStatus   = _ServiceDocumentStatusText.ServiceDocumentStatus
                                                                                        and _ServiceDocumentStatusText.Language = $session.system_language
  
  association [1..*] to I_ServiceDocumentTypeText      as _ServiceDocumentTypeText  on $projection.ServiceContractType = _ServiceDocumentTypeText.ServiceDocumentType
  
  association [1..*] to I_SrvcDocLifecycleStatusText   as _SrvcDocLifecycleStatusText on $projection.ServiceContractStatus = _SrvcDocLifecycleStatusText.ServiceDocumentStatus
  
  association [1..*] to I_SalesOrganizationText    as _SalesOrganizationText  on $projection.SalesOrganization = _SalesOrganizationText.SalesOrganization
  
  association [1..*] to I_DistributionChannelText    as _DistributionChannelText  on $projection.DistributionChannel = _DistributionChannelText.DistributionChannel
  
  association [1..*] to I_DivisionText    as _DivisionText  on $projection.Division = _DivisionText.Division
  
  association [1..*] to I_SalesOfficeText    as _SalesOfficeText  on $projection.SalesOffice = _SalesOfficeText.SalesOffice
  
  association [1..*] to I_SalesGroupText    as _SalesGroupText  on $projection.SalesGroup = _SalesGroupText.SalesGroup
  
  association [1..*] to I_PaymentTermsText  as _PaymentTermsText on $projection.PaymentTerms = _PaymentTermsText.PaymentTerms
  
  association [1..*] to I_CurrencyText   as _CurrencyText on $projection.TransactionCurrency = _CurrencyText.Currency
  
  association [1..*] to I_ServiceDocBillingStatusText as _ServiceDocBillingStatusText on $projection.SrvcContrBillingStatus = _ServiceDocBillingStatusText.ServiceDocBillingStatus  

  association [1..*] to I_SrvcDocRejectionStatusText as _SrvcDocRejectionStatusText on $projection.SrvcDocRejectionStatus = _SrvcDocRejectionStatusText.ServiceDocumentIsRejected

  association [1..*] to I_SrvcDocTransferStatusText as _ServiceDocTransferStatusText on $projection.SrvcDocTransferStatus = _ServiceDocTransferStatusText.SrvcDocTransferStatus

  association [1..*] to I_ServiceCancellationPartyText as _ServiceCancellationPartyText on $projection.ServiceContractCanclnParty = _ServiceCancellationPartyText.ServiceContractCanclnParty

  association [1..*] to I_ServiceCanclnReasonText as _ServiceCanclnReasonText on $projection.ServiceContrCancellationReason = _ServiceCanclnReasonText.ServiceContrCancellationReason
                     
  composition [0..*] of R_ServiceContractItemTP        as _ServiceContractItemTP
  composition [0..*] of R_SrvcContrPartnerTP           as _SrvcContrPartnerTP
  //composition [0..*] of R_SrvcContrRefObjectTP       as _SrvcContrReferenceObjectTP

  composition [0..*] of R_SrvcContrPriceElementTP      as _SrvcContrPriceElementTP
  composition [0..*] of R_SrvcContrUserStatusTP        as _SrvcContrUserStatusTP
  composition [0..*] of R_SrvcContrAppointmentTP       as _SrvcContrAppointmentTP
  composition [0..*] of R_SrvcContrDurationTP          as _SrvcContrDurationTP
  composition [0..*] of R_SrvcContrFUPBillgDocTP       as _SrvcContrFUPBillgDocTP
  composition [0..*] of R_SrvcContrFUPSrvcOrdTP        as _SrvcContrFUPSrvcOrdTP
  composition [0..*] of R_SrvcContrLongTextTP          as _SrvcContrLongTextTP
  //composition [0..*] of R_SrvcContrFUPBusSolnOrdTP  as _SrvcContrFUPBusSolnOrdTP





{

      // Administrative fields

  key ServiceDocument                                                                as ServiceContract,
      @ObjectModel.foreignKey.association: '_ServiceObjType'
      ServiceObjectType,
      @ObjectModel.foreignKey.association: '_ServiceDocumentType'
      @ObjectModel.text.association: '_ServiceDocumentTypeText' 
      ServiceDocumentType                                                            as ServiceContractType,
      ServiceDocumentUUID                                                            as ServiceContractUUID,
      ServiceDocumentDescription                                                     as ServiceContractDescription,
      Language,
      PostingDate,
      ServiceDocCreationDateTime,
      ServiceDocChangedDateTime,
      ServiceDocumentCreatedByUser,
      ServiceDocumentChangedByUser,

      // Partners

      @ObjectModel.foreignKey.association: '_SoldToParty'
      SoldToParty,
      @ObjectModel.foreignKey.association: '_ShipToParty'
      ShipToParty,
      @ObjectModel.foreignKey.association: '_BillToParty'
      BillToParty,
      @ObjectModel.foreignKey.association: '_PayerParty'
      PayerParty,
      @ObjectModel.foreignKey.association: '_ContactPerson'
      ContactPerson                                                                  as ContactPersonBusinessPartnerId,
      @ObjectModel.foreignKey.association: '_RespEmployee'
      ResponsibleEmployee                                                            as RespEmployeeBusinessPartnerId,

      // Billing Relevant Fields

      @ObjectModel.foreignKey.association: '_PaymentTerms'
      @ObjectModel.text.association: '_PaymentTermsText'
      PaymentTerms,
      @ObjectModel.foreignKey.association: '_PaymentMethod'
      PaymentMethod,
      SEPAMandate,
      @ObjectModel.foreignKey.association: '_SrvcSEPAMandateRelevance'
      SrvcSEPAMandateRelevance,

      // Organizational Data

      @ObjectModel.foreignKey.association: '_SalesOrganization'
      @ObjectModel.text.association: '_SalesOrganizationText'
      SalesOrganization,
      @ObjectModel.foreignKey.association: '_DistributionChannel'
      @ObjectModel.text.association: '_DistributionChannelText'
      DistributionChannel,
      @ObjectModel.foreignKey.association: '_Division'
      @ObjectModel.text.association: '_DivisionText'
      Division,
      @ObjectModel.foreignKey.association: '_SalesOffice'
      @ObjectModel.text.association: '_SalesOfficeText'
      SalesOffice,
      @ObjectModel.foreignKey.association: '_SalesGroup'
      @ObjectModel.text.association: '_SalesGroupText'
      SalesGroup,
      @ObjectModel.foreignKey.association: '_EnterpriseServiceOrg'
      EnterpriseServiceOrganization,
      //CRM Org units

      //these feilds are only ON PREMISE

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

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

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

      @ObjectModel.foreignKey.association: '_ServiceOrganizationOrgUnit_2'
      ServiceOrganization,

      SoldToPartyCountry,

      //Status

      cast( case _SrvcContrStatus.StatusCode
      when 'I1002' then 'X'
      else ' '
      end       as   xfeld preserving type     )                                     as ServiceContractIsNew,
      cast( case _SrvcContrStatus.StatusCode
      when 'I1003' then 'X'
      else ' '
      end      as   xfeld preserving type     )                                      as ServiceContractIsInProcess,
      cast( case _SrvcContrStatus.StatusCode
      when 'I1004' then 'X'
      else ' '
      end      as   xfeld preserving type     )                                      as ServiceContractIsReleased,
      cast( case _SrvcContrStatus.StatusCode
      when 'I1005' then 'X'
      else ' '
      end     as   xfeld preserving type     )                                       as ServiceContractIsCompleted,
      @ObjectModel.text.association: '_SrvcDocLifecycleStatusText'
      ServiceDocumentStatus                                                          as ServiceContractStatus,

      case
         when _ServiceDocumentType.StatusProfile <> '' and _CustMgmtLifecycleUserStsText.CustMgmtLifecycleUserStatus <> ''
          then _CustMgmtLifecycleUserStsText.CustMgmtLifecycleUserStsName
         when _ServiceDocumentType.StatusProfile = ''
          then _ServiceDocumentStatusText.ServiceDocumentStatusName
         else _ServiceDocumentStatusText.ServiceDocumentStatusName
      end                                                                            as ServiceContractStatusName,
      @ObjectModel.text.association: '_ServiceDocBillingStatusText'
      ServiceDocBillingStatus                                                        as SrvcContrBillingStatus,
      @ObjectModel.text.association: '_SrvcDocRejectionStatusText'
      SrvcDocRejectionStatus,
      @Semantics.booleanIndicator
      ServiceDocumentHasError                                                        as ServiceContractHasError,
      @ObjectModel.text.association: '_ServiceDocTransferStatusText'
      SrvcDocTransferStatus,
      SrvcDocCreditStatus                                                            as SrvcContrCreditStatus,

      //Dates and Durations

      @Semantics.dateTime:true
      ServiceContractStartDateTime,
      cast( tstmp_to_dats( ServiceContractStartDateTime,
        abap_system_timezone( $session.client,'NULL' ),
        $session.client, 'NULL' )   as crms4_created_on preserving type )            as ServiceContractStartDate,
      @Semantics.dateTime:true
      ServiceContractEndDateTime,
      cast( tstmp_to_dats( ServiceContractEndDateTime,
        abap_system_timezone( $session.client,'NULL' ),
        $session.client, 'NULL' )   as crms4_created_on preserving type )            as ServiceContractEndDate,
      SrvcContrEarliestStartDateTime,
      cast( tstmp_to_dats( SrvcContrEarliestStartDateTime,
        abap_system_timezone( $session.client,'NULL' ),
        $session.client, 'NULL' )   as crms4_created_on preserving type )            as SrvcContrEarliestStartDate,
      SrvcContrLatestEndDateTime,
      cast( tstmp_to_dats( SrvcContrLatestEndDateTime,
        abap_system_timezone( $session.client,'NULL' ),
        $session.client, 'NULL' )   as crms4_created_on preserving type )            as SrvcContrLatestEndDate,
      cast( case ServiceDocumentCanclnParty
       when '' then 0
       else ServiceContractEndDateTime
       end as timestamp preserving type     )                                        as SrvcContrCancellationDateTime,

      // Pricing Fields

      @ObjectModel.foreignKey.association: '_TransactionCurrency'
      @ObjectModel.text.association: '_CurrencyText'
      TransactionCurrency,
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceDocGrossAmount,
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceDocNetAmount,
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceDocTaxAmount,
      PricingDocument,

      //Cancellation

      @ObjectModel.text.association: '_ServiceCancellationPartyText'
      ServiceDocumentCanclnParty                                                     as ServiceContractCanclnParty,
      @ObjectModel.text.association: '_ServiceCanclnReasonText'
      ServiceDocumentCanclnReason                                                    as ServiceContrCancellationReason,
      @ObjectModel.foreignKey.association: '_ServiceContractCanclnSts'
      ServiceContractCanclnSts,

      //Sales Fields

      PurchaseOrderByCustomer,
      CustomerPurchaseOrderDate,
      @ObjectModel.foreignKey.association: '_SrvcDocumentRejectionReason'
      ServiceDocumentRejectionReason                                                 as ServiceContractRejectionReason,

      //Reference Documents

      _ExtRefServiceContract.CustMgmtExtRefID                                        as SrvcContrExternalReference,
      _ExtRefServiceQtan.CustMgmtExtRefID                                            as ServiceQtanExtReference,
      RefBusinessSolutionOrder,
      cast( _RefServiceTemplate.CustMgmtPrdcssrTransactionKey as crmt_object_id_db ) as RefServiceContractTemplate,
      _WBSElement.WBSElementExternalID,

      //Associations

      _ServiceContractItemTP,
      _SrvcContrPriceElementTP,

      _ServiceDocumentType,
      _ServiceObjType,

      _SoldToParty,
      _ShipToParty,
      _BillToParty,
      _PayerParty,
      _ContactPerson,
      _RespEmployee,

      _PaymentTerms,
      _PaymentMethod,
      _PaymentMethodVH,
      _SrvcSEPAMandateRelevance,

      _SalesOrganization,
      _DistributionChannel,
      _Division,
      _SalesOffice,
      _SalesGroup,
      _SrvcDocumentRejectionReason,

      _SalesOrganizationOrgUnit_2,
      _SalesOfficeOrgUnit_2,
      _SalesGroupOrgUnit_2,
      _ServiceOrganizationOrgUnit_2,
      _EnterpriseServiceOrg,

      _SrvcContrStatus,
      _SrvcDocTransferStatus,

      _TransactionCurrency,

      _ExtRefServiceContract,
      _ExtRefServiceQtan,

      @ObjectModel.association.boundFields.dataMatchesSourceAndTargetTypes: true
      _ServiceContractCanclnSts,

      _SrvcContrPartnerTP,
      // _SrvcContrReferenceObjectTP,

      _SrvcContrUserStatusTP,
      _SrvcContrFUPBillgDocTP,
      _SrvcContrFUPSrvcOrdTP,
      _SrvcContrAppointmentTP,
      _SrvcContrDurationTP,
      _SrvcContrLongTextTP,
      // _SrvcContrFUPBusSolnOrdTP

      _CustMgmtLifecycleUserStsText,
      _ServiceDocumentStatusText,

      // Mass Process Enhancement

      _SrvcDocLifecycleStatus,
      _ServiceDocHasError,
      _SrvcDocCreditStatus,
      _ServiceDocBillingStatus,
      _SolutionOrder,
      
      // UX improvement

      _ServiceDocumentTypeText,
      _SrvcDocLifecycleStatusText,
      _SalesOrganizationText,
      _DistributionChannelText,
      _DivisionText,
      _SalesOfficeText,
      _SalesGroupText,
      _PaymentTermsText,
      _CurrencyText,
      _ServiceDocBillingStatusText,
      _SrvcDocRejectionStatusText,
      _ServiceDocTransferStatusText,
      _ServiceCancellationPartyText,
      _ServiceCanclnReasonText
}
where
      ServiceObjectType           = 'BUS2000112'
  and ServiceDocumentTemplateType = ''