P_EvtBsdRevnRecgnProjectIssDet

DDL: P_EVTBSDREVNRECGNPROJECTISSDET SQL: PEBRRPRJISSDET Type: view CONSUMPTION

Event based rev. rec. project iss detail

P_EvtBsdRevnRecgnProjectIssDet is a Consumption CDS View that provides data about "Event based rev. rec. project iss detail" in SAP S/4HANA. It reads from 3 data sources (P_EvtBsdRevnRecProjectAppLog, I_CompanyCode, I_WBSElement) and exposes 22 fields with key field ApplicationLog. It has 1 association to related views.

Data Sources (3)

SourceAliasJoin Type
P_EvtBsdRevnRecProjectAppLog AppLog from
I_CompanyCode CompanyCode inner
I_WBSElement WBSElement inner

Associations (1)

CardinalityTargetAliasCondition
[0..1] I_EvtBsdRevnRecgnLifecycleObj LifecycleObj LifecycleObj.AccountingPrinciple = $projection.AccountingPrinciple and LifecycleObj.WBSElement = $projection.WBSElement and LifecycleObj.SDDocument is null and LifecycleObj.SDDocumentItem is null and LifecycleObj.ServiceDocumentType is null and LifecycleObj.ServiceDocument is null and LifecycleObj.ServiceDocumentItem is null

Annotations (11)

NameValueLevelField
AbapCatalog.sqlViewName PEBRRPRJISSDET view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AccessControl.authorizationCheck #NOT_REQUIRED view
ClientHandling.algorithm #SESSION_VARIABLE view
EndUserText.label Event based rev. rec. project iss detail view
ObjectModel.usageType.serviceQuality #D view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #CONSUMPTION view
VDM.private true view

Fields (22)

KeyFieldSource TableSource FieldDescription
KEY ApplicationLog P_EvtBsdRevnRecProjectAppLog ApplicationLog
WBSElement I_WBSElement WBSElement
WBSElementInternalID I_WBSElement WBSElementInternalID
AccountingPrinciple P_EvtBsdRevnRecProjectAppLog AccountingPrinciple
CompanyCode P_EvtBsdRevnRecProjectAppLog CompanyCode
DocumentDate I_WBSElement CreationDate
FiscalPeriod P_EvtBsdRevnRecProjectAppLog FiscalPeriod
FiscalYear P_EvtBsdRevnRecProjectAppLog FiscalYear
FiscalYearPeriod
UnbilledRevnInCoCodeCrcy UnbilledRevenue UnbilledRevnInCoCodeCrcy
AccruedRevenueAmtInCCCrcy AccrualRevenue AccruedRevenueAmtInCCCrcy
DeferredRevenueAmtInCCCrcy DeferredRevenue DeferredRevenueAmtInCCCrcy
AccruedCOGSAmtInCCCrcy AccrualCost AccruedCOGSAmtInCCCrcy
DeferredCOGSAmtInCCCrcy DeferredCost DeferredCOGSAmtInCCCrcy
CompanyCodeCurrency I_CompanyCode Currency
EvtBsdRevnRecgnJoinYrPerd LifecycleObj EvtBsdRevnRecgnJoinYrPerd
EvtBsdRevnRecgnBlkgEvalYrPerd LifecycleObj EvtBsdRevnRecgnBlkgEvalYrPerd
EvtBsdRevnRecgnClrgYrPeriod LifecycleObj EvtBsdRevnRecgnClrgYrPeriod
EvtBsdRevnRecgnDecoupleYrPerd LifecycleObj EvtBsdRevnRecgnDecoupleYrPerd
EvtBsdRevnRecgnLastEvalYrPerd LifecycleObj EvtBsdRevnRecgnLastEvalYrPerd
EvtBsdRevnRecgnLastEvalDate LifecycleObj EvtBsdRevnRecgnLastEvalDate
EvtBsdRevnRecgnLastChgYrPerd LifecycleObj EvtBsdRevnRecgnLastChgYrPerd
@AbapCatalog.sqlViewName: 'PEBRRPRJISSDET'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE

@EndUserText.label: 'Event based rev. rec. project iss detail'

@ObjectModel.usageType.serviceQuality: #D
@ObjectModel.usageType.sizeCategory: #L
@ObjectModel.usageType.dataClass: #MIXED

