P_EngmntProjUnbilledRevData

DDL: P_ENGMNTPROJUNBILLEDREVDATA Type: view COMPOSITE Package: CPD_CDS

Engagement Project Unbilled Revenue Data

P_EngmntProjUnbilledRevData is a Composite CDS View that provides data about "Engagement Project Unbilled Revenue Data" in SAP S/4HANA. It reads from 3 data sources (I_EngmntProjAssgmtToSessionUsr, P_GLAcctLineItemSemTagProjects, I_EvtBsdRevnRecgnEvalScp) and exposes 14 fields. Part of development package CPD_CDS.

Data Sources (3)

Annotations (12)

NameValueLevelField
AbapCatalog.sqlViewName PENGPROJUNBLREVD view
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
VDM.viewType #COMPOSITE view
VDM.private true view
VDM.lifecycle.contract.type #NONE view
AccessControl.authorizationCheck #NOT_REQUIRED view
AccessControl.personalData.blocking #NOT_REQUIRED view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #D view
ClientHandling.algorithm #SESSION_VARIABLE view

Fields (14)

KeyFieldSource TableSource FieldDescription
EngagementProject I_EngmntProjAssgmtToSessionUsr EngagementProject
SalesOrder P_GLAcctLineItemSemTagProjects SalesOrder
ProjectCurrency I_EngmntProjAssgmtToSessionUsr Currency
Currency I_EngmntProjAssgmtToSessionUsr Currency
PostingDate P_GLAcctLineItemSemTagProjects PostingDate
SalesOrderItem P_GLAcctLineItemSemTagProjects SalesOrderItem
FiscalYear P_GLAcctLineItemSemTagProjects FiscalYear
FiscalYearPeriod
UnbilledRevnInCoCodeCrcy P_GLAcctLineItemSemTagProjects AmountInCompanyCodeCurrency
Ledger P_GLAcctLineItemSemTagProjects Ledger
GLAccountHierarchy P_GLAcctLineItemSemTagProjects GLAccountHierarchy
IsMyProject I_EngmntProjAssgmtToSessionUsr IsMyProject
ProjectManagerExternalID I_EngmntProjAssgmtToSessionUsr ProjectManagerExternalID
ProjectManagerName I_EngmntProjAssgmtToSessionUsr ProjectManagerName
@AbapCatalog: {
  sqlViewName: 'PENGPROJUNBLREVD',
  compiler.compareFilter: true,
  preserveKey: true
}
@VDM: {
  viewType: #COMPOSITE,
  private: true,
  lifecycle.contract.type: #NONE
}
@AccessControl: {
  authorizationCheck: #NOT_REQUIRED,
  personalData.blocking: #NOT_REQUIRED
}
@ObjectModel.usageType: {
  sizeCategory: #XL,
  dataClass: #MIXED,
  serviceQuality: #D
}
@ClientHandling.algorithm: #SESSION_VARIABLE
//@EndUserText.label: 'Engagement Project Unbilled Revenue Data'

define view P_EngmntProjUnbilledRevData
  //  as select from P_EngmntProjectForAuthzdUser      as A

  // Super User Development replaced P_EngmntProjectForAuthzdUser by I_EngmntProjAssgmtToSessionUsr to avoid where clause

  as select from I_EngmntProjAssgmtToSessionUsr as A
    inner join   P_GLAcctLineItemSemTagProjects as B on  A.EngagementProject              = B.Project
                                                     and A.EngmntProjectHeaderCompanyCode = B.CompanyCode
                                                     and A.ControllingArea                = B.ControllingArea
    inner join   I_EvtBsdRevnRecgnEvalScp       as C on  B.Ledger                         = C.Ledger
                                                     and A.EngmntProjectHeaderCompanyCode = C.CompanyCode
                                                     and B.GLAccountHierarchy             = C.GLAccountHierarchy
{

  A.EngagementProject,
  B.SalesOrder,
  A.Currency                                                      as ProjectCurrency,
  A.Currency,

  case
    when A.Currency = B.CompanyCodeCurrency
    then
    AmountInCompanyCodeCurrency
    when A.Currency = B.ControllingObjectCurrency
    then
    AmountInObjectCurrency
    when A.Currency = B.GlobalCurrency
    then
    AmountInGlobalCurrency
    else currency_conversion(   amount           => AmountInCompanyCodeCurrency,
                              source_currency    => CompanyCodeCurrency,
                              target_currency    => A.Currency,
                              exchange_rate_date => PostingDate,
                              exchange_rate_type => 'M',
                              error_handling     => 'SET_TO_NULL' )
  end                                                             as UnbilldRevnAmountInProjCrcy,

  B.PostingDate,
  B.SalesOrderItem,
  B.FiscalYear,
  //B.FiscalPeriod,

  concat(B.FiscalYear, concat('0', substring (PostingDate,5,2) )) as FiscalYearPeriod,
  B.AmountInCompanyCodeCurrency                                   as UnbilledRevnInCoCodeCrcy,
  B.Ledger,
  B.GLAccountHierarchy,
  A.IsMyProject,
  A.ProjectManagerExternalID,
  A.ProjectManagerName
}