I_RAPerfOblgnToRevnExplItem

DDL: I_RAPERFOBLGNTOREVNEXPLITEM SQL: IRAPERFOBLGNRVXP Type: view COMPOSITE

RA Perf Oblgn To Revenue Expl Item

I_RAPerfOblgnToRevnExplItem is a Composite CDS View that provides data about "RA Perf Oblgn To Revenue Expl Item" in SAP S/4HANA. It reads from 2 data sources (I_RevenueAccountingMapping, I_RAPerformanceObligation) and exposes 65 fields with key fields PerformanceObligation, RASndgCompDocumentItem, RevenueAccountingContract. It has 1 association to related views.

Data Sources (2)

SourceAliasJoin Type
I_RevenueAccountingMapping _Mapping left_outer
I_RAPerformanceObligation PerfOblgn from

Associations (1)

CardinalityTargetAliasCondition
[0..1] P_RAPerfOblgnIsFrozen _IsFrozen $projection.PerformanceObligation = _IsFrozen.PerformanceObligation

Annotations (10)

NameValueLevelField
AbapCatalog.sqlViewName IRAPERFOBLGNRVXP view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #CHECK view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label RA Perf Oblgn To Revenue Expl Item view
ObjectModel.usageType.sizeCategory #XXL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #COMPOSITE view

Fields (65)

KeyFieldSource TableSource FieldDescription
KEY PerformanceObligation I_RAPerformanceObligation PerformanceObligation
KEY RASndgCompDocumentItem
KEY RevenueAccountingContract I_RAPerformanceObligation RevenueAccountingContract
RevnAcctgSenderComponent I_RevenueAccountingMapping RevnAcctgSenderComponent
PerformanceObligationClass PerformanceObligationClass
RAPerfOblgnCategory RAPerfOblgnCategory
CompanyCode I_RAPerformanceObligation CompanyCode
AccountingPrinciple I_RAPerformanceObligation AccountingPrinciple
RAPerfOblgnDistinctType RAPerfOblgnDistinctType
RAPerformanceObligationType RAPerformanceObligationType
PerfOblgnCreatedByUser PerfOblgnCreatedByUser
PerfOblgnCreationDate PerfOblgnCreationDate
PerfOblgnLastChangedByUsr PerfOblgnLastChangedByUsr
PerfOblgnLastChangeDate PerfOblgnLastChangeDate
BusinessPartner BusinessPartner
Customer Customer
RevnAcctgSalesOrganization RevnAcctgSalesOrganization
RevnAcctgPerfOblgnStatus RevnAcctgPerfOblgnStatus
PerfOblgnFulfillmentType PerfOblgnFulfillmentType
PerfOblgnEventType PerfOblgnEventType
PerfOblgnIsFinallyInvoiced PerfOblgnIsFinallyInvoiced
RAFulfillmentIsValueBased RAFulfillmentIsValueBased
PerfOblgnHasManualSpreading I_RAPerformanceObligation PerfOblgnHasManualSpreading
OrderID OrderID
Segment Segment
ProfitCenter ProfitCenter
PerformanceObligationStartDate PerformanceObligationStartDate
PerformanceObligationEndDate PerformanceObligationEndDate
RAPerfOblgnFinalizationDate RAPerfOblgnFinalizationDate
RevnAcctgOperationalDocument I_RevenueAccountingMapping RevnAcctgOperationalDocument
SSPriceInSalesDocCrcy SSPriceInSalesDocCrcy
PerfOblgnEffectiveQuantity PerfOblgnEffectiveQuantity
PerfOblgnEffectiveQuantityUnit PerfOblgnEffectiveQuantityUnit
RAUnivRevnRecgnIntegType RAUnivRevnRecgnIntegType
ContractualPrcInSlsDocCrcy
AllocatedPriceInSalesDocCrcy
RAPerfOblgnTotRevnInSlsDocCrcy
AllocEffctAmountInSalesDocCrcy
UpToCurPeriodRecognizedRevenue
RATotalOpenRevnInSlsDocCrcy
RAFlfmtRecgdRevnInSlsDocCrcy
RecgdCatchUpAmtInSlsDocCrcy
SalesDocumentCurrency _RevnAmt SalesDocumentCurrency
RatioUnit
CreatedByUserDescription _CreatedByUser UserDescription
LastChangedByUserDescription _ChangedByUser UserDescription
FunctionalArea FunctionalArea
BusinessArea BusinessArea
CostCenter CostCenter
WBSElementExternalID WBSElementExternalID
ControllingArea ControllingArea
IsBusinessPurposeCompleted
_RevenueAccountingContract _RevenueAccountingContract
_BusinessPartner _BusinessPartner
_Customer _Customer
_AccountingPrinciple _AccountingPrinciple
_CompanyCode _CompanyCode
_FunctionalArea _FunctionalArea
_BusinessArea _BusinessArea
_Order _Order
_SalesOrganization _SalesOrganization
_Segment _Segment
_WBSElement _WBSElement
_CurrentCostCenter _CurrentCostCenter
_CurrentProfitCenter _CurrentProfitCenter
@AbapCatalog.sqlViewName: 'IRAPERFOBLGNRVXP'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #('TRANSACTIONAL_DATA') 

