A_BusSolnOrdSubscrpnBillgItem

DDL: A_BUSSOLNORDSUBSCRPNBILLGITEM Type: view COMPOSITE Package: ODATA_CRMS4_SOLUTIONORDER

Subscription Billing Item

A_BusSolnOrdSubscrpnBillgItem is a Composite CDS View that provides data about "Subscription Billing Item" in SAP S/4HANA. It reads from 1 data source (I_ServiceDocumentItemEnhcd) and exposes 60 fields with key fields BusinessSolutionOrder, BusinessSolutionOrderItem. It has 12 associations to related views. Part of development package ODATA_CRMS4_SOLUTIONORDER.

Data Sources (1)

SourceAliasJoin Type
I_ServiceDocumentItemEnhcd I_ServiceDocumentItemEnhcd from

Associations (12)

CardinalityTargetAliasCondition
[1..1] A_BusinessSolutionOrder _BusinessSolutionOrder $projection.BusinessSolutionOrder = _BusinessSolutionOrder.BusinessSolutionOrder
[0..*] A_BusSolnOrdItmRateElement _RateElements $projection.BusinessSolutionOrder = _RateElements.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _RateElements.BusinessSolutionOrderItem
[0..*] A_BusSolnOrdItmSubscrpnPrParam _PriceParameters $projection.BusinessSolutionOrder = _PriceParameters.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _PriceParameters.BusinessSolutionOrderItem
[0..*] A_BusSolnOrdItmSubscrpnParam _SubscriptionParameters $projection.BusinessSolutionOrder = _SubscriptionParameters.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _SubscriptionParameters.BusinessSolutionOrderItem
[0..*] A_BusSolnOrdItmSubscrpnPrAgrmt _SubscriptionPriceAgreements $projection.BusinessSolutionOrder = _SubscriptionPriceAgreements.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _SubscriptionPriceAgreements.BusinessSolutionOrderItem
[0..1] I_CustMgmtExtRefID _ExternalReference $projection.BusinessSolutionOrder = _ExternalReference.CustMgmtDocument and _ExternalReference.CustMgmtObjectType = 'BUS2000172' and $projection.BusinessSolutionOrderItem = _ExternalReference.CustMgmtDocumentItem and _ExternalReference.CustMgmtExtRefIDType = '0013'
[0..*] A_BusSolnOrdItmFUPSubscrpn _SubscriptionBilling $projection.BusinessSolutionOrder = _SubscriptionBilling.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _SubscriptionBilling.BusinessSolutionOrderItem
[0..1] E_ServiceDocumentItem _Extension _Extension.ServiceCategory = 'BUS2000172' and $projection.BusinessSolutionOrder = _Extension.ServiceOrderItem and $projection.BusinessSolutionOrderItem = _Extension.ServiceLineExternalID
[0..*] I_SrvcDocAppointment _SrvcDocAppointment _SrvcDocAppointment.SrvcMgmtObjectUUID = $projection.BusinessSolutionOrderItemUUID
[0..1] I_UnitOfMeasure _QuantityUnit $projection.QuantityUnit = _QuantityUnit.UnitOfMeasure
[0..*] A_BusSolnOrdItmUserStatus _UserStatus $projection.BusinessSolutionOrder = _UserStatus.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _UserStatus.BusinessSolutionOrderItem
[0..*] A_BusSolnOrdItmPartner _Partner $projection.BusinessSolutionOrder = _Partner.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _Partner.BusinessSolutionOrderItem

Annotations (15)

NameValueLevelField
EndUserText.label Subscription Billing Item view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #COMPOSITE view
VDM.lifecycle.contract.type #PUBLIC_REMOTE_API view
AbapCatalog.sqlViewName ABSOSUBSCRPNITM view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
ObjectModel.createEnabled true view
ObjectModel.updateEnabled true view
ObjectModel.deleteEnabled true view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
Metadata.ignorePropagatedAnnotations true view

