R_ServiceContractItemTP

DDL: R_SERVICECONTRACTITEMTP Type: view_entity TRANSACTIONAL Package: CRMS4_SERVICE_CONTRACT_RAP

Service Contract Item - TP

R_ServiceContractItemTP is a Transactional CDS View that provides data about "Service Contract Item - TP" in SAP S/4HANA. It reads from 1 data source (I_ServiceDocumentItemEnhcd) and exposes 126 fields with key fields ServiceContract, ServiceContractItem. It has 35 associations to related views. Part of development package CRMS4_SERVICE_CONTRACT_RAP.

Data Sources (1)

SourceAliasJoin Type
I_ServiceDocumentItemEnhcd I_ServiceDocumentItemEnhcd from

Associations (35)

CardinalityTargetAliasCondition
[0..1] I_StatusObjectUUIDStatus _SrvcOrdItmStatus $projection.ServiceContractItemUUID = _SrvcOrdItmStatus.StatusObjectUUID and ( _SrvcOrdItmStatus.StatusCode = 'I1002' or _SrvcOrdItmStatus.StatusCode = 'I1003' or _SrvcOrdItmStatus.StatusCode = 'I1004' or _SrvcOrdItmStatus.StatusCode = 'I1005' ) and _SrvcOrdItmStatus.StatusIsActive = 'X'
[0..1] I_CustMgmtExtRefID _ExtRefServiceContract _ExtRefServiceContract.CustMgmtObjectType = 'BUS2000112' and $projection.ServiceContract = _ExtRefServiceContract.CustMgmtDocument and _ExtRefServiceContract.CustMgmtExtRefIDType = '0003'
[0..1] I_CustMgmtExtRefID _ExtRefServiceContractItem _ExtRefServiceContractItem.CustMgmtObjectType = 'BUS2000112' and $projection.ServiceContract = _ExtRefServiceContractItem.CustMgmtDocument and $projection.ServiceContractItem = _ExtRefServiceContractItem.CustMgmtDocumentItem and _ExtRefServiceContractItem.CustMgmtExtRefIDType = '0004'
[0..1] I_CustMgmtExtRefID _ExtRefServiceQtan _ExtRefServiceQtan.CustMgmtObjectType = 'BUS2000112' and $projection.ServiceContract = _ExtRefServiceQtan.CustMgmtDocument and _ExtRefServiceQtan.CustMgmtExtRefIDType = '0009'
[0..1] I_CustMgmtExtRefID _ExtRefServiceQtanItem _ExtRefServiceQtanItem.CustMgmtObjectType = 'BUS2000112' and $projection.ServiceContract = _ExtRefServiceQtanItem.CustMgmtDocument and $projection.ServiceContractItem = _ExtRefServiceQtanItem.CustMgmtDocumentItem and _ExtRefServiceQtanItem.CustMgmtExtRefIDType = '0010'
[0..1] R_SrvcDocItemDocumentFlow _RefServiceTemplate $projection.ServiceContract = _RefServiceTemplate.ServiceDocument and $projection.ServiceContractItem = _RefServiceTemplate.ServiceDocumentItem and _RefServiceTemplate.PrdcssrSuccssrDocObjectType = 'BUS2000112' and _RefServiceTemplate.ServiceDocumentTemplateType is not initial and _RefServiceTemplate.ServiceObjectType = 'BUS2000112'
[0..1] I_CustMgmtDateRule _SettlementPeriodRule $projection.SettlementPeriodRuleUUID = _SettlementPeriodRule.CustMgmtDateRuleUUID
[0..1] I_CustMgmtDateRule _BillingPlanBillingDateRule $projection.BillingPlanBillingDateRuleUUID = _BillingPlanBillingDateRule.CustMgmtDateRuleUUID
[0..1] I_PaymentMethodInCountryVH _PaymentMethodVH $projection.PaymentMethod = _PaymentMethodVH.PaymentMethod and $projection.SoldToPartyCountry = _PaymentMethodVH.Country
[1..*] I_SrvcDocLifecycleStatusText _SrvcDocLifecycleStatusText $projection.ServiceContractItemStatus = _SrvcDocLifecycleStatusText.ServiceDocumentStatus
[1..*] I_ServiceDocBillingStatusText _ServiceDocBillingStatusText $projection.ServiceContrItemBillingStatus = _ServiceDocBillingStatusText.ServiceDocBillingStatus
[1..*] I_SrvcDocTransferStatusText _SrvcDocTransferStatusText $projection.SrvcDocItemTransferStatus = _SrvcDocTransferStatusText.SrvcDocTransferStatus
[1..*] I_SrvcDocRejectionStatusText _SrvcDocRejectionStatusText $projection.ServiceContractItemIsRejected = _SrvcDocRejectionStatusText.ServiceDocumentIsRejected
[1..*] I_BillingBlockReasonText _BillingBlockReasonText $projection.BillingBlockReason = _BillingBlockReasonText.BillingBlockReason
[1..*] I_PaymentTermsText _PaymentTermsText $projection.PaymentTerms = _PaymentTermsText.PaymentTerms
[1..*] I_ServiceDocItemCategoryText _ServiceDocItemCategoryText $projection.ServiceContractItemCategory = _ServiceDocItemCategoryText.ServiceDocItemCategory
[1..*] I_UnitOfMeasureText _UnitOfMeasureText $projection.QuantityUnit = _UnitOfMeasureText.UnitOfMeasure
[1..*] I_CurrencyText _CurrencyText $projection.TransactionCurrency = _CurrencyText.Currency
[0..*] I_CustMgmtDateRuleText _SrvcMgmtDateRuleText $projection.SrvcMgmtBillgPlanBillgDateRule = _SrvcMgmtDateRuleText.CustMgmtDateRuleName
[0..*] I_CustMgmtDateRuleText _SettlementPeriodRuleText $projection.SettlementPeriodRule = _SettlementPeriodRuleText.CustMgmtDateRuleName
[1..*] I_ServiceCancellationPartyText _ServiceCancellationPartyText $projection.ServiceContractItemCanclnParty = _ServiceCancellationPartyText.ServiceContractCanclnParty
[1..*] I_ServiceCanclnReasonText _ServiceCanclnReasonText $projection.ServiceContractItmCanclnReason = _ServiceCanclnReasonText.ServiceContrCancellationReason
[0..1] I_WBSElementBasicData _WBSElement _WBSElement.WBSElementInternalID = I_ServiceDocumentItemEnhcd.WBSElementInternalID
[0..1] E_ServiceDocumentItem _Extension $projection.ServiceObjectType = _Extension.ServiceCategory and $projection.ServiceContract = _Extension.ServiceOrderItem and $projection.ServiceContractItem = _Extension.ServiceLineExternalID
[0..*] R_SrvcContrItemPartnerTP _SrvcContrItmPartnerTP
[0..*] R_SrvcContrItemPriceElementTP _SrvcContrItmPriceElementTP
[0..*] R_SrvcContrItemUserStatusTP _SrvcContrItemUserStatusTP
[0..*] R_SrvcContrItmFUPBillgDocTP _SrvcContrItmFUPBillgDocTP
[0..*] R_SrvcContrItmFUPSrvcOrdTP _SrvcContrItmFUPSrvcOrdTP
[0..*] R_SrvcContrItemRefObjectTP _SrvcContrItemRefObjectTP
[0..*] R_SrvcContrItemProductTP _SrvcContrItemProductTP
[0..*] R_SrvcContrItmBillgReqItemTP _SrvcContrItmBillgReqItemTP
[0..*] R_SrvcContrItemDurationTP _SrvcContrItemDurationTP
[0..*] R_SrvcContrItemAppointmentTP _SrvcContrItemAppointmentTP
[0..*] R_SrvcContrItemLongTextTP _SrvcContrItemLongTextTP

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 Item - TP view
ObjectModel.sapObjectNodeType.name ServiceContractItem view
ObjectModel.representativeKey ServiceContractItem view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view