@ClientHandling.algorithm: #SESSION_VARIABLE

@EndUserText.label: 'RA Perf Oblgn To Revenue Expl Item'

@ObjectModel.usageType: {sizeCategory: #XXL, serviceQuality: #C, dataClass: #MIXED}

@VDM.viewType: #COMPOSITE
define view I_RAPerfOblgnToRevnExplItem as select from I_RAPerformanceObligation as PerfOblgn
  
  left outer to one join P_RAHighLvlPerfOblgnRevnAmt as _RevnAmt
  on PerfOblgn.PerformanceObligation = _RevnAmt.RAHigherLevelPerfOblgn
  and PerfOblgn.RevenueAccountingContract = _RevnAmt.RevenueAccountingContract 
  
  left outer join I_RevenueAccountingMapping  as _Mapping on PerfOblgn.PerformanceObligation = _Mapping.PerformanceObligation
  
  association [0..1] to P_RAPerfOblgnIsFrozen as _IsFrozen
  on $projection.PerformanceObligation  = _IsFrozen.PerformanceObligation
{ 
     
  key PerfOblgn.PerformanceObligation,
 
  key coalesce(_Mapping.RASndgCompDocumentItem, '') as RASndgCompDocumentItem, 
  
  key PerfOblgn.RevenueAccountingContract,
  
      _Mapping.RevnAcctgSenderComponent,
  
      PerformanceObligationClass,
      
      RAPerfOblgnCategory,
      
      PerfOblgn.CompanyCode,
      
      PerfOblgn.AccountingPrinciple,
      
      RAPerfOblgnDistinctType,
      
      RAPerformanceObligationType,
      
      PerfOblgnCreatedByUser,
      
      PerfOblgnCreationDate,
      
      PerfOblgnLastChangedByUsr,
      
      PerfOblgnLastChangeDate,
      
      BusinessPartner,
      
      Customer,
      
      RevnAcctgSalesOrganization,
      
      RevnAcctgPerfOblgnStatus,
      
      case
            when RevnAcctgPerfOblgnStatus = 'C'   then 3    -- 'Completed'    | 3: green colour
            when RevnAcctgPerfOblgnStatus = 'D'   then 3    -- 'Manually Completed'    | 3: green colour
            when RevnAcctgPerfOblgnStatus = 'I'   then 0    -- 'In Process'   | 0: neutral colour 
            else 2                                          -- 'Pending'      | 2: yellow colour
                                                            -- Not used here  | 0: unknown
        end as RAPerfOblgnStatusCriticality,
      
      PerfOblgnFulfillmentType,
      
      PerfOblgnEventType,
      
      PerfOblgnIsFinallyInvoiced,
      
      RAFulfillmentIsValueBased,
      
      case RAFulfillmentIsValueBased
        when '' then 'X'
        else ''
      end as RAFulfilledAmountIsHidden,
      
      PerfOblgn.PerfOblgnHasManualSpreading,
      
      OrderID,
      
      Segment,
      
      ProfitCenter,
      
      PerformanceObligationStartDate,
      
      PerformanceObligationEndDate,
      
      RAPerfOblgnFinalizationDate,
      
      _Mapping.RevnAcctgOperationalDocument,
      
      @Semantics.amount.currencyCode: 'SalesDocumentCurrency'
      SSPriceInSalesDocCrcy,
      
      @Semantics.quantity.unitOfMeasure: 'PerfOblgnEffectiveQuantityUnit'
      PerfOblgnEffectiveQuantity,
      
      PerfOblgnEffectiveQuantityUnit,
      
      RAUnivRevnRecgnIntegType,
      
      @Semantics.amount.currencyCode: 'SalesDocumentCurrency'
      cast(_RevnAmt.ContractualPrcInSlsDocCrcy as farr_cds_contractual_price preserving type) as ContractualPrcInSlsDocCrcy,
      
      @Semantics.amount.currencyCode: 'SalesDocumentCurrency'
      cast(_RevnAmt.AllocatedPriceInSalesDocCrcy as farr_allocated_amt preserving type ) as AllocatedPriceInSalesDocCrcy,
      
      @Semantics.amount.currencyCode: 'SalesDocumentCurrency'
      cast(_RevnAmt.AllocatedPriceInSalesDocCrcy as farr_cds_pob_total_revn ) as RAPerfOblgnTotRevnInSlsDocCrcy,
      
      @Semantics.amount.currencyCode: 'SalesDocumentCurrency'
      cast(_RevnAmt.AllocatedPriceInSalesDocCrcy - _RevnAmt.ContractualPrcInSlsDocCrcy as farr_corr_amt)  as AllocEffctAmountInSalesDocCrcy,
      
      @Semantics.amount.currencyCode: 'SalesDocumentCurrency'  
      cast( coalesce(RARecognizedRevnInSlsDocCrcy, 0) + coalesce(RecgdCatchUpAmtInSlsDocCrcy, 0 ) as farr_recog_amt) as UpToCurPeriodRecognizedRevenue,
      
      @Semantics.amount.currencyCode: 'SalesDocumentCurrency'
      cast( _RevnAmt.AllocatedPriceInSalesDocCrcy - coalesce( RARecognizedRevnInSlsDocCrcy, 0 ) - coalesce( RecgdCatchUpAmtInSlsDocCrcy , 0 ) as farr_open_revenue) as RATotalOpenRevnInSlsDocCrcy,
     
      @Semantics.amount.currencyCode: 'SalesDocumentCurrency'
      cast( RARecognizedRevnInSlsDocCrcy as farr_cds_fulfillmt_revn ) as RAFlfmtRecgdRevnInSlsDocCrcy, 
     
      @Semantics.amount.currencyCode: 'SalesDocumentCurrency'
      cast( RecgdCatchUpAmtInSlsDocCrcy as farr_cds_rev_catchup_amt ) as RecgdCatchUpAmtInSlsDocCrcy,
     
      @Semantics.currencyCode: true
      _RevnAmt.SalesDocumentCurrency,
            
      @Semantics.quantity.unitOfMeasure: 'RatioUnit'
       cast( case _RevnAmt.AllocatedPriceInSalesDocCrcy
           when 0 then 100
           else 100*round(division(RARecognizedRevnInSlsDocCrcy + RecgdCatchUpAmtInSlsDocCrcy, _RevnAmt.AllocatedPriceInSalesDocCrcy, 6), 4)
        end  as farr_fulfilled_rev_progress )as RecognizedRevnUpToCurPerdPct,
        
      case 
        when _IsFrozen.RAPerfOblgnIsFrozen is null then cast(' ' as boole_d) 
        else cast('X' as boole_d) end as RAPerfOblgnIsFrozen,
        
      @Semantics.unitOfMeasure: true  
      cast( '%' as farr_quantity_unit ) as RatioUnit,
      
      _CreatedByUser.UserDescription as CreatedByUserDescription,
      
      _ChangedByUser.UserDescription as LastChangedByUserDescription,
      
      FunctionalArea,
      BusinessArea,
      CostCenter,
      WBSElementExternalID,
      
      //use case to avoid the empty profitability segment to be displayed as '0' insteand of blank

      case PerfOblgn.ProfitabilitySegment_2
        when '0000000000' then ''
        else PerfOblgn.ProfitabilitySegment_2 
      end as ProfitabilitySegment,
      
      ControllingArea,
      PerfOblgn._RevenueAccountingContract.IsBusinessPurposeCompleted,
      
      /* association */
      _RevenueAccountingContract,
      _BusinessPartner,      
      _Customer,
      _AccountingPrinciple,
      _CompanyCode,
      
      _FunctionalArea,
      _BusinessArea,
      _Order,
      _SalesOrganization,
      _Segment,
      _WBSElement,
      _CurrentCostCenter,
      _CurrentProfitCenter
                
}
where PerfOblgn.PerfOblgnIsSoftDeleted = ''
  and PerfOblgn._RevenueAccountingContract.RAContractIsCreatedByContrMgr = 'X'
  and RAPerfOblgnDistinctType <> 'N'
  and PerfOblgn.RAPerfOblgnCategory <> 'B'  //billing element 

  and PerfOblgn.RAPerfOblgnCategory <> 'C'  //acquisition cost

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_RAPERFORMANCEOBLIGATION",
"I_REVENUEACCOUNTINGCONTRACT",
"I_REVENUEACCOUNTINGMAPPING",
"I_USER",
"P_RAHIGHLVLPERFOBLGNREVNAMT",
"P_RAPERFOBLGNISFROZEN"
],
"ASSOCIATED":
[
"I_ACCOUNTINGPRINCIPLE",
"I_BUSINESSAREA",
"I_BUSINESSPARTNER",
"I_COMPANYCODE",
"I_COSTCENTER",
"I_CUSTOMER",
"I_FUNCTIONALAREA",
"I_ORDER",
"I_PROFITCENTER",
"I_REVENUEACCOUNTINGCONTRACT",
"I_SALESORGANIZATION",
"I_SEGMENT",
"I_WBSELEMENTBYEXTERNALID",
"P_RAPERFOBLGNISFROZEN"
],
"BASE":
[
"I_RAPERFORMANCEOBLIGATION"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/