P_BusSolnOrdItmFinData

DDL: P_BUSSOLNORDITMFINDATA Type: view_entity COMPOSITE Package: CRMS4_ANALYTICS_SOLUTION_ORDER

Business Solution Order Item Financial Data

P_BusSolnOrdItmFinData is a Composite CDS View that provides data about "Business Solution Order Item Financial Data" in SAP S/4HANA. It reads from 1 data source (I_ServiceDocumentItemEnhcd) and exposes 47 fields with key fields ServiceObjectType, BusinessSolutionOrder, BusinessSolutionOrderItem. It has 2 associations to related views. Part of development package CRMS4_ANALYTICS_SOLUTION_ORDER.

Data Sources (1)

SourceAliasJoin Type
I_ServiceDocumentItemEnhcd I_ServiceDocumentItemEnhcd from

Associations (2)

CardinalityTargetAliasCondition
[1] P_BusinessSolnOrdItmFinData _ServiceDocLinItmFinData $projection.BusinessSolutionOrder = _ServiceDocLinItmFinData.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _ServiceDocLinItmFinData.BusinessSolutionOrderItem
[1] P_BusSolnOrdItmWithHdrStat _SolnOrdHdrStat $projection.ServiceObjectType = _SolnOrdHdrStat.ServiceObjectType and $projection.BusinessSolutionOrder = _SolnOrdHdrStat.BusinessSolutionOrder and $projection.BusinessSolutionOrderItem = _SolnOrdHdrStat.BusinessSolutionOrderItem

Annotations (5)

NameValueLevelField
VDM.private true view
VDM.viewType #COMPOSITE view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #XXL view

Fields (47)

KeyFieldSource TableSource FieldDescription
KEY ServiceObjectType ServiceObjectType
KEY BusinessSolutionOrder ServiceDocument
KEY BusinessSolutionOrderItem ServiceDocumentItem
BusSolnOrdType ServiceDocumentType
BusSolnOrdDescription ServiceDocumentDescription
BusSolnOrdItmDescription ServiceDocumentItemDescription
DistributionChannel DistributionChannel
Division Division
SalesOrganization SalesOrganization
SalesOffice SalesOffice
SalesGroup SalesGroup
SoldToParty SoldToParty
Country SoldToPartyCountry
Region SoldToPartyRegion
BusSolnOrdItmStatus ServiceDocumentItemStatus
TransactionCurrency TransactionCurrency
TotBusSolnOrdItmNetAmtPerPerd ServiceDocumentItemNetAmount
ServiceDocumentItemObjectType ServiceDocumentItemObjectType
CompanyCodeCurrency _ServiceDocLinItmFinData CompanyCodeCurrency
RevenueAmountInCompanyCodeCrcy _ServiceDocLinItmFinData RevenueAmountInCompanyCodeCrcy
CostAmountInCompanyCodeCrcy _ServiceDocLinItmFinData CostAmountInCompanyCodeCrcy
RecognizedMarginAmtInCCCrcy _ServiceDocLinItmFinData RecognizedMarginAmtInCCCrcy
BusSolnOrdStatus
PostingDate PostingDate
ServiceDocItemCategory ServiceDocItemCategory
Product Product
ServiceDocumentCreationDate
int4asNrOfOpenBusSolnOrders
int4asNrOfReldBusSolnOrders
int4asNrOfCmpltdBusSolnOrders
_ServiceObjType _ServiceObjType
_ServiceDocumentType _ServiceDocumentType
_DistributionChannel _DistributionChannel
_Division _Division
_SalesOrganization _SalesOrganization
_SalesOffice _SalesOffice
_SalesGroup _SalesGroup
_SoldToParty _SoldToParty
_SoldToPartyCountry _SoldToPartyCountry
_SoldToPartyRegion _SoldToPartyRegion
_ServiceDocItemStatus _ServiceDocItemStatus
_SrvcDocItmLifecycleStatus _SrvcDocItmLifecycleStatus
_TransactionCurrency _TransactionCurrency
_ServiceDocumentStatus _ServiceDocument _ServiceDocumentStatus
_SrvcDocLifecycleStatus _ServiceDocument _SrvcDocLifecycleStatus
_ServiceDocItemCategory _ServiceDocItemCategory
_Product _Product
@VDM: {
   private:true,
   viewType: #COMPOSITE
}

