C_ProjectBillingRequestTP

DDL: C_PROJECTBILLINGREQUESTTP Type: view_entity CONSUMPTION Package: ODATA_PROJBILLINGREQUEST_LIST

Details of Project Billing Request

C_ProjectBillingRequestTP is a Consumption CDS View that provides data about "Details of Project Billing Request" in SAP S/4HANA. It reads from 1 data source (R_ProjectBillingRequestTP) and exposes 37 fields with key field ProjectBillingRequestUUID. It is exposed through 1 OData service (PROJECTBILLINGREQUEST_SD). Part of development package ODATA_PROJBILLINGREQUEST_LIST.

Data Sources (1)

SourceAliasJoin Type
R_ProjectBillingRequestTP R_ProjectBillingRequestTP projection

Annotations (11)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
VDM.viewType #CONSUMPTION view
Search.searchable true view
ObjectModel.representativeKey ProjectBillingRequestUUID view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
UI.headerInfo.typeName Project Billing Request view
UI.headerInfo.typeNamePlural Project Billing Requests view
UI.headerInfo.title.label Manage Project Billing Requests view
EndUserText.label Details of Project Billing Request view

OData Services (1)

ServiceBindingVersionContractRelease
PROJECTBILLINGREQUEST_SD UI_PROJBILLGREQUEST_SB_V2 V2 C1 NOT_TO_BE_RELEASED_STABLE

Fields (37)