Fields (126)

KeyFieldSource TableSource FieldDescription
KEY ServiceContract ServiceDocument
KEY ServiceContractItem
ServiceContractDescription ServiceDocumentDescription
ServiceObjectType ServiceObjectType
ParentServiceContractItem _ParentServiceDocItem_2 ServiceDocumentItem
ServiceContractItemCategory ServiceDocItemCategory
ServiceContractItemUUID ServiceDocumentItemUUID
ServiceContractItemDescription ServiceDocumentItemDescription
Language Language
ServiceDocItemCreationDateTime ServiceDocItemCreationDateTime
ServiceDocItemChangedDateTime ServiceDocItemChangedDateTime
ServiceDocItemCreatedByUser ServiceDocItemCreatedByUser
ServiceDocItemChangedByUser ServiceDocItemChangedByUser
Product Product
Quantity ServiceDocumentItemQuantity
QuantityUnit ServiceDocItemQuantityUnit
SoldToParty SoldToParty
ShipToParty ShipToParty
BillToParty BillToParty
PayerParty PayerParty
ContactPersonBusinessPartnerId ContactPerson
RespEmployeeBusinessPartnerId ResponsibleEmployee
SoldToPartyCountry SoldToPartyCountry
PaymentTerms PaymentTerms
PaymentMethod PaymentMethod
SEPAMandate SEPAMandate
SrvcSEPAMandateRelevance SrvcSEPAMandateRelevance
SalesOrganization SalesOrganization
DistributionChannel DistributionChannel
Division Division
SalesOffice SalesOffice
SalesGroup SalesGroup
SalesOrganizationOrgUnitID SalesOrganizationOrgUnitID
ServiceContractItemStatus ServiceDocumentItemStatus
ServiceContrItemBillingStatus ServiceDocItemBillingStatus
ServiceContractItemIsRejected ServiceDocumentItemIsRejected
ServiceContractItemHasError ServiceDocumentItemHasError
SrvcDocItemTransferStatus SrvcDocItemTransferStatus
SrvcContrItemCreditStatus SrvcDocItemCreditStatus
ServiceContrItemStartDateTime ServiceContrItemStartDateTime
ServiceContrItemEndDateTime ServiceContrItemEndDateTime
SrvcContrItemRnwlDuration SrvcContrItemRnwlDuration
SrvcContrItemRnwlDurationUnit SrvcContrItemRnwlDurationUnit
SrvcContrItemExtensionDuration SrvcContrItemExtensionDuration
SrvcContrItemExtnDurationUnit SrvcContrItemExtnDurationUnit
ResponseProfile ResponseProfile
ServiceProfile ServiceProfile
ProfitCenter ProfitCenter
ServiceDocItemGrossAmount ServiceDocItemGrossAmount
ServiceDocumentItemNetAmount ServiceDocumentItemNetAmount
ServiceDocumentItemTaxAmount ServiceDocumentItemTaxAmount
TransactionCurrency TransactionCurrency
ServiceContractItemCanclnParty ServiceDocumentItemCanclnParty
ServiceContractItmCanclnReason ServiceDocumentItmCanclnReason
SettlementPeriodRuleUUID SettlementPeriodRuleUUID
SettlementPeriodRule _SettlementPeriodRule CustMgmtDateRuleName
BillingPlanBillingDateRuleUUID BillingPlanBillingDateRuleUUID
SrvcMgmtBillgPlanBillgDateRule _BillingPlanBillingDateRule CustMgmtDateRuleName
BillingBlockReason BillingBlockReason
BillingPlanPriceDateRule BillingPlanPriceDateRule
BillingPlanIsFinalized BillingPlanIsFinalized
ContractAccount ContractAccount
SrvcContrExternalReference _ExtRefServiceContract CustMgmtExtRefID
SrvcContrItmExternalReference _ExtRefServiceContractItem CustMgmtExtRefID
ServiceQtanExtReference _ExtRefServiceQtan CustMgmtExtRefID
ServiceQtanItemExtReference _ExtRefServiceQtanItem CustMgmtExtRefID
RefServiceContractTemplate
RefServiceContractTemplateItem
SrvcDocItmPartReferenceItem SrvcDocItmPartReferenceItem
SrvcDocItmApptRefObjectUUID SrvcDocItmApptRefObjectUUID
WBSElementExternalID _WBSElement WBSElementExternalID
PurchaseOrderByCustomer PurchaseOrderByCustomer
_ServiceDocument _ServiceDocument
_ServiceContractTP _ServiceContractTP
_SrvcContrItmPartnerTP _SrvcContrItmPartnerTP
_SrvcContrItmPriceElementTP _SrvcContrItmPriceElementTP
_SrvcContrItemUserStatusTP _SrvcContrItemUserStatusTP
_ServiceObjType _ServiceObjType
_ExtRefServiceContract _ExtRefServiceContract
_ExtRefServiceContractItem _ExtRefServiceContractItem
_Product _Product
_ContactPerson _ContactPerson
_RespEmployee _RespEmployee
_PaymentTerms _PaymentTerms
_PaymentMethod _PaymentMethod
_PaymentMethodVH _PaymentMethodVH
_SrvcSEPAMandateRelevance _SrvcSEPAMandateRelevance
_SrvcContrItmFUPBillgDocTP _SrvcContrItmFUPBillgDocTP
_SrvcContrItmFUPSrvcOrdTP _SrvcContrItmFUPSrvcOrdTP
_SrvcContrItemRefObjectTP _SrvcContrItemRefObjectTP
_SrvcContrItemProductTP _SrvcContrItemProductTP
_SrvcContrItmBillgReqItemTP _SrvcContrItmBillgReqItemTP
_SrvcContrItemDurationTP _SrvcContrItemDurationTP
_SrvcContrItemAppointmentTP _SrvcContrItemAppointmentTP
_SrvcContrItemLongTextTP _SrvcContrItemLongTextTP
_BaseUnit _BaseUnit
_SrvcContrItemExtnDurationUnit _SrvcContrItemExtnDurationUnit
_SrvcContrItemRnwlDurationUnit _SrvcContrItemRnwlDurationUnit
_ServiceDocItemCategory _ServiceDocItemCategory
_SrvcDocItmLifecycleStatus _SrvcDocItmLifecycleStatus
_ServiceDocItemHasError _ServiceDocItemHasError
_SrvcDocItemCreditStatus _SrvcDocItemCreditStatus
_ServiceDocItemBillingStatus _ServiceDocItemBillingStatus
_SoldToParty _SoldToParty
_ShipToParty _ShipToParty
_BillToParty _BillToParty
_PayerParty _PayerParty
_SalesOrganization _SalesOrganization
_DistributionChannel _DistributionChannel
_Division _Division
_SalesOffice _SalesOffice
_SalesGroup _SalesGroup
_BillingBlockReason _BillingBlockReason
_SrvcDocLifecycleStatusText _SrvcDocLifecycleStatusText
_ServiceDocBillingStatusText _ServiceDocBillingStatusText
_SrvcDocTransferStatusText _SrvcDocTransferStatusText
_SrvcDocRejectionStatusText _SrvcDocRejectionStatusText
_BillingBlockReasonText _BillingBlockReasonText
_PaymentTermsText _PaymentTermsText
_ServiceDocItemCategoryText _ServiceDocItemCategoryText
_UnitOfMeasureText _UnitOfMeasureText
_CurrencyText _CurrencyText
_SrvcMgmtDateRuleText _SrvcMgmtDateRuleText
_SettlementPeriodRuleText _SettlementPeriodRuleText
_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 Item - TP'
@ObjectModel: {
  sapObjectNodeType.name: 'ServiceContractItem',
  semanticKey: ['ServiceContractItem'],
  representativeKey: 'ServiceContractItem',
  usageType: {dataClass:      #TRANSACTIONAL,
              serviceQuality: #C,
              sizeCategory:   #L}
}
@Consumption.dbHints: [ 'USE_HEX_PLAN' ]
define view entity R_ServiceContractItemTP
  as select from I_ServiceDocumentItemEnhcd

  association        to parent R_ServiceContractTP    as _ServiceContractTP          on  $projection.ServiceContract = _ServiceContractTP.ServiceContract

  association [0..1] to I_StatusObjectUUIDStatus      as _SrvcOrdItmStatus           on  $projection.ServiceContractItemUUID = _SrvcOrdItmStatus.StatusObjectUUID
                                                                                     and (
                                                                                        _SrvcOrdItmStatus.StatusCode         = 'I1002'
                                                                                        or _SrvcOrdItmStatus.StatusCode      = 'I1003'
                                                                                        or _SrvcOrdItmStatus.StatusCode      = 'I1004'
                                                                                        or _SrvcOrdItmStatus.StatusCode      = 'I1005'
                                                                                      )
                                                                                     and _SrvcOrdItmStatus.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 _ExtRefServiceContractItem  on  _ExtRefServiceContractItem.CustMgmtObjectType   = 'BUS2000112'
                                                                                     and $projection.ServiceContract                     = _ExtRefServiceContractItem.CustMgmtDocument
                                                                                     and $projection.ServiceContractItem                 = _ExtRefServiceContractItem.CustMgmtDocumentItem
                                                                                     and _ExtRefServiceContractItem.CustMgmtExtRefIDType = '0004'

  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_CustMgmtExtRefID            as _ExtRefServiceQtanItem      on  _ExtRefServiceQtanItem.CustMgmtObjectType   = 'BUS2000112'
                                                                                     and $projection.ServiceContract                 = _ExtRefServiceQtanItem.CustMgmtDocument
                                                                                     and $projection.ServiceContractItem             = _ExtRefServiceQtanItem.CustMgmtDocumentItem
                                                                                     and _ExtRefServiceQtanItem.CustMgmtExtRefIDType = '0010'
  
  association [0..1] to R_SrvcDocItemDocumentFlow     as _RefServiceTemplate         on  $projection.ServiceContract                     = _RefServiceTemplate.ServiceDocument
                                                                                     and $projection.ServiceContractItem                 = _RefServiceTemplate.ServiceDocumentItem
                                                                                     and _RefServiceTemplate.PrdcssrSuccssrDocObjectType = 'BUS2000112'
                                                                                     and _RefServiceTemplate.ServiceDocumentTemplateType is not initial
                                                                                     and _RefServiceTemplate.ServiceObjectType           = 'BUS2000112'

  association [0..1] to I_CustMgmtDateRule            as _SettlementPeriodRule       on  $projection.SettlementPeriodRuleUUID = _SettlementPeriodRule.CustMgmtDateRuleUUID

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

  // association [0..1] to I_ServiceDocumentItemEnhcd     as _ChgProcSourceItem        on  $projection.SrvcTransChgProcSourceItemUUID = _ChgProcSourceItem.ServiceDocumentItemUUID


  association [1..*] to I_SrvcDocLifecycleStatusText     as _SrvcDocLifecycleStatusText  on $projection.ServiceContractItemStatus = _SrvcDocLifecycleStatusText.ServiceDocumentStatus
  
  association [1..*] to I_ServiceDocBillingStatusText    as _ServiceDocBillingStatusText on $projection.ServiceContrItemBillingStatus = _ServiceDocBillingStatusText.ServiceDocBillingStatus
    
  association [1..*] to I_SrvcDocTransferStatusText      as _SrvcDocTransferStatusText on $projection.SrvcDocItemTransferStatus  = _SrvcDocTransferStatusText.SrvcDocTransferStatus
 
  association [1..*] to I_SrvcDocRejectionStatusText as _SrvcDocRejectionStatusText on $projection.ServiceContractItemIsRejected = _SrvcDocRejectionStatusText.ServiceDocumentIsRejected
  
  association [1..*] to I_BillingBlockReasonText        as _BillingBlockReasonText on $projection.BillingBlockReason = _BillingBlockReasonText.BillingBlockReason
    
  association [1..*] to I_PaymentTermsText               as _PaymentTermsText    on $projection.PaymentTerms = _PaymentTermsText.PaymentTerms
    
  association [1..*] to I_ServiceDocItemCategoryText  as _ServiceDocItemCategoryText on $projection.ServiceContractItemCategory = _ServiceDocItemCategoryText.ServiceDocItemCategory

  association [1..*] to I_UnitOfMeasureText  as _UnitOfMeasureText on $projection.QuantityUnit = _UnitOfMeasureText.UnitOfMeasure  
  
  association [1..*] to I_CurrencyText   as _CurrencyText on $projection.TransactionCurrency = _CurrencyText.Currency
  
  association [0..*] to I_CustMgmtDateRuleText           as _SrvcMgmtDateRuleText  on  $projection.SrvcMgmtBillgPlanBillgDateRule = _SrvcMgmtDateRuleText.CustMgmtDateRuleName
                                                                                            
  association [0..*] to I_CustMgmtDateRuleText           as _SettlementPeriodRuleText  on  $projection.SettlementPeriodRule = _SettlementPeriodRuleText.CustMgmtDateRuleName
  
  association [1..*] to I_ServiceCancellationPartyText as _ServiceCancellationPartyText on $projection.ServiceContractItemCanclnParty = _ServiceCancellationPartyText.ServiceContractCanclnParty

  association [1..*] to I_ServiceCanclnReasonText as _ServiceCanclnReasonText on $projection.ServiceContractItmCanclnReason = _ServiceCanclnReasonText.ServiceContrCancellationReason
  
  composition [0..*] of R_SrvcContrItemPartnerTP      as _SrvcContrItmPartnerTP
  composition [0..*] of R_SrvcContrItemPriceElementTP as _SrvcContrItmPriceElementTP
  composition [0..*] of R_SrvcContrItemUserStatusTP   as _SrvcContrItemUserStatusTP
  composition [0..*] of R_SrvcContrItmFUPBillgDocTP   as _SrvcContrItmFUPBillgDocTP
  composition [0..*] of R_SrvcContrItmFUPSrvcOrdTP    as _SrvcContrItmFUPSrvcOrdTP
  composition [0..*] of R_SrvcContrItemRefObjectTP    as _SrvcContrItemRefObjectTP
  composition [0..*] of R_SrvcContrItemProductTP      as _SrvcContrItemProductTP
  composition [0..*] of R_SrvcContrItmBillgReqItemTP  as _SrvcContrItmBillgReqItemTP
  composition [0..*] of R_SrvcContrItemDurationTP     as _SrvcContrItemDurationTP
  composition [0..*] of R_SrvcContrItemAppointmentTP  as _SrvcContrItemAppointmentTP
  composition [0..*] of R_SrvcContrItemLongTextTP     as _SrvcContrItemLongTextTP


  //  association [1..1] to R_ServiceContractTP           as _ServiceContract             on  _ServiceContract.ServiceObjectType = 'BUS2000112'

  //                                                                                      and $projection.ServiceContract         = _ServiceContract.ServiceContract


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

  association [0..1] to E_ServiceDocumentItem         as _Extension                  on  $projection.ServiceObjectType   = _Extension.ServiceCategory
                                                                                     and $projection.ServiceContract     = _Extension.ServiceOrderItem
                                                                                     and $projection.ServiceContractItem = _Extension.ServiceLineExternalID
{

      // Administrative fields

      @ObjectModel.foreignKey.association: '_ServiceDocument'
  key ServiceDocument                                                                as ServiceContract,
  key cast(ServiceDocumentItem as crms4_number_int preserving type)                  as ServiceContractItem,
      ServiceDocumentDescription                                                     as ServiceContractDescription,
      @ObjectModel.foreignKey.association: '_ServiceObjType'
      ServiceObjectType,
      _ParentServiceDocItem_2.ServiceDocumentItem                                    as ParentServiceContractItem,
      @ObjectModel.text.association: '_ServiceDocItemCategoryText'
      ServiceDocItemCategory                                                         as ServiceContractItemCategory,
      ServiceDocumentItemUUID                                                        as ServiceContractItemUUID,
      ServiceDocumentItemDescription                                                 as ServiceContractItemDescription,
      Language,
      ServiceDocItemCreationDateTime,
      cast( tstmp_to_dats( ServiceDocItemCreationDateTime, 
        abap_system_timezone( $session.client,'NULL' ), 
        $session.client, 'NULL' )   as crms4_created_on preserving type )            as ServiceDocItemCreationDate,
      ServiceDocItemChangedDateTime,
      ServiceDocItemCreatedByUser,
      ServiceDocItemChangedByUser,


      // Item Fields

      @ObjectModel.foreignKey.association: '_Product'
      Product,
      @Semantics.quantity.unitOfMeasure: 'QuantityUnit'
      ServiceDocumentItemQuantity                                                    as Quantity,
      @ObjectModel.text.association: '_UnitOfMeasureText'
      ServiceDocItemQuantityUnit                                                     as QuantityUnit,

      // Partners

      SoldToParty,
      ShipToParty,
      BillToParty,
      PayerParty,
      @ObjectModel.foreignKey.association: '_ContactPerson'
      ContactPerson                                                                  as ContactPersonBusinessPartnerId,
      @ObjectModel.foreignKey.association: '_RespEmployee'
      ResponsibleEmployee                                                            as RespEmployeeBusinessPartnerId,
      SoldToPartyCountry,

      // Billing Relevant Fields

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

      // Organizational Data

      //RespyMgmtServiceTeam,

      //_ServiceTeamHeader.RespyMgmtGlobalTeamID                                             as RespyMgmtGlobalTeamID,

      SalesOrganization,
      DistributionChannel,
      Division,
      SalesOffice,
      SalesGroup,
      
      SalesOrganizationOrgUnitID,

      // Status

      cast( case _SrvcOrdItmStatus.StatusCode
      when 'I1002' then 'X'
      else ' '
      end                  as   xfeld preserving type     )                          as ServiceContractItemIsNew,
      cast( case _SrvcOrdItmStatus.StatusCode
      when 'I1003' then 'X'
      else ' '
      end                  as   xfeld preserving type     )                          as ServiceContractItemIsInProcess,
      cast( case _SrvcOrdItmStatus.StatusCode
      when 'I1004' then 'X'
      else ' '
      end                  as   xfeld preserving type     )                          as ServiceContractItemIsReleased,
      cast( case _SrvcOrdItmStatus.StatusCode
      when 'I1005' then 'X'
      else ' '
      end                  as   xfeld preserving type     )                          as ServiceContractItemIsCompleted,
      @ObjectModel.text.association: '_SrvcDocLifecycleStatusText'
      ServiceDocumentItemStatus                                                      as ServiceContractItemStatus,
      @ObjectModel.text.association: '_ServiceDocBillingStatusText'
      ServiceDocItemBillingStatus                                                    as ServiceContrItemBillingStatus,
      @Semantics.booleanIndicator
      @ObjectModel.text.association: '_SrvcDocRejectionStatusText'
      ServiceDocumentItemIsRejected                                                  as ServiceContractItemIsRejected,
      @Semantics.booleanIndicator
      ServiceDocumentItemHasError                                                    as ServiceContractItemHasError,
      @ObjectModel.text.association: '_SrvcDocTransferStatusText'
      SrvcDocItemTransferStatus,
      SrvcDocItemCreditStatus                                                        as SrvcContrItemCreditStatus,

      // Dates and Durations

      @Semantics.dateTime:true
      ServiceContrItemStartDateTime,
      cast( tstmp_to_dats( ServiceContrItemStartDateTime, 
        abap_system_timezone( $session.client,'NULL' ), 
        $session.client, 'NULL' )   as crms4_created_on preserving type )            as ServiceContractItemStartDate,
      @Semantics.dateTime:true
      ServiceContrItemEndDateTime,
      cast( tstmp_to_dats( ServiceContrItemEndDateTime, 
        abap_system_timezone( $session.client,'NULL' ), 
        $session.client, 'NULL' )   as crms4_created_on preserving type )            as ServiceContractItemEndDate,
      @Semantics: { quantity : {unitOfMeasure: 'SrvcContrItemRnwlDurationUnit'} }
      SrvcContrItemRnwlDuration                                                      as SrvcContrItemRnwlDuration,
      SrvcContrItemRnwlDurationUnit                                                  as SrvcContrItemRnwlDurationUnit,
      @Semantics: { quantity : {unitOfMeasure: 'SrvcContrItemExtnDurationUnit'} }
      SrvcContrItemExtensionDuration                                                 as SrvcContrItemExtensionDuration,
      SrvcContrItemExtnDurationUnit                                                  as SrvcContrItemExtnDurationUnit,
      
      ResponseProfile,
      ServiceProfile,

      ProfitCenter,

      // Pricing

      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceDocItemGrossAmount,
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceDocumentItemNetAmount,
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceDocumentItemTaxAmount,
      @ObjectModel.text.association: '_CurrencyText'
      TransactionCurrency,

      //Cancellation

      @ObjectModel.text.association: '_ServiceCancellationPartyText'
      ServiceDocumentItemCanclnParty                                                 as ServiceContractItemCanclnParty,
      @ObjectModel.text.association: '_ServiceCanclnReasonText'
      ServiceDocumentItmCanclnReason                                                 as ServiceContractItmCanclnReason,
      cast( case ServiceDocumentItemCanclnParty
      when '' then 0
      else ServiceContrItemEndDateTime
      end as timestamp preserving type     )                                         as SrvcContrItemCanclnDateTime,

      // Item - Billing Plan

      SettlementPeriodRuleUUID,
      _SettlementPeriodRule.CustMgmtDateRuleName                                     as SettlementPeriodRule,
      @ObjectModel.text.association: '_SettlementPeriodRuleText'
      BillingPlanBillingDateRuleUUID,
      @ObjectModel.text.association: '_SrvcMgmtDateRuleText'
      _BillingPlanBillingDateRule.CustMgmtDateRuleName                               as SrvcMgmtBillgPlanBillgDateRule,
      @ObjectModel.text.association: '_BillingBlockReasonText'
      BillingBlockReason,
      BillingPlanPriceDateRule,
      BillingPlanIsFinalized,
      ContractAccount,

      // Reference Documents

      _ExtRefServiceContract.CustMgmtExtRefID                                        as SrvcContrExternalReference,
      _ExtRefServiceContractItem.CustMgmtExtRefID                                    as SrvcContrItmExternalReference,

      _ExtRefServiceQtan.CustMgmtExtRefID                                            as ServiceQtanExtReference,
      _ExtRefServiceQtanItem.CustMgmtExtRefID                                        as ServiceQtanItemExtReference,
      
      cast( _RefServiceTemplate.CustMgmtPrdcssrTransactionKey as crmt_object_id_db ) as RefServiceContractTemplate,
      cast( _RefServiceTemplate.BusinessTransactionDocItem as crms4_number_int )     as RefServiceContractTemplateItem,

      //Inheritance of Complex set in RAP

      SrvcDocItmPartReferenceItem, //For Item Partner

      SrvcDocItmApptRefObjectUUID, //For Item Appointment UUID

      //SrvcDocItmApptReferenceItem,//For Appointment and Duration


      _WBSElement.WBSElementExternalID,
      
      // Sales

      PurchaseOrderByCustomer,

      //Associations

      _ServiceDocument,
      //      _ServiceContract,

      _ServiceContractTP,
      _SrvcContrItmPartnerTP,
      _SrvcContrItmPriceElementTP,
      _SrvcContrItemUserStatusTP,

      _ServiceObjType,


      _ExtRefServiceContract,
      _ExtRefServiceContractItem,


      _Product,
      _ContactPerson,
      _RespEmployee,
      _PaymentTerms,
      _PaymentMethod,
      _PaymentMethodVH,
      _SrvcSEPAMandateRelevance,
      _SrvcContrItmFUPBillgDocTP,
      _SrvcContrItmFUPSrvcOrdTP,
      _SrvcContrItemRefObjectTP,
      _SrvcContrItemProductTP,
      _SrvcContrItmBillgReqItemTP,
      _SrvcContrItemDurationTP,
      _SrvcContrItemAppointmentTP,
      _SrvcContrItemLongTextTP,
      _BaseUnit,
      _SrvcContrItemExtnDurationUnit,
      _SrvcContrItemRnwlDurationUnit,
      
      // Mass Process Enhancement

      _ServiceDocItemCategory,
      _SrvcDocItmLifecycleStatus,
      _ServiceDocItemHasError,
      _SrvcDocItemCreditStatus,
      _ServiceDocItemBillingStatus,
      _SoldToParty,
      _ShipToParty,
      _BillToParty,
      _PayerParty,
      _SalesOrganization,
      _DistributionChannel,
      _Division,
      _SalesOffice,
      _SalesGroup,
      _BillingBlockReason,
      
      // UX improvement

      _SrvcDocLifecycleStatusText,
      _ServiceDocBillingStatusText,
      _SrvcDocTransferStatusText,
      _SrvcDocRejectionStatusText,
      _BillingBlockReasonText,
      _PaymentTermsText,
      _ServiceDocItemCategoryText,
      _UnitOfMeasureText,
      _CurrencyText,
      _SrvcMgmtDateRuleText,
      _SettlementPeriodRuleText,
      _ServiceCancellationPartyText,
      _ServiceCanclnReasonText
}
where
  ServiceObjectType = 'BUS2000112' //Service Contract

  and ServiceDocumentTemplateType is initial