Fields (60)

KeyFieldSource TableSource FieldDescription
KEY BusinessSolutionOrder ServiceDocument
KEY BusinessSolutionOrderItem ServiceDocumentItem
BusSolnOrderItemCharUUID ServiceDocumentItemCharUUID
BusinessSolutionOrderItemUUID ServiceDocumentItemUUID
BusSolnOrdItmCategory ServiceDocItemCategory
Product Product
Quantity ServiceDocumentItemQuantity
QuantityUnit ServiceDocItemQuantityUnit
BusSolnOrdItmQtyUnitSAPCode
BusSolnOrdItmQtyUnitISOCode
BusSolnOrdItmDescription ServiceDocumentItemDescription
BusSolnOrdItmExtReference _ExternalReference CustMgmtExtRefID
ServiceDocumentItemNetAmount ServiceDocumentItemNetAmount
TransactionCurrency TransactionCurrency
Language Language
ParentServiceDocumentItemUUID ParentServiceDocumentItemUUID
ParentBusSolnOrdItem _ParentServiceDocItem ServiceDocumentItem
BusSolnOrdItemBundleProduct BusSolnOrdItemBundleProduct
BusSolnOrdItemBundleItem BusSolnOrdItemBundleItem
BusSolnOrdItmIsReleased ServiceDocumentItemIsReleased
BusSolnOrdItmDistrStatus
BusSolnOrdItmDistrStatusName
SubscrpnSimulationStatus
SubscrpnSimulationStatusName
SubscriptionStartDateTime ServiceContrItemStartDateTime
SubscriptionEndDateTime ServiceContrItemEndDateTime
SubscrpnBillgItmPrcgDateTime
SubscrpnBillgCutoverDateTime
SubscrpnBillgCycRefDateTime
SubscrpnExpdTermEndDateTime
SubscrpnMinimumTermEndDateTime
SubscrpnWthdrwlPerdEndDateTime
SubscrpnWithdrawalPeriod
SubscriptionFixedTerm
SubscriptionTermOfNotice
SubscriptionMinimumTerm
SubscriptionRenewalPeriod
SubscriptionExpectedTerm
SubscrpnExpectedTermExtension
SubscrpnWaiverPeriod
SubscrpnWvrPeriodUnitSAPCode
MidBillgCycExprtnIsAllowed MidBillgCycExprtnIsAllowed
SubscriptionBillingCycle SubscriptionBillingCycle
SubscrpnBillgRatePlanUUID SubscrpnBillgRatePlanCharUUID
ProfitCenter ProfitCenter
SubscrpnOrdIsPending SubscrpnOrdIsPending
NrOfBillgCyclesBilledTogether NrOfBillgCyclesBilledTogether
SoldToParty SoldToParty
ShipToParty ShipToParty
BillToParty BillToParty
PayerParty PayerParty
ContractAccount ContractAccount
_BusinessSolutionOrder _BusinessSolutionOrder
_RateElements _RateElements
_PriceParameters _PriceParameters
_SubscriptionParameters _SubscriptionParameters
_SubscriptionPriceAgreements _SubscriptionPriceAgreements
_SubscriptionBilling _SubscriptionBilling
_UserStatus _UserStatus
_Partner _Partner
@EndUserText.label: 'Subscription Billing Item'
@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM: {
  viewType: #COMPOSITE,
  lifecycle.contract.type: #PUBLIC_REMOTE_API
}
@AbapCatalog: {
  sqlViewName: 'ABSOSUBSCRPNITM',
  compiler.compareFilter: true,
  preserveKey: true
}
@AccessControl: {
  authorizationCheck: #CHECK,
  personalData.blocking: #('TRANSACTIONAL_DATA')
}
@ObjectModel: {
   createEnabled: true,
   updateEnabled: true,
   deleteEnabled: true,
   usageType: {
     dataClass:      #TRANSACTIONAL,
     serviceQuality: #C,
     sizeCategory:   #L
   }
}
@Metadata.ignorePropagatedAnnotations: true

