R_ProjectBillingElementTP

DDL: R_PROJECTBILLINGELEMENTTP SQL: RPRJBLGELMTP Type: view_entity TRANSACTIONAL Package: VDM_PROJECTBILLINGELEMENT_TP

Details of Billing Element

R_ProjectBillingElementTP is a Transactional CDS View that provides data about "Details of Billing Element" in SAP S/4HANA. It reads from 1 data source (I_ProjectBillingElement) and exposes 60 fields with key field ProjectBillingElementUUID. It has 23 associations to related views. Part of development package VDM_PROJECTBILLINGELEMENT_TP.

Data Sources (1)

SourceAliasJoin Type
I_ProjectBillingElement ProjectBillingElement from

Associations (23)

CardinalityTargetAliasCondition
[1..1] I_EnterpriseProjectElement _EnterpriseProjectElement $projection.ProjectElementUUID = _EnterpriseProjectElement.ProjectElementUUID
[1..1] I_EnterpriseProject _EnterpriseProject $projection.ProjectUUID = _EnterpriseProject.ProjectUUID
[1..1] I_SalesDocumentItem _SalesOrderItem $projection.SalesDocument = _SalesOrderItem.SalesDocument and $projection.SalesDocumentItem = _SalesOrderItem.SalesDocumentItem
[1..1] I_SalesDocument _SalesOrder $projection.SalesDocument = _SalesOrder.SalesDocument
[0..1] I_SDBillingPlan _SDBillingPlan $projection.BillingPlan = _SDBillingPlan.BillingPlan
[0..1] I_MyProjectBillingElements _MyProjectBillingElements $projection.ProjectBillingElementUUID = _MyProjectBillingElements.ProjectBillingElementUUID --
[1..1] P_ProjBillgElmntSalesDets2 _ProjBillgElmntSalesDets $projection.ProjectBillingElementUUID = _ProjBillgElmntSalesDets.ProjectBillingElementUUID
[1..1] P_ProjectBillingElmntDueDate3 _DueBillingDate $projection.ProjectBillingElementUUID = _DueBillingDate.ProjectBillingElementUUID
[0..1] I_TmpProjectBillingRequest _TmpProjectBillingRequest $projection.ProjectBillingElementUUID = _TmpProjectBillingRequest.ProjectBillingElementUUID
[0..1] I_PrjBlgElmOverduePrepayment _PrjBlgElmOverduePrepayment $projection.ProjectBillingElementUUID = _PrjBlgElmOverduePrepayment.ProjectBillingElementUUID
[0..1] I_PrjBlgElmPrepaymentAmount _PrjBlgElmPrepaymentAmount $projection.ProjectBillingElementUUID = _PrjBlgElmPrepaymentAmount.ProjectBillingElementUUID
[0..1] I_PrjBlgElmBllbleRevnAmt _PrjBlgElmBllbleRevnAmt $projection.ProjectBillingElementUUID = _PrjBlgElmBllbleRevnAmt.ProjectBillingElementUUID -- POC Sort / Filter on ToBill amount
[0..1] I_MyPrjBillgElmntBllbleRevnAmt _MyPrjBillgElmntBllbleRevnAmt $projection.ProjectBillingElementUUID = _MyPrjBillgElmntBllbleRevnAmt.ProjectBillingElementUUID -- Moved to C_ProjectBillingElementTP -- can be moved to C_
[0..*] R_ProjectBillingRequestItemTP _ProjectBillingRequestItemTP $projection.ProjectBillingElementUUID = _ProjectBillingRequestItemTP.ProjectBillingElementUUID
[1..1] I_ProfitCenterText _ProfitCenterName $projection.WBSElementProfitCenter = _ProfitCenterName.ProfitCenter and $projection.ControllingArea = _ProfitCenterName.ControllingArea and _ProfitCenterName.ValidityEndDate >= $session.system_date and _ProfitCenterName.ValidityStartDate <= $session.system_date and _ProfitCenterName.Language = $session.system_language
[1..1] I_Customer _Customer $projection.Customer = _Customer.Customer
[1..1] I_Customer _ShipToParty $projection.ShipToParty = _ShipToParty.Customer
[1..1] I_Customer _BillToParty $projection.BillToParty = _BillToParty.Customer
[1..1] I_Customer _PayerParty $projection.PayerParty = _PayerParty.Customer -- Moved from I_ to C_
[0..1] I_EngagementProjectSrvcOrgText _ServiceOrganizationText _ServiceOrganizationText.EngagementProjectServiceOrg = $projection.EngagementProjectServiceOrg and _ServiceOrganizationText.Language = $session.system_language
[0..1] E_ProjectBillingElement _Extension $projection.ProjectBillingElementUUID = _Extension.ProjectBillingElementUUID
[0..*] R_ProjectBillingElementEntryTP _ProjectBillingElementEntry
[0..1] R_ProjBillgElmObjectLinkTP _ProjBillgElmObjectLink

Annotations (9)

NameValueLevelField
VDM.viewType #TRANSACTIONAL view
VDM.lifecycle.contract.type #SAP_INTERNAL_API view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #NOT_REQUIRED view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.sapObjectNodeType.name ProjectBillingElement view
EndUserText.label Details of Billing Element view

Fields (60)

KeyFieldSource TableSource FieldDescription
KEY ProjectBillingElementUUID I_ProjectBillingElement ProjectBillingElementUUID
BillingWBSElementInternalID I_ProjectBillingElement BillingWBSElementInternalID
DocumentCurrency I_ProjectBillingElement DocumentCurrency
BilledRevenueAmtInDocCrcy I_ProjectBillingElement BilledRevenueAmtInDocCrcy
WrittenOffRevenueAmtInDocCrcy I_ProjectBillingElement WrittenOffRevenueAmtInDocCrcy
ProjBillingProfile I_ProjectBillingElement ProjBillingProfile
ProjectBillingCategory I_ProjectBillingElement ProjectBillingCategory
ProjBillgElmntCreatedByUser I_ProjectBillingElement ProjBillgElmntCreatedByUser
ProjBillgElmntCreatedAtDteTme I_ProjectBillingElement ProjBillgElmntCreatedAtDteTme
ProjBillgElmntLastChgdByUser I_ProjectBillingElement ProjBillgElmntLastChgdByUser
ProjBillgElmntLastChgdAtDteTme I_ProjectBillingElement ProjBillgElmntLastChgdAtDteTme
SalesDocument I_ProjectBillingElement SalesDocument
SalesDocumentItem I_ProjectBillingElement SalesDocumentItem
ProjBillgSlsOrdBillingPlan I_ProjectBillingElement BillingPlan
ProjectUUID I_ProjectBillingElement ProjectUUID
ProjectElementUUID I_ProjectBillingElement ProjectElementUUID
ProjectInternalID
WBSElementProfitCenter _EnterpriseProjectElement ProfitCenter
WBSElementExternalID
ControllingArea _EnterpriseProject ControllingArea
Project _EnterpriseProject Project
ProfitCenter _EnterpriseProject ProfitCenter
ProcessingStatus _EnterpriseProject ProcessingStatus
ProjectStartDate _EnterpriseProject ProjectStartDate
ProjectEndDate _EnterpriseProject ProjectEndDate
ProjectBillingRequest _TmpProjectBillingRequest ProjectBillingRequest
ProjectBillingRequestUUID _TmpProjectBillingRequest ProjectBillingRequestUUID
BillingPlan I_ProjectBillingElement BillingPlan
SalesOrder I_ProjectBillingElement SalesDocument
SalesOrderItem I_ProjectBillingElement SalesDocumentItem
TransactionCurrency _SalesOrderItem TransactionCurrency
SoldToPartyasCustomer
ShipToParty _SalesOrderItem ShipToParty
BillToParty _SalesOrderItem BillToParty
PayerParty _SalesOrderItem PayerParty
BillingBlockStatus _SalesOrderItem BillingBlockStatus
BillingBlockReason _SalesOrderItem ItemBillingBlockReason
SalesDocumentRjcnReason _SalesOrderItem SalesDocumentRjcnReason
OverallBillingBlockStatus _SalesOrder OverallBillingBlockStatus
HeaderBillingBlockReason _SalesOrder HeaderBillingBlockReason
CappedNetAmount _SalesOrderItem CappedNetAmount
DueBillingDate _DueBillingDate DueBillingDate
UserID _MyProjectBillingElements UserID
BillableRevenueAmtInDocCrcy _PrjBlgElmBllbleRevnAmt BillableRevenueAmtInDocCrcy
PrjBlgElmPlndPrepaymentIsOvrd _PrjBlgElmOverduePrepayment PrjBlgElmPlndPrepaymentIsOvrd
PlndPrepaymentAmtInProjCrcy _PrjBlgElmPrepaymentAmount PlndPrepaymentAmtInProjCrcy
_ProfitCenterName _ProfitCenterName
_SalesOrderItem _SalesOrderItem
_SalesOrder _SalesOrder
_ProjectBillingElementEntry _ProjectBillingElementEntry
_WBSElement I_ProjectBillingElement _WBSElement
_ProjectBillingRequestItemTP _ProjectBillingRequestItemTP
_Customer _Customer
_ShipToParty _ShipToParty
_PayerParty _PayerParty
_BillToParty _BillToParty
_EnterpriseProjectElement _EnterpriseProjectElement
_PrjBlgElmPrepaymentAmount _PrjBlgElmPrepaymentAmount
_PrjBlgElmOverduePrepayment _PrjBlgElmOverduePrepayment
_ProjBillgElmObjectLink _ProjBillgElmObjectLink
//@AbapCatalog.sqlViewName: 'RPRJBLGELMTP'

//@ClientHandling.algorithm: #SESSION_VARIABLE

//@ClientHandling.type: #CLIENT_DEPENDENT

@VDM.viewType: #TRANSACTIONAL
@VDM.lifecycle.contract.type: #SAP_INTERNAL_API
//@AbapCatalog.compiler.compareFilter: true

//@AbapCatalog.preserveKey: true

@AccessControl.authorizationCheck: #CHECK
@AccessControl.privilegedAssociations: ['_PrjBlgElmPrepaymentAmount', '_PrjBlgElmOverduePrepayment' ]

@AccessControl.personalData.blocking: #NOT_REQUIRED

@ObjectModel.usageType: {
    sizeCategory: #XL,
    dataClass:  #TRANSACTIONAL,
    serviceQuality: #C
 }

@ObjectModel.sapObjectNodeType.name: 'ProjectBillingElement'
@Consumption.dbHints: ['USE_HEX_PLAN','NO_SUBPLAN_SHARING']
@EndUserText.label: 'Details of Billing Element'
define root view entity R_ProjectBillingElementTP
  as select from I_ProjectBillingElement as ProjectBillingElement

  association [1..1] to I_EnterpriseProjectElement     as _EnterpriseProjectElement     on  $projection.ProjectElementUUID = _EnterpriseProjectElement.ProjectElementUUID
  association [1..1] to I_EnterpriseProject            as _EnterpriseProject            on  $projection.ProjectUUID = _EnterpriseProject.ProjectUUID
  association [1..1] to I_SalesDocumentItem            as _SalesOrderItem               on  $projection.SalesDocument     = _SalesOrderItem.SalesDocument
                                                                                        and $projection.SalesDocumentItem = _SalesOrderItem.SalesDocumentItem
  association [1..1] to I_SalesDocument                as _SalesOrder                   on  $projection.SalesDocument = _SalesOrder.SalesDocument
  association [0..1] to I_SDBillingPlan                as _SDBillingPlan                on  $projection.BillingPlan = _SDBillingPlan.BillingPlan
  association [0..1] to I_MyProjectBillingElements     as _MyProjectBillingElements     on  $projection.ProjectBillingElementUUID = _MyProjectBillingElements.ProjectBillingElementUUID
  --association [1..1] to P_ProjBillgElmntSalesDets2     as _ProjBillgElmntSalesDets     on  $projection.ProjectBillingElementUUID = _ProjBillgElmntSalesDets.ProjectBillingElementUUID
  association [1..1] to P_ProjectBillingElmntDueDate3  as _DueBillingDate               on  $projection.ProjectBillingElementUUID = _DueBillingDate.ProjectBillingElementUUID

  association [0..1] to I_TmpProjectBillingRequest     as _TmpProjectBillingRequest     on  $projection.ProjectBillingElementUUID = _TmpProjectBillingRequest.ProjectBillingElementUUID

  association [0..1] to I_PrjBlgElmOverduePrepayment   as _PrjBlgElmOverduePrepayment   on  $projection.ProjectBillingElementUUID = _PrjBlgElmOverduePrepayment.ProjectBillingElementUUID
  association [0..1] to I_PrjBlgElmPrepaymentAmount    as _PrjBlgElmPrepaymentAmount    on  $projection.ProjectBillingElementUUID = _PrjBlgElmPrepaymentAmount.ProjectBillingElementUUID
  association [0..1] to I_PrjBlgElmBllbleRevnAmt       as _PrjBlgElmBllbleRevnAmt       on  $projection.ProjectBillingElementUUID = _PrjBlgElmBllbleRevnAmt.ProjectBillingElementUUID
  -- POC Sort / Filter on ToBill amount
  association [0..1] to I_MyPrjBillgElmntBllbleRevnAmt as _MyPrjBillgElmntBllbleRevnAmt on  $projection.ProjectBillingElementUUID = _MyPrjBillgElmntBllbleRevnAmt.ProjectBillingElementUUID

  -- Moved to C_ProjectBillingElementTP
  // association [0..*] to I_ProjectBillingDocDetails     as _ProjectBillingDocDetails    on  $projection.BillingWBSElementInternalID = _ProjectBillingDocDetails.WBSElementInternalID


  -- can be moved to C_
  association [0..*] to R_ProjectBillingRequestItemTP  as _ProjectBillingRequestItemTP  on  $projection.ProjectBillingElementUUID = _ProjectBillingRequestItemTP.ProjectBillingElementUUID

  association [1..1] to I_ProfitCenterText             as _ProfitCenterName             on  $projection.WBSElementProfitCenter  = _ProfitCenterName.ProfitCenter
                                                                                        and $projection.ControllingArea         = _ProfitCenterName.ControllingArea
                                                                                        and _ProfitCenterName.ValidityEndDate   >= $session.system_date
                                                                                        and _ProfitCenterName.ValidityStartDate <= $session.system_date
                                                                                        and _ProfitCenterName.Language          = $session.system_language
  association [1..1] to I_Customer                     as _Customer                     on  $projection.Customer = _Customer.Customer
  association [1..1] to I_Customer                     as _ShipToParty                  on  $projection.ShipToParty = _ShipToParty.Customer
  association [1..1] to I_Customer                     as _BillToParty                  on  $projection.BillToParty = _BillToParty.Customer
  association [1..1] to I_Customer                     as _PayerParty                   on  $projection.PayerParty = _PayerParty.Customer
  -- Moved from I_ to C_
  //association [0..*] to I_PrjBlgElmEntrForPrepayment   as _PrjBlgElmEntrForPrepayment  on  $projection.ProjectBillingElementUUID = _PrjBlgElmEntrForPrepayment.ProjectBillingElementUUID


  association [0..1] to I_EngagementProjectSrvcOrgText as _ServiceOrganizationText      on  _ServiceOrganizationText.EngagementProjectServiceOrg = $projection.EngagementProjectServiceOrg
                                                                                        and _ServiceOrganizationText.Language                    = $session.system_language

  //Extensibility

  association [0..1] to E_ProjectBillingElement        as _Extension                    on  $projection.ProjectBillingElementUUID = _Extension.ProjectBillingElementUUID

  composition [0..*] of R_ProjectBillingElementEntryTP as _ProjectBillingElementEntry
  composition [0..1] of R_ProjBillgElmObjectLinkTP     as _ProjBillgElmObjectLink
{
  key ProjectBillingElement.ProjectBillingElementUUID,
      ProjectBillingElement.BillingWBSElementInternalID,
      ProjectBillingElement.DocumentCurrency,
      ProjectBillingElement.BilledRevenueAmtInDocCrcy,
      ProjectBillingElement.WrittenOffRevenueAmtInDocCrcy,
      ProjectBillingElement.ProjBillingProfile                                                 as ProjBillingProfile,
      ProjectBillingElement.ProjectBillingCategory                                             as ProjectBillingCategory,
      // Admin Fields data

      @Semantics.user.createdBy: true
      ProjectBillingElement.ProjBillgElmntCreatedByUser,
      @Semantics.systemDateTime.createdAt: true
      ProjectBillingElement.ProjBillgElmntCreatedAtDteTme,
      @Semantics.user.lastChangedBy: true
      ProjectBillingElement.ProjBillgElmntLastChgdByUser,
      @Semantics.systemDateTime.lastChangedAt: true
      ProjectBillingElement.ProjBillgElmntLastChgdAtDteTme,

      //      Introduced in 2408, with SDM for performance improvements

      ProjectBillingElement.SalesDocument                                                      as SalesDocument,
      ProjectBillingElement.SalesDocumentItem                                                  as SalesDocumentItem,
      ProjectBillingElement.BillingPlan                                                        as ProjBillgSlsOrdBillingPlan,
      //      End


      ProjectBillingElement.ProjectUUID                                                        as ProjectUUID,
      ProjectBillingElement.ProjectElementUUID                                                 as ProjectElementUUID,

      cast ( _EnterpriseProjectElement.ProjectInternalID as ps_s4_proj_pspnr preserving type ) as ProjectInternalID,

      // The below field is used in I_ProfitCenterText and hence cannot be moved up

      _EnterpriseProjectElement.ProfitCenter                                                   as WBSElementProfitCenter,
      cast( _EnterpriseProjectElement.ProjectElement as ps_posid_edit preserving type )        as WBSElementExternalID,
      _EnterpriseProject.ControllingArea                                                       as ControllingArea,
      _EnterpriseProject.Project                                                               as Project,
      _EnterpriseProject.ProfitCenter,
      _EnterpriseProject.ProcessingStatus,
      _EnterpriseProject.ProjectStartDate,
      _EnterpriseProject.ProjectEndDate,
      -- { adding this due to bad performance on C-view
      _EnterpriseProject.ProjectDescription                                                    as ProjectDescription,
      cast (_EnterpriseProject.EnterpriseProjectServiceOrg as crmt_service_org_resp )          as ServiceOrganizationUnit,
      _EnterpriseProject.ResponsibleCostCenter                                                 as ResponsibleCostCenter,
      -- }
      _EnterpriseProject.EnterpriseProjectServiceOrg                                           as EngagementProjectServiceOrg,


      _TmpProjectBillingRequest.ProjectBillingRequest,
      _TmpProjectBillingRequest.ProjectBillingRequestUUID,

      ProjectBillingElement.BillingPlan,
      ProjectBillingElement.SalesDocument                                                      as SalesOrder,     // 2208 | Partner Function changes

      ProjectBillingElement.SalesDocumentItem                                                  as SalesOrderItem, // 2208 | Partner Function changes

      _SalesOrderItem.TransactionCurrency                                                      as TransactionCurrency,
      -- Is needed is C-view for on-condition in association to the Customer contact card
      _SalesOrderItem.SoldToParty                                                              as Customer,
      _SalesOrderItem.ShipToParty                                                              as ShipToParty,
      _SalesOrderItem.BillToParty                                                              as BillToParty,
      _SalesOrderItem.PayerParty                                                               as PayerParty,

      -- used in C-view in where clause
      _SalesOrderItem.SDDocumentRejectionStatus                                                as SDDocumentRejectionStatus,
      _SalesOrderItem.BillingBlockStatus,
      _SalesOrderItem.ItemBillingBlockReason                                                   as BillingBlockReason,
      _SalesOrderItem.SalesDocumentRjcnReason                                                  as SalesDocumentRjcnReason,
      //      _ProjBillgElmntSalesDets._SalesOrder.TotalBlockStatus,

      _SalesOrder.OverallBillingBlockStatus,
      _SalesOrder.HeaderBillingBlockReason                                                     as HeaderBillingBlockReason,
      @Semantics.amount.currencyCode: 'DocumentCurrency'
      _SalesOrderItem.CappedNetAmount                                                          as CappedNetAmount,

      //POC SortToBill

      _DueBillingDate.DueBillingDate,
      _MyProjectBillingElements.UserID,
      @Semantics.amount.currencyCode: 'DocumentCurrency'
      _PrjBlgElmBllbleRevnAmt.BillableRevenueAmtInDocCrcy,
      //POC SortToBill


      _PrjBlgElmOverduePrepayment.PrjBlgElmPlndPrepaymentIsOvrd,
      @Semantics.amount.currencyCode: 'DocumentCurrency'
      _PrjBlgElmPrepaymentAmount.PlndPrepaymentAmtInProjCrcy,

      //Associations

      -- 2408 to C_ProjectBillingElementTP - UI Adaptation changes
      //_ProjectBillingDocDetails,

      _ServiceOrganizationText,
      _ProfitCenterName,

      -- 2408 to C_ProjectBillingElementTP - UI Adaptation changes
      //_PrjBlgElmEntrForPrepayment,

      _SDBillingPlan                                                                           as _SalesDocItemBillPlan,
      _SalesOrderItem,
      _SalesOrder,
      _ProjectBillingElementEntry,
      ProjectBillingElement._WBSElement,
      _ProjectBillingRequestItemTP,
      _Customer,
      _ShipToParty,
      _PayerParty,
      _BillToParty,
      _EnterpriseProjectElement,
      -- POC Sort / Filter on ToBill amount
      _MyPrjBillgElmntBllbleRevnAmt,
      _PrjBlgElmPrepaymentAmount,
      _PrjBlgElmOverduePrepayment,
      _ProjBillgElmObjectLink
      //ProjectBillingElement._ProjBillgElmObjectLink as _ProjBillgElmObjLink

      //ProjectBillingElement.SalesDocument,

      //ProjectBillingElement._SalesDocument

}