@AccessControl: {
  personalData.blocking: #('TRANSACTIONAL_DATA')
}
@ObjectModel: {
   usageType: {
     dataClass:      #MIXED,
     serviceQuality: #D,
     sizeCategory:   #XXL
   }
}


define view entity P_BusSolnOrdItmFinData
  as select from I_ServiceDocumentItemEnhcd
  association [1] to P_BusinessSolnOrdItmFinData as _ServiceDocLinItmFinData on  $projection.BusinessSolutionOrder     = _ServiceDocLinItmFinData.BusinessSolutionOrder
                                                                             and $projection.BusinessSolutionOrderItem = _ServiceDocLinItmFinData.BusinessSolutionOrderItem
  //  association [0..1] to I_CalendarDate              as _Period                  on  $projection.ServiceDocItemCreationDate = _Period.CalendarDate


  association [1] to P_BusSolnOrdItmWithHdrStat  as _SolnOrdHdrStat          on  $projection.ServiceObjectType         = _SolnOrdHdrStat.ServiceObjectType
                                                                             and $projection.BusinessSolutionOrder     = _SolnOrdHdrStat.BusinessSolutionOrder
                                                                             and $projection.BusinessSolutionOrderItem = _SolnOrdHdrStat.BusinessSolutionOrderItem
                                                                             
{
      @ObjectModel.foreignKey.association: '_ServiceObjType'
  key ServiceObjectType,
      @ObjectModel.text.element: [ 'BusSolnOrdDescription']
//      @ObjectModel.foreignKey.association: '_ServiceDocument'

  key ServiceDocument                                             as BusinessSolutionOrder,
      @ObjectModel.text.element: [ 'ServiceDocumentItemDescription']
  key ServiceDocumentItem                                         as BusinessSolutionOrderItem,
      @ObjectModel.foreignKey.association: '_ServiceDocumentType'
      ServiceDocumentType                                         as BusSolnOrdType,
      @Semantics.text: true
      ServiceDocumentDescription                                  as BusSolnOrdDescription,
      @Semantics.text: true
      ServiceDocumentItemDescription                              as BusSolnOrdItmDescription,
      @ObjectModel.foreignKey.association: '_DistributionChannel'
      DistributionChannel,
      @ObjectModel.foreignKey.association: '_Division'
      Division,
      @ObjectModel.foreignKey.association: '_SalesOrganization'
      SalesOrganization,
      @ObjectModel.foreignKey.association: '_SalesOffice'
      SalesOffice,
      @ObjectModel.foreignKey.association: '_SalesGroup'
      SalesGroup,
      @ObjectModel.foreignKey.association: '_SoldToParty'
      SoldToParty,
      @ObjectModel.foreignKey.association: '_SoldToPartyCountry'
      SoldToPartyCountry                                          as Country,
      @ObjectModel.foreignKey.association: '_SoldToPartyRegion'
      SoldToPartyRegion                                           as Region,
      @ObjectModel.foreignKey.association: '_SrvcDocItmLifecycleStatus'
      ServiceDocumentItemStatus                                   as BusSolnOrdItmStatus,
      @ObjectModel.foreignKey.association: '_TransactionCurrency'
      TransactionCurrency,
      @DefaultAggregation: #SUM
      @Semantics: { amount : {currencyCode: 'TransactionCurrency'} }
      ServiceDocumentItemNetAmount                                as TotBusSolnOrdItmNetAmtPerPerd,

      ServiceDocumentItemObjectType,
      _ServiceDocLinItmFinData.CompanyCodeCurrency                as CompanyCodeCurrency,
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      @DefaultAggregation: #SUM
      _ServiceDocLinItmFinData.RevenueAmountInCompanyCodeCrcy   as RevenueAmountInCompanyCodeCrcy,
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      @DefaultAggregation: #SUM
      _ServiceDocLinItmFinData.CostAmountInCompanyCodeCrcy        as CostAmountInCompanyCodeCrcy,
      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }
      @DefaultAggregation: #SUM
      _ServiceDocLinItmFinData.RecognizedMarginAmtInCCCrcy      as RecognizedMarginAmtInCCCrcy,
      @ObjectModel.foreignKey.association: '_SrvcDocLifecycleStatus'
      I_ServiceDocumentItemEnhcd._ServiceDocument.ServiceDocumentStatus                      as BusSolnOrdStatus,

      //      _ServiceDocLinItmFinData.PostingDate as PostingDate,

      PostingDate,


      //      //        @AnalyticsDetails.query.axis: #ROWS

      //      @DefaultAggregation: #FORMULA

      //      @AnalyticsDetails.query.formula: 'NDIV0($projection.RecognizedMarginAmtInCCCrcy / $projection.RevenueAmountInCompanyCodeCrcy) * 100'

      //      @Semantics: { amount : {currencyCode: 'CompanyCodeCurrency'} }

      //      cast (0 as fis_operatingmargin_ksl)                     as OpgMargRatioGlobCrcy,




      @ObjectModel.foreignKey.association: '_ServiceDocItemCategory'
      ServiceDocItemCategory,
      @ObjectModel.foreignKey.association: '_Product'
      Product,
      //      ServiceDocItemCreationDate,

      //      @Semantics.calendar.quarter

      //      _Period.CalendarQuarter                                 as BusSolnOrdCreationQuarter,

      //      @Semantics.calendar.month

      //      _Period.CalendarMonth                                   as BusSolnOrdCreationMonth,

      //      @Semantics.calendar.year

      //      _Period.CalendarYear                                    as BusSolnOrdCreationYear,

      
      