define view A_BusSolnOrdSubscrpnBillgItem
  as select from I_ServiceDocumentItemEnhcd
  association [1..1] to A_BusinessSolutionOrder        as _BusinessSolutionOrder       on  $projection.BusinessSolutionOrder = _BusinessSolutionOrder.BusinessSolutionOrder
  association [0..*] to A_BusSolnOrdItmRateElement     as _RateElements                on  $projection.BusinessSolutionOrder     = _RateElements.BusinessSolutionOrder
                                                                                       and $projection.BusinessSolutionOrderItem = _RateElements.BusinessSolutionOrderItem
  association [0..*] to A_BusSolnOrdItmSubscrpnPrParam as _PriceParameters             on  $projection.BusinessSolutionOrder     = _PriceParameters.BusinessSolutionOrder
                                                                                       and $projection.BusinessSolutionOrderItem = _PriceParameters.BusinessSolutionOrderItem
  association [0..*] to A_BusSolnOrdItmSubscrpnParam   as _SubscriptionParameters      on  $projection.BusinessSolutionOrder     = _SubscriptionParameters.BusinessSolutionOrder
                                                                                       and $projection.BusinessSolutionOrderItem = _SubscriptionParameters.BusinessSolutionOrderItem
  association [0..*] to A_BusSolnOrdItmSubscrpnPrAgrmt as _SubscriptionPriceAgreements on  $projection.BusinessSolutionOrder     = _SubscriptionPriceAgreements.BusinessSolutionOrder
                                                                                       and $projection.BusinessSolutionOrderItem = _SubscriptionPriceAgreements.BusinessSolutionOrderItem
  association [0..1] to I_CustMgmtExtRefID             as _ExternalReference           on  $projection.BusinessSolutionOrder       = _ExternalReference.CustMgmtDocument
                                                                                       and _ExternalReference.CustMgmtObjectType   = 'BUS2000172'
                                                                                       and $projection.BusinessSolutionOrderItem   = _ExternalReference.CustMgmtDocumentItem
                                                                                       and _ExternalReference.CustMgmtExtRefIDType = '0013'
  association [0..*] to A_BusSolnOrdItmFUPSubscrpn     as _SubscriptionBilling         on  $projection.BusinessSolutionOrder     = _SubscriptionBilling.BusinessSolutionOrder
                                                                                       and $projection.BusinessSolutionOrderItem = _SubscriptionBilling.BusinessSolutionOrderItem
  association [0..1] to E_ServiceDocumentItem          as _Extension                   on  _Extension.ServiceCategory            = 'BUS2000172'
                                                                                       and $projection.BusinessSolutionOrder     = _Extension.ServiceOrderItem
                                                                                       and $projection.BusinessSolutionOrderItem = _Extension.ServiceLineExternalID
  association [0..*] to I_SrvcDocAppointment           as _SrvcDocAppointment          on  _SrvcDocAppointment.SrvcMgmtObjectUUID = $projection.BusinessSolutionOrderItemUUID
  association [0..1] to I_UnitOfMeasure                as _QuantityUnit                on  $projection.QuantityUnit = _QuantityUnit.UnitOfMeasure 
  association [0..*] to A_BusSolnOrdItmUserStatus      as _UserStatus                  on  $projection.BusinessSolutionOrder     = _UserStatus.BusinessSolutionOrder  
                                                                                       and $projection.BusinessSolutionOrderItem = _UserStatus.BusinessSolutionOrderItem
 association [0..*]  to A_BusSolnOrdItmPartner         as _Partner                     on $projection.BusinessSolutionOrder = _Partner.BusinessSolutionOrder
                                                                                       and $projection.BusinessSolutionOrderItem = _Partner.BusinessSolutionOrderItem                                                                                     