@VDM.viewType: #CONSUMPTION
@VDM.private: true

define view P_EvtBsdRevnRecgnProjectIssDet
  as select from           P_EvtBsdRevnRecProjectAppLog  as AppLog
    inner join             I_WBSElement                  as WBSElement      on WBSElement.WBSElementObject = AppLog.WBSElementObject

    inner join             I_CompanyCode                 as CompanyCode     on CompanyCode.CompanyCode = AppLog.CompanyCode

    left outer to one join P_UnbilledRevenueProjectAmt   as UnbilledRevenue on UnbilledRevenue.WBSElementInternalID = WBSElement.WBSElementInternalID
    left outer to one join P_AccrualRevenueProjectAmt    as AccrualRevenue  on AccrualRevenue.WBSElementInternalID = WBSElement.WBSElementInternalID
    left outer to one join P_DeferredRevenueProjectAmt   as DeferredRevenue on DeferredRevenue.WBSElementInternalID = WBSElement.WBSElementInternalID
    left outer to one join P_AccrualCostProjectAmt       as AccrualCost     on AccrualCost.WBSElementInternalID = WBSElement.WBSElementInternalID
    left outer to one join P_DeferredCostProjectOrderAmt as DeferredCost    on DeferredCost.WBSElementInternalID = WBSElement.WBSElementInternalID

  association [0..1] to I_EvtBsdRevnRecgnLifecycleObj as LifecycleObj on  LifecycleObj.AccountingPrinciple = $projection.AccountingPrinciple
                                                                      and LifecycleObj.WBSElement          = $projection.WBSElement
                                                                      and LifecycleObj.SDDocument          is null
                                                                      and LifecycleObj.SDDocumentItem      is null
                                                                      and LifecycleObj.ServiceDocumentType is null
                                                                      and LifecycleObj.ServiceDocument     is null
                                                                      and LifecycleObj.ServiceDocumentItem is null
{
  key    AppLog.ApplicationLog,
         WBSElement.WBSElement,
         WBSElement.WBSElementInternalID,
         AppLog.AccountingPrinciple,
         AppLog.CompanyCode,

         // WBSElement.ResponsiblePerson,

         // WBSElement.ResponsiblePersonName,


         cast(  case
                  when WBSElement.ResponsiblePerson = '00000000' or WBSElement.ResponsiblePerson is null
                     then WBSElement._EntProjectResponsiblePerson.PersonWorkAgreement
                   else
                     WBSElement.ResponsiblePerson
                 end as ps_s4_vernr preserving type )   as ResponsiblePerson,

         cast(  case
                  when WBSElement.ResponsiblePerson = '00000000' or WBSElement.ResponsiblePerson is null
                     then WBSElement._EntProjectResponsiblePerson._WorkforcePerson.PersonFullName
                   else
                     WBSElement.ResponsiblePersonName
                 end as ad_namtext preserving type )    as ResponsiblePersonName,

         WBSElement.CreationDate                        as DocumentDate,
         AppLog.FiscalPeriod,
         AppLog.FiscalYear,
         concat(AppLog.FiscalYear, AppLog.FiscalPeriod) as FiscalYearPeriod,

         UnbilledRevenue.UnbilledRevnInCoCodeCrcy,
         AccrualRevenue.AccruedRevenueAmtInCCCrcy,
         DeferredRevenue.DeferredRevenueAmtInCCCrcy,
         AccrualCost.AccruedCOGSAmtInCCCrcy,
         DeferredCost.DeferredCOGSAmtInCCCrcy,

         CompanyCode.Currency                           as CompanyCodeCurrency,

         LifecycleObj.EvtBsdRevnRecgnJoinYrPerd,
         LifecycleObj.EvtBsdRevnRecgnBlkgEvalYrPerd,
         LifecycleObj.EvtBsdRevnRecgnClrgYrPeriod,
         LifecycleObj.EvtBsdRevnRecgnDecoupleYrPerd,
         LifecycleObj.EvtBsdRevnRecgnLastEvalYrPerd,
         LifecycleObj.EvtBsdRevnRecgnLastEvalDate,
         LifecycleObj.EvtBsdRevnRecgnLastChgYrPerd
}
where
      AppLog.Prefix                   = 'PR'
  and WBSElement.WBSElementInternalID is not null