//      @Semantics.systemDate.createdAt: true

//      cast( tstmp_to_dats( ServiceDocItemCreationDateTime,

//                   abap_system_timezone( $session.client,'NULL' ),

//                   $session.client,

//                   'NULL' ) as crms4_created_on preserving type ) as ServiceDocItemCreationDate,

                  
                  
                  
                  
                  
     @Semantics.systemDate.createdAt: true
      cast( tstmp_to_dats( ServiceDocItemCreationDateTime,
                   $session.user_timezone,
                   $session.client,
                   'NULL' ) as crms4_created_on preserving type ) as ServiceDocItemCreationDate,            
  
     @Semantics.systemDate.createdAt: true
      I_ServiceDocumentItemEnhcd._ServiceDocument.ServiceDocumentCreationDate as ServiceDocumentCreationDate, 
  
                   
//       @Semantics.systemDate.createdAt: true

//      cast( tstmp_to_dats( ServiceDocItemCreationDateTime,

//                   'UTC' ,

//                   $session.client,

//                   'NULL' )

//                    as crms4_created_on preserving type ) as ServiceDocItemCreationDate,            

                   
                   
      @DefaultAggregation: #SUM
      cast( case when (_SolnOrdHdrStat. ServiceDocumentIsOpen = 'X' and _SolnOrdHdrStat.ServiceDocumentIsReleased = '')
            then 1
            else 0
            end as abap.int4 )                                    as NrOfOpenBusSolnOrders,
      @DefaultAggregation: #SUM
      cast( case when _SolnOrdHdrStat.ServiceDocumentIsReleased = 'X'
            then 1
            else 0
            end as abap.int4 )                                    as NrOfReldBusSolnOrders,
      @DefaultAggregation: #SUM
      cast( case when (_SolnOrdHdrStat. ServiceDocumentIsOpen = '' and _SolnOrdHdrStat.ServiceDocumentIsReleased = '')
            then 1
            else 0
            end as abap.int4 )                                    as NrOfCmpltdBusSolnOrders,


      _ServiceObjType,
      _ServiceDocumentType,
      _DistributionChannel,
      _Division,
      _SalesOrganization,
      _SalesOffice,
      _SalesGroup,
      _SoldToParty,
      _SoldToPartyCountry,
      _SoldToPartyRegion,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_SrvcDocItmLifecycleStatus'
      _ServiceDocItemStatus,
      _SrvcDocItmLifecycleStatus,
      _TransactionCurrency,
      @API.element.releaseState: #DEPRECATED
      @API.element.successor: '_SrvcDocLifecycleStatus'
      _ServiceDocument._ServiceDocumentStatus,
      _ServiceDocument._SrvcDocLifecycleStatus,   
      _ServiceDocItemCategory,
      _Product
      
      //      _Period

}
where
      ServiceObjectType             = 'BUS2000172'
//  and ServiceDocumentItemIsReleased = 'X'