{
  key   ServiceDocument                                                                         as BusinessSolutionOrder,
  key   ServiceDocumentItem                                                                     as BusinessSolutionOrderItem,

        @ObjectModel.readOnly: true
        @Semantics.uuid: true
        @Consumption.hidden: true
        ServiceDocumentItemCharUUID                                                             as BusSolnOrderItemCharUUID,
        @ObjectModel.readOnly: true
        ServiceDocumentItemUUID                                                                 as BusinessSolutionOrderItemUUID,
        @ObjectModel.sapObjectNodeTypeReference: 'ServiceDocumentItemCategory'
        ServiceDocItemCategory                                                                  as BusSolnOrdItmCategory,
        Product,
   
        @Semantics.quantity.unitOfMeasure: 'QuantityUnit'          
        @Semantics.quantity.unitOfMeasureSapCode: 'BusSolnOrdItmQtyUnitSAPCode'
        @Semantics.quantity.unitOfMeasureIsoCode: 'BusSolnOrdItmQtyUnitISOCode'
        ServiceDocumentItemQuantity                                                             as Quantity,
        @Semantics.unitOfMeasure: true
        ServiceDocItemQuantityUnit                                                              as QuantityUnit,
        cast(_QuantityUnit.UnitOfMeasureSAPCode as sd_ord_qty_sapunit preserving type)          as BusSolnOrdItmQtyUnitSAPCode,
        cast(_QuantityUnit.UnitOfMeasureISOCode as sd_ord_qty_isounit preserving type)          as BusSolnOrdItmQtyUnitISOCode,
        
        ServiceDocumentItemDescription                                                          as BusSolnOrdItmDescription,
        _ExternalReference.CustMgmtExtRefID                                                     as BusSolnOrdItmExtReference,
        @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
        @ObjectModel.readOnly: true
        ServiceDocumentItemNetAmount,
        @ObjectModel.sapObjectNodeTypeReference: 'Currency'
        TransactionCurrency,
        Language,
        @ObjectModel.readOnly: true
        ParentServiceDocumentItemUUID,
        @ObjectModel.readOnly: true
        _ParentServiceDocItem.ServiceDocumentItem        as ParentBusSolnOrdItem,
        @ObjectModel.readOnly: true
        BusSolnOrdItemBundleProduct,
        @ObjectModel.readOnly: true
        BusSolnOrdItemBundleItem,

        /* STATUS */
        case ServiceDocumentItemStatus
        when 'C'  then 'X'
        else ''
        end                                                                                     as BusSolnOrdItmIsCompleted,
        ServiceDocumentItemIsReleased                                                           as BusSolnOrdItmIsReleased,
        @ObjectModel.readOnly: true
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_DISTR_EXIT'
        cast( '' as abap.char( 1 ) )                                                            as BusSolnOrdItmDistrStatus,
        @ObjectModel.readOnly: true
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_DISTR_EXIT'
        cast( '' as abap.char( 60 ) )                                                           as BusSolnOrdItmDistrStatusName,

        @ObjectModel.readOnly: true
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_SUB_SIM_EXIT'
        cast( '' as abap.char ( 1 ))                                                            as SubscrpnSimulationStatus,
        @ObjectModel.readOnly: true
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_SUB_SIM_EXIT'
        cast( '' as abap.char( 60 ))                                                            as SubscrpnSimulationStatusName,

        /* DATES */
        @Semantics.dateTime: true
        ServiceContrItemStartDateTime                                                           as SubscriptionStartDateTime,
        @Semantics.dateTime: true
//        @ObjectModel.readOnly: true

        ServiceContrItemEndDateTime                                                             as SubscriptionEndDateTime,
        @Semantics.dateTime: true
        _SrvcDocAppointment[1:SrvcDocAppointmentType = 'SUBS_PRIC_DT'].SrvcDocApptStartDateTime as SubscrpnBillgItmPrcgDateTime,
        @Semantics.dateTime: true
        _SrvcDocAppointment[1:SrvcDocAppointmentType = 'SUBS_BIL_CUT'].SrvcDocApptStartDateTime as SubscrpnBillgCutoverDateTime,
        @Semantics.dateTime: true
        _SrvcDocAppointment[1:SrvcDocAppointmentType = 'SUBS_BIL_CYC'].SrvcDocApptStartDateTime as SubscrpnBillgCycRefDateTime,
        @Semantics.dateTime: true
        @ObjectModel.readOnly: true
        _SrvcDocAppointment[1:SrvcDocAppointmentType = 'SUBS_EXP_END'].SrvcDocApptStartDateTime as SubscrpnExpdTermEndDateTime,
        @Semantics.dateTime: true
        @ObjectModel.readOnly: true
        _SrvcDocAppointment[1:SrvcDocAppointmentType = 'SUBS_MIN_END'].SrvcDocApptStartDateTime as SubscrpnMinimumTermEndDateTime,
        @Semantics.dateTime: true
        @ObjectModel.readOnly: true
        _SrvcDocAppointment[1:SrvcDocAppointmentType = 'SUBS_WDR_END'].SrvcDocApptStartDateTime as SubscrpnWthdrwlPerdEndDateTime,
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_ITM_DUR_EXIT'
        cast (0 as abap.dec(13))                                                                as SubscrpnWithdrawalPeriod,
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_ITM_DUR_EXIT'
        cast (0 as abap.dec(13))                                                                as SubscriptionFixedTerm,
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_ITM_DUR_EXIT'
        cast (0 as abap.dec(13))                                                                as SubscriptionTermOfNotice,
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_ITM_DUR_EXIT'
        cast (0 as abap.dec(13))                                                                as SubscriptionMinimumTerm,
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_ITM_DUR_EXIT'
        cast (0 as abap.dec(13))                                                                as SubscriptionRenewalPeriod,
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_ITM_DUR_EXIT'
        cast (0 as abap.dec(13))                                                                as SubscriptionExpectedTerm,
        @ObjectModel.virtualElement:true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_ITM_DUR_EXIT'
        cast (0 as abap.dec(13))                                                                as SubscrpnExpectedTermExtension,
        @ObjectModel.virtualElement: true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_ITM_DUR_EXIT'
        cast (0 as abap.dec(13))                                                                as SubscrpnWaiverPeriod,
        @ObjectModel.virtualElement: true
        @ObjectModel.virtualElementCalculatedBy: 'ABAP:CL_CRMS4_SOLO_API_ITM_DUR_EXIT'
        cast ( '' as abap.char(12))                                                             as SubscrpnWvrPeriodUnitSAPCode,

        case SubscrpnContrTrmsAreSpecified
        when 'Y' then 'X'
        when 'V' then 'X'
        when ' ' then 'X'
        else ''
        end                                                                                     as SubscrpnContrTrmsAreSpecified,
        MidBillgCycExprtnIsAllowed,
        @ObjectModel.readOnly: true
        SubscriptionBillingCycle,
        @Feature: 'CRMS4_SOLO_RATE_PLAN'
        @Semantics.uuid: true
        SubscrpnBillgRatePlanCharUUID as SubscrpnBillgRatePlanUUID,
        ProfitCenter,
        @Semantics.booleanIndicator: true
        SubscrpnOrdIsPending,
        NrOfBillgCyclesBilledTogether,

        /* PARTNERS */
        SoldToParty,
        ShipToParty,
        BillToParty,
        PayerParty,
        
        /*Contract Account*/
        @Feature: 'CRMS4_SOLO_API_CONTR_ACCOUNT'
        ContractAccount,

        _BusinessSolutionOrder,
        _RateElements,
        _PriceParameters,
        _SubscriptionParameters,
        _SubscriptionPriceAgreements,
        _SubscriptionBilling,
        _UserStatus,
        _Partner
        
        
}
where
      ServiceObjectType             = 'BUS2000172'
  and ServiceDocumentItemObjectType = 'BUS2000189'