KeyFieldSource TableSource FieldDescription
KEY ProjectBillingRequestUUID ProjectBillingRequestUUID Item ID
ProjectInternalID ProjectInternalID Project ID
ProjectBillingRequestStatus ProjectBillingRequestStatus
ProjBillgReqApprovalStatus ProjBillgReqApprovalStatus
ProjectBillingRequestType ProjectBillingRequestType
SalesDocument SalesDocument Sales Document
ProjectBillingCategory ProjectBillingCategory
ProjBillgReqLastChgdBy ProjBillgReqLastChgdBy
ProjBillgReqLastChgdAtDteTme ProjBillgReqLastChgdAtDteTme
ProjBillgReqCreatedBy ProjBillgReqCreatedBy
ProjBillgReqCreatedAtDteTme ProjBillgReqCreatedAtDteTme
DocumentCurrency DocumentCurrency Document Currency
ProjectBillingRequest ProjectBillingRequest Project Billing Request
CustomerProject Project Project
Customer _CustomerToBusinessPartner Customer Customer
CustomerName Customer
char30 Billing Element
char60 Billing Method
char30 Profit Center
dats8 Billing Due Date
char1
string
curr232 Billed
curr232 Estimated Actuals
curr232 To Bill
curr232 To Write Off
curr232 To Postpone
curr232 Cap
curr232 Amount/Cost to Postpone
curr232 Amount/Cost to Write Off
curr232 Amount/Cost to Bill
string Total Quantities
_ProjectBillingRequestItem _ProjectBillingRequestItem
_ProjectBillingRequestStatus _ProjectBillingRequestStatus
_EnterpriseProject _EnterpriseProject
_SalesDocument _SalesDocument
_ProjectBillingCategory _ProjectBillingCategory
@AccessControl.authorizationCheck: #CHECK
@VDM.viewType: #CONSUMPTION
@VDM.usage.type: [ #TRANSACTIONAL_PROCESSING_SERVICE ]

@Search.searchable: true
@ObjectModel: {
   semanticKey:       [ 'ProjectBillingRequestUUID' ],
   representativeKey: 'ProjectBillingRequestUUID'
}

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

@UI.headerInfo: {
  typeName:       'Project Billing Request',
  typeNamePlural: 'Project Billing Requests',
  title:          { label: 'Manage Project Billing Requests' }
}
@EndUserText.label: 'Details of Project Billing Request'

@Consumption.dbHints: ['NO_SUBPLAN_SHARING', 'NO_USE_HEX_PLAN'] 

define root view entity C_ProjectBillingRequestTP
  provider contract transactional_query
  as projection on R_ProjectBillingRequestTP as _ProjectBillingRequestTP

{
          @UI.hidden: true
          @EndUserText.label: 'Item ID'
          @EndUserText.quickInfo: 'Item ID'
  key     ProjectBillingRequestUUID,

          @UI.hidden: true
          @EndUserText.label: 'Project ID'
          @EndUserText.quickInfo: 'Project ID'
          ProjectInternalID,

          @UI.hidden: true
          ProjectBillingRequestStatus,

          @UI.hidden: true
          ProjBillgReqApprovalStatus,

          @UI.hidden: true
          ProjectBillingRequestType,

          @UI.hidden: true
          @EndUserText.label: 'Sales Document'
          @EndUserText.quickInfo: 'Sales Document'
          SalesDocument,

          @UI.hidden: true
          ProjectBillingCategory,

          @UI.hidden: true
          ProjBillgReqLastChgdBy,

          @UI.hidden: true
          ProjBillgReqLastChgdAtDteTme,

          @UI.hidden: true
          ProjBillgReqCreatedBy,

          @UI.hidden: true
          ProjBillgReqCreatedAtDteTme,

          @EndUserText.label: 'Document Currency'
          @EndUserText.quickInfo: 'Document Currency'
          DocumentCurrency,

          @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.85 }
          @EndUserText.label: 'Project Billing Request'
          @EndUserText.quickInfo: 'Project Billing Request'
          ProjectBillingRequest, //Draft ID


          @EndUserText.label: 'Project'
          @EndUserText.quickInfo: 'Project'
          @UI: { lineItem: [ { position: 10, importance: #HIGH } ] }
          Project                                           as CustomerProject,

          @EndUserText.label: 'Customer'
          @EndUserText.quickInfo: 'Customer'
          @UI: { lineItem: [ { position: 20, importance: #HIGH } ]  }
          @ObjectModel.text.element: ['CustomerName']
          @UI.textArrangement: #TEXT_ONLY
          _CustomerToBusinessPartner.Customer               as Customer,

          @UI.hidden: true
          @Consumption.filter.hidden: true
          @EndUserText.label: 'Customer'
          @EndUserText.quickInfo: 'Customer'
          _CustomerToBusinessPartner._Customer.CustomerName as CustomerName,

          @EndUserText.label: 'Billing Element'
          @EndUserText.quickInfo: 'Billing Element'
          @UI: { lineItem: [ { position: 40, importance: #HIGH } ] }
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual WBSElementExternalID           : abap.char( 30 ),

          @EndUserText.label: 'Billing Method'
          @EndUserText.quickInfo: 'Billing Method'
          @UI: { lineItem: [ { position: 50, importance: #HIGH } ] }
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual BillingPlanUsageCategoryName   : abap.char( 60 ),


          @EndUserText.label: 'Profit Center'
          @EndUserText.quickInfo: 'Profit Center'
          @UI: { lineItem: [ { position: 30, importance: #HIGH } ] }
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual ProfitCenterName               : abap.char( 30 ),

          @UI: { lineItem: [{ position: 60, importance: #HIGH }] }
          @UI.hidden: true
          @Consumption.filter.hidden: true
          @EndUserText.label: 'Billing Due Date'
          @EndUserText.quickInfo: 'Billing Due Date'
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual BillingPlanBillingDate         : abap.dats( 8 ),

          @UI.hidden: true
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual UtilitiesBillingReason         : abap.char( 1 ),

          @UI.hidden: true
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual ProjectBillgRequestMessageText : abap.string,

          @UI: { lineItem: [{ position: 90, importance: #HIGH }] }
          @EndUserText.label: 'Billed'
          @EndUserText.quickInfo: 'Billed'  //Net Billed

          @Semantics.amount.currencyCode: 'DocumentCurrency'
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual BilledRevenueAmtInDocCrcy      : abap.curr( 23 , 2 ),

          @EndUserText.label: 'Estimated Actuals'
          @EndUserText.quickInfo: 'Estimated Actuals'
          @Semantics: { amount : {currencyCode: 'DocumentCurrency'} }
          @Consumption.filter.hidden: true
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual NetValueAmountInDocCurrency    : abap.curr( 23 , 2 ),

          @EndUserText.label: 'To Bill'
          @EndUserText.quickInfo: 'To Bill'
          @UI: { lineItem: [{ position: 110, importance: #HIGH }] }
          @Semantics.amount.currencyCode: 'DocumentCurrency'
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual BillableRevenueAmtInDocCrcy    : abap.curr( 23 , 2 ),

          @EndUserText.label: 'To Write Off'
          @EndUserText.quickInfo: 'To Write Off'
          @Semantics: { amount : {currencyCode: 'DocumentCurrency'} }
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual WrittenOffRevenueAmtInDocCrcy  : abap.curr( 23 , 2 ),

          @EndUserText.label: 'To Postpone'
          @EndUserText.quickInfo: 'To Postpone'
          @Semantics: { amount : {currencyCode: 'DocumentCurrency'} }
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual PostponedRevenueAmtInDocCrcy   : abap.curr( 23 , 2 ),

          @UI: { lineItem: [{ position: 80, importance: #HIGH }]  }
          @EndUserText.label: 'Cap'
          @EndUserText.quickInfo: 'Cap'
          @Semantics.amount.currencyCode: 'DocumentCurrency'
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual CappedNetAmount                : abap.curr( 23 , 2 ),

          @EndUserText.label: 'Amount/Cost to Postpone'
          @EndUserText.quickInfo: 'Amount/Cost to Postpone'
          @Semantics: { amount : {currencyCode: 'DocumentCurrency'} }
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual ToBePostponedAmtInProjectCrcy  : abap.curr( 23 , 2 ),

          @EndUserText.label: 'Amount/Cost to Write Off'
          @EndUserText.quickInfo: 'Amount/Cost to Write Off'
          @Semantics: { amount : {currencyCode: 'DocumentCurrency'} }
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual ToBeWrittenOffAmtInProjectCrcy : abap.curr( 23 , 2 ),

          @EndUserText.label: 'Amount/Cost to Bill'
          @EndUserText.quickInfo: 'Amount/Cost to Bill'
          @Semantics: { amount : {currencyCode: 'DocumentCurrency'} }
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual ToBeBilledAmtInProjCurrency    : abap.curr( 23 , 2 ),

          @UI.hidden:true
          @EndUserText.label: 'Total Quantities'
          @EndUserText.quickInfo: 'Total Quantities'
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual UICT_OpenQuantity              : abap.string, //ProjBillgReqTotalQuantityText


          @UI.hidden:true
          @Semantics.booleanIndicator: true
          @ObjectModel.virtualElementCalculatedBy:'ABAP:CL_PBE_VIRTUALFIELDS'
  virtual UICT_OnAccountItemsAreIncluded : abap_boolean,

          //Associations

          @UI.hidden: true
          _ProjectBillingRequestItem,

          @Consumption.filter.hidden: true
          @UI.hidden: true
          _ProjectBillingRequestStatus,

          _EnterpriseProject,
          _SalesDocument,
          _ProjectBillingCategory,

          _ProjectBillingReqItemTP : redirected to composition child C_ProjectBillingRequestItemTP

}

where
  ProjectBillingCategory = 'PSBL'