P_EvtBsdRevnRecProjectIssue

DDL: P_EVTBSDREVNRECPROJECTISSUE SQL: PEBRRPROJECTRSLT Type: view CONSUMPTION

Event based rev. rec. project issue

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

Data Sources (5)

SourceAliasJoin Type
P_EvtBsdRevnRecProjectAppLog AppLog from
I_CompanyCode CompanyCode inner
I_EvtBasedRevnRecgnEvalArea EvalAreaUse inner
P_Trrmonaccprin Trrmonaccprin inner
I_WBSElement WBSElement inner

Associations (1)

CardinalityTargetAliasCondition
[0..1] C_EvtBsdRevnRecgnProjectIssDet _ProjectIssDetail _ProjectIssDetail.ApplicationLog = $projection.ApplicationLog

Annotations (11)

NameValueLevelField
AbapCatalog.sqlViewName PEBRRPROJECTRSLT 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 issue 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 (25)

KeyFieldSource TableSource FieldDescription
KEY ApplicationLog P_EvtBsdRevnRecProjectAppLog ApplicationLog
WBSElement I_WBSElement WBSElement
ProjectInternalID I_WBSElement ProjectInternalID
Project I_WBSElement Project
WBSElementInternalID I_WBSElement WBSElementInternalID
FiscalPeriod P_EvtBsdRevnRecProjectAppLog FiscalPeriod
FiscalYear P_EvtBsdRevnRecProjectAppLog FiscalYear
ApplicationLogHandle P_EvtBsdRevnRecProjectAppLog ApplicationLogHandle
NumberOfOpenErrorMessages P_EvtBsdRevnRecProjectAppLog NumberOfOpenErrorMessages
ToFiscalYearPeriod
FiscalYearPeriod
ProfitCenter I_WBSElement ProfitCenter
Ledger I_EvtBasedRevnRecgnEvalArea Ledger
AccountingPrinciple P_Trrmonaccprin acc_principle
CompanyCode I_CompanyCode CompanyCode
CompanyCodeName I_CompanyCode CompanyCodeName
FiscalYearVariant I_CompanyCode FiscalYearVariant
Prefix P_EvtBsdRevnRecProjectAppLog Prefix
ResultAnalysisInternalID I_WBSElement ResultAnalysisInternalID
ExternalNumber P_EvtBsdRevnRecProjectAppLog ExternalNumber
WBSElementObject P_EvtBsdRevnRecProjectAppLog WBSElementObject
_ProjectIssDetail _ProjectIssDetail
_EntProjectResponsiblePerson I_WBSElement _EntProjectResponsiblePerson
_ResponsiblePerson I_WBSElement _ResponsiblePerson
WBSResponsiblePerson I_WBSElement ResponsiblePerson
@AbapCatalog.sqlViewName: 'PEBRRPROJECTRSLT'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@ClientHandling.algorithm: #SESSION_VARIABLE

@EndUserText.label: 'Event based rev. rec. project issue'

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

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

define view P_EvtBsdRevnRecProjectIssue
  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

  //AppLog.AccountingPrinciple contains EvaluationArea, in future will the field Applog.AccountingPrinciple contain Ledger only

    inner join             I_EvtBasedRevnRecgnEvalArea  as EvalAreaUse         on  EvalAreaUse.CompanyCode        = AppLog.CompanyCode
                                                                               and EvalAreaUse.EvtBsdRevnEvalArea = AppLog.AccountingPrinciple

    inner join             P_Trrmonaccprin              as Trrmonaccprin       on  Trrmonaccprin.rldnr = EvalAreaUse.Ledger
                                                                               and Trrmonaccprin.bukrs = AppLog.CompanyCode
                                                                               and Trrmonaccprin.abgsl = WBSElement.ResultAnalysisInternalID


    left outer to one join I_PersonWorkAgreement_1      as PersonWorkAgreement on PersonWorkAgreement.PersonWorkAgreement = WBSElement.ResponsiblePerson

  association [0..1] to C_EvtBsdRevnRecgnProjectIssDet as _ProjectIssDetail on _ProjectIssDetail.ApplicationLog = $projection.ApplicationLog

{
  key    AppLog.ApplicationLog,
         WBSElement.WBSElement,           //prps.posid

         WBSElement.ProjectInternalID,    //prps.psphi

         WBSElement.Project,              //proj.pspid

         WBSElement.WBSElementInternalID, //prps.pspnr


         AppLog.FiscalPeriod,
         AppLog.FiscalYear,
         AppLog.ApplicationLogHandle,
         AppLog.NumberOfOpenErrorMessages,
         concat(AppLog.FiscalPeriod, concat('.', AppLog.FiscalYear) ) as ToFiscalYearPeriod,
         concat(AppLog.FiscalYear, AppLog.FiscalPeriod)               as FiscalYearPeriod,
         WBSElement.ProfitCenter,

         EvalAreaUse.Ledger                                           as Ledger,
         Trrmonaccprin.acc_principle                                  as AccountingPrinciple,

         CompanyCode.CompanyCode,
         CompanyCode.CompanyCodeName,
         CompanyCode.FiscalYearVariant,
         AppLog.Prefix,
         WBSElement.ResultAnalysisInternalID,
         AppLog.ExternalNumber,
         AppLog.WBSElementObject, //balhdr.extnumber.objnr

         
         
         //WBSElement.ResponsiblePerson,

         //PersonWorkAgreement.PersonFullName,

         
         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 PersonFullName,

         _ProjectIssDetail,
         
         //for access control

         WBSElement._EntProjectResponsiblePerson,
         WBSElement._ResponsiblePerson,
         WBSElement.ResponsiblePerson as WBSResponsiblePerson
}
where
      AppLog.Prefix                   = 'PR'
  and WBSElement.WBSElementInternalID is not null
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_COMPANYCODE",
"I_ENTPROJECTRESPONSIBLEPERSON",
"I_EVTBASEDREVNRECGNEVALAREA",
"I_PERSONWORKAGREEMENT_1",
"I_WBSELEMENT",
"I_WORKFORCEPERSON",
"P_EVTBSDREVNRECPROJECTAPPLOG",
"P_TRRMONACCPRIN"
],
"ASSOCIATED":
[
"C_EVTBSDREVNRECGNPROJECTISSDET",
"I_ENTPROJECTRESPONSIBLEPERSON",
"I_PROJECTRESPONSIBLEPERSON"
],
"BASE":
[
"I_WBSELEMENT"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/