R_ProjectBillingRequestTP

DDL: R_PROJECTBILLINGREQUESTTP SQL: RPROJBILLREQ Type: view_entity TRANSACTIONAL

Details of Project Billing Request

R_ProjectBillingRequestTP is a Transactional CDS View that provides data about "Details of Project Billing Request" in SAP S/4HANA. It reads from 1 data source (I_ProjectBillingRequest) and exposes 31 fields with key field ProjectBillingRequestUUID. It has 6 associations to related views.

Data Sources (1)

SourceAliasJoin Type
I_ProjectBillingRequest ProjectBillingRequest from

Associations (6)

CardinalityTargetAliasCondition
[1..1] I_SalesOrder _SalesOrder $projection.SalesDocument = _SalesOrder.SalesOrder
[1..1] I_UserContactCard _UserContactCard $projection.ProjBillgReqCreatedBy = _UserContactCard.ContactCardID
[0..1] P_MyProjectBillingRequests _MyProjectBillingRequests $projection.SalesDocument = _MyProjectBillingRequests.SalesOrder and _MyProjectBillingRequests.UserID = $session.user
[1..1] I_CustomerToBusinessPartner _CustomerToBusinessPartner $projection.customeruuid = _CustomerToBusinessPartner.BusinessPartnerUUID
[0..*] R_ProjectBillingRequestItemTP _ProjectBillingReqItemTP
[0..1] R_ProjBillgReqObjectLinkTP _ProjBillgReqObjectLink

Annotations (9)

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

Fields (31)

KeyFieldSource TableSource FieldDescription
KEY ProjectBillingRequestUUID I_ProjectBillingRequest ProjectBillingRequestUUID
ProjectBillingRequest I_ProjectBillingRequest ProjectBillingRequest
ProjectInternalID ProjectInternalID
ProjectBillingRequestStatus I_ProjectBillingRequest ProjectBillingRequestStatus
ProjBillgReqApprovalStatus I_ProjectBillingRequest ProjBillgReqApprovalStatus
ProjectBillingRequestType I_ProjectBillingRequest ProjectBillingRequestType
SalesDocument I_ProjectBillingRequest SalesDocument
ProjectBillingCategory I_ProjectBillingRequest ProjectBillingCategory
ProjBillgReqLastChgdBy I_ProjectBillingRequest ProjBillgReqLastChgdBy
ProjBillgReqLastChgdAtDteTme I_ProjectBillingRequest ProjBillgReqLastChgdAtDteTme
ProjBillgReqCreatedBy I_ProjectBillingRequest ProjBillgReqCreatedBy
ProjBillgReqCreatedAtDteTme I_ProjectBillingRequest ProjBillgReqCreatedAtDteTme
_ProjectBillingRequestItem I_ProjectBillingRequest _ProjectBillingRequestItem
clientNULLasProjBillgReqCreatedAtDte
Project _EnterpriseProject Project
CustomerUUID _EnterpriseProject CustomerUUID
Customer _SalesOrder SoldToParty
UserID _MyProjectBillingRequests UserID
CurrencyasDocumentCurrency
ProjectStartDate _EnterpriseProject ProjectStartDate
ProjectEndDate _EnterpriseProject ProjectEndDate
ProfitCenter _EnterpriseProject ProfitCenter
ControllingArea _EnterpriseProject ControllingArea
ProjectDescription _EnterpriseProject ProjectDescription
_SalesOrder _SalesOrder
_EnterpriseProject _EnterpriseProject
_CustomerToBusinessPartner _CustomerToBusinessPartner
_ProjBillgReqObjectLink _ProjBillgReqObjectLink
_ProjectBillingRequestStatus _ProjectBillingRequestStatus
_ProjBillgReqApprovalStatus _ProjBillgReqApprovalStatus
_UserContactCard _UserContactCard
//@AbapCatalog.sqlViewName: 'RPROJBILLREQ'

//@ClientHandling.algorithm: #SESSION_VARIABLE

//@AccessControl.privilegedAssociations: ['_SalesBillingPlanDueDate']

//@AbapCatalog.compiler.compareFilter: true

//@AbapCatalog.preserveKey: true

@VDM.viewType: #TRANSACTIONAL
@VDM.lifecycle.contract.type:#SAP_INTERNAL_API
@AccessControl.authorizationCheck: #CHECK

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

}
@EndUserText.label: 'Details of Project Billing Request'

@ObjectModel.sapObjectNodeType.name: 'ProjectBillingRequest'
@AccessControl.privilegedAssociations: [ '_EnterpriseProject', '_SalesOrder', '_ProjectBillingReqItemTP', '_ProjBillgReqObjectLink', '_UserContactCard' ]
@AccessControl.personalData.blocking: #REQUIRED

//@Consumption.dbHints: ['NO_SUBPLAN_SHARING'] -- Performance testing


define root view entity R_ProjectBillingRequestTP
  as select from I_ProjectBillingRequest as ProjectBillingRequest
 // association [1..1] to I_EnterpriseProject           as _EnterpriseProject         on  $projection.ProjectInternalID = _EnterpriseProject.ProjectInternalID


  /* association [1..*] to I_ProjectBillgRequestRevnCube  as _ProjectBillgRequestRevnCube  on  ProjectBillingRequest.ProjectBillingRequestUUID = _ProjectBillgRequestRevnCube.ProjectBillingRequestUUID
   */
  /* association [0..1] to I_CostCenterText               as _CostCenterText               on  $projection.costcenter          = _CostCenterText.CostCenter
                                                                                         and $projection.controllingarea     = _CostCenterText.ControllingArea
                                                                                         and $projection.PlannedStartDate <= _CostCenterText.ValidityEndDate
                                                                                         and $projection.PlannedStartDate >= _CostCenterText.ValidityStartDate
                                                                                         and _CostCenterText.Language        = $session.system_language
  */
  /*removing the association as now Profit center name is exposed as Virtual fields*/
  /* association [0..1] to I_ProfitCenterText             as _ProfitCenterText             on $projection.profitcenter     = _ProfitCenterText.ProfitCenter
                                                                                         and $projection.controllingarea = _ProfitCenterText.ControllingArea
                                                                                         and $projection.PlannedStartDate <= _ProfitCenterText.ValidityEndDate
                                                                                         and $projection.PlannedStartDate >= _ProfitCenterText.ValidityStartDate
                                                                                         and _ProfitCenterText.Language  = $session.system_language
    */
  /* association [0..1] to I_EngagementProjectSrvcOrgText as _EngagementProjectSrvcOrgText on $projection.enterpriseprojectserviceorg = _EngagementProjectSrvcOrgText.EngagementProjectServiceOrg
                                                                                         and _EngagementProjectSrvcOrgText.Language  = $session.system_language
   */
  association [1..1] to I_SalesOrder                  as _SalesOrder                on  $projection.SalesDocument = _SalesOrder.SalesOrder
  association [1..1] to I_UserContactCard             as _UserContactCard           on  $projection.ProjBillgReqCreatedBy = _UserContactCard.ContactCardID
  association [0..1] to P_MyProjectBillingRequests    as _MyProjectBillingRequests  on  $projection.SalesDocument        = _MyProjectBillingRequests.SalesOrder
                                                                                    and _MyProjectBillingRequests.UserID = $session.user
  association [1..1] to I_CustomerToBusinessPartner   as _CustomerToBusinessPartner on  $projection.customeruuid = _CustomerToBusinessPartner.BusinessPartnerUUID 
  

  composition [0..*] of R_ProjectBillingRequestItemTP as _ProjectBillingReqItemTP
  composition [0..1] of R_ProjBillgReqObjectLinkTP    as _ProjBillgReqObjectLink
{

  key ProjectBillingRequest.ProjectBillingRequestUUID    as ProjectBillingRequestUUID,
      ProjectBillingRequest.ProjectBillingRequest        as ProjectBillingRequest,
      ProjectInternalID,
      ProjectBillingRequest.ProjectBillingRequestStatus  as ProjectBillingRequestStatus,
      ProjectBillingRequest.ProjBillgReqApprovalStatus   as ProjBillgReqApprovalStatus,
      ProjectBillingRequest.ProjectBillingRequestType    as ProjectBillingRequestType,
      ProjectBillingRequest.SalesDocument                as SalesDocument,
      ProjectBillingRequest.ProjectBillingCategory       as ProjectBillingCategory,
      //      ProjectBillingRequest.SalesDocumentType                                                                                                                                    as SalesDocumentType,

      @Semantics.user.lastChangedBy: true
      ProjectBillingRequest.ProjBillgReqLastChgdBy       as ProjBillgReqLastChgdBy,
      @Semantics.systemDateTime.lastChangedAt: true
      ProjectBillingRequest.ProjBillgReqLastChgdAtDteTme as ProjBillgReqLastChgdAtDteTme,
      @Semantics.user.createdBy: true
      ProjectBillingRequest.ProjBillgReqCreatedBy        as ProjBillgReqCreatedBy,
      @Semantics.systemDateTime.createdAt: true
      ProjectBillingRequest.ProjBillgReqCreatedAtDteTme  as ProjBillgReqCreatedAtDteTme,
      ProjectBillingRequest._ProjectBillingRequestItem,

      tstmp_to_dats( cast( ProjBillgReqCreatedAtDteTme as timestamp ), abap_system_timezone( $session.client,'NULL' ),
                     $session.client, 'NULL' )           as ProjBillgReqCreatedAtDte,
      _EnterpriseProject.Project                         as Project,
      _EnterpriseProject.CustomerUUID,
      _SalesOrder.SoldToParty                            as Customer,
      _MyProjectBillingRequests.UserID,

      //      ProjectBillingRequestDesc,

      
      ------------------------------------- For Performance ATC -------------------------
      _EnterpriseProject.Currency                       as DocumentCurrency,
      _EnterpriseProject.ProjectStartDate               as ProjectStartDate,
      _EnterpriseProject.ProjectEndDate                 as ProjectEndDate,
      _EnterpriseProject.ProfitCenter,
      _EnterpriseProject.ControllingArea,
      _EnterpriseProject.ProjectDescription,
      ------------------------------------- For Performance ATC -------------------------

      _ProjectBillingReqItemTP,
      _SalesOrder,
      _EnterpriseProject,
      _CustomerToBusinessPartner,
      _ProjBillgReqObjectLink,
      _ProjectBillingRequestStatus,
      _ProjBillgReqApprovalStatus,
      _UserContactCard
      
      

      // ***** The below three fields are used in I_CostCenterText and hence cannot be moved up

      // _EnterpriseProject.PlannedStartDate                                                                                                                                       as PlannedStartDate,

      // _EnterpriseProject._ProjectElement.CostCenter,

      // _EnterpriseProject.ControllingArea,

      // _EnterpriseProject.ProfitCenter,

      // _EnterpriseProject.EnterpriseProjectServiceOrg,

      // *****


      // _SalesOrder.TransactionCurrency  as DocumentCurrency,

      // _ProjectBillgRequestRevnCube.DocumentCurrency                                                                                                                              as DocumentCurrency,

      // _SalesOrder.SoldToParty as Customer,

      // _CostCenterText ,

      // _ProfitCenterText,

      // _EngagementProjectSrvcOrgText

}

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_ENTERPRISEPROJECT",
"I_PROJECTBILLINGREQUEST",
"I_SALESORDER",
"P_MYPROJECTBILLINGREQUESTS"
],
"ASSOCIATED":
[
"I_CUSTOMERTOBUSINESSPARTNER",
"I_ENTERPRISEPROJECT",
"I_PROJBILLGREQAPPROVALSTATUS",
"I_PROJECTBILLINGREQUESTITEM",
"I_PROJECTBILLINGREQUESTSTATUS",
"I_SALESORDER",
"I_USERCONTACTCARD",
"R_PROJBILLGREQOBJECTLINKTP",
"R_PROJECTBILLINGREQUESTITEMTP"
],
"BASE":
[
"I_PROJECTBILLINGREQUEST"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/