C_ProjBillingInProcessDetails

DDL: C_PROJBILLINGINPROCESSDETAILS Type: view_entity CONSUMPTION

Details of Billing in Process

C_ProjBillingInProcessDetails is a Consumption CDS View that provides data about "Details of Billing in Process" in SAP S/4HANA. It reads from 1 data source (P_ProjBillgInProcAggrgdDetails) and exposes 9 fields with key fields ProjectBillingElementUUID, ProjectBillingRequest, BillingDocumentRequest.

Data Sources (1)

SourceAliasJoin Type
P_ProjBillgInProcAggrgdDetails P_ProjBillgInProcAggrgdDetails from

Annotations (6)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
EndUserText.label Details of Billing in Process view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #L view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
VDM.viewType #CONSUMPTION view

Fields (9)

KeyFieldSource TableSource FieldDescription
KEY ProjectBillingElementUUID ProjectBillingElementUUID
KEY ProjectBillingRequest ProjectBillingRequest
KEY BillingDocumentRequest BillingDocumentRequest BDR
ProjectBillingRequestUUID ProjectBillingRequestUUID
ProjBillgReqApprovalStatusText ProjBillgReqApprovalStatusText PBR Approval Status
PrjBlgElmEntrDocBillgStsText PrjBlgElmEntrDocBillgStsText
BillingPlanItemUsage BillingPlanItemUsage
DocumentCurrency DocumentCurrency
BillgReqdRevenueAmtInDocCrcy BillgReqdRevenueAmtInDocCrcy Net Amount
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Details of Billing in Process'

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

@VDM.viewType: #CONSUMPTION

@UI.presentationVariant: [{sortOrder: [{by: 'ProjectBillingRequest' , direction: #DESC}]}]
define view entity C_ProjBillingInProcessDetails
    as select from P_ProjBillgInProcAggrgdDetails
//  as select distinct from P_ProjBillingInProcessDetails

//  association [0..1] to I_ProjectBillingElementEntryTP as _ProjectBillingElementEntryTP on $projection.ProjectBillingElementUUID = _ProjectBillingElementEntryTP.ProjectBillingElementUUID


{
  key     ProjectBillingElementUUID,

          @UI.lineItem: [{position: 10}]
          @ObjectModel.sort.enabled: true
  key     ProjectBillingRequest,

          @UI.lineItem: [{position: 30 }]
          @EndUserText.label: 'BDR'
          @EndUserText.quickInfo: 'Billing Document Request'
  key     BillingDocumentRequest,
  
          ProjectBillingRequestUUID,

          @UI.hidden: true
          case ProjBillgReqApprovalStatus
            when 'P' then 2  // orange for In Approval

            when 'A' then 3  // green for Approved

            when 'R' then 2  // orange for Rejected

            else 0
           end as UICT_PrjBlgReqApprvlStsCritlty,

          @UI.lineItem: [{ position: 20, criticality: 'UICT_PrjBlgReqApprvlStsCritlty', criticalityRepresentation: #WITHOUT_ICON }]
          @EndUserText.label: 'PBR Approval Status'
          @EndUserText.quickInfo: 'PBR Approval Status'
          ProjBillgReqApprovalStatusText,

          @UI.hidden: true
          case PrjBlgElmEntrDocBillgSts
           when 'A' then 2 // orange for To be invoiced

           when 'D' then 2 // orange for Rejected

           when 'C' then 3 // green for Invoiced

          else 0
          end  as UICT_PrjBlgDocBillgStsCritlty,

//          @UI.lineItem: [{ position: 40, criticality: 'UICT_PrjBlgDocBillgStsCritlty', criticalityRepresentation: #WITHOUT_ICON }]

//          @EndUserText.label: 'BDR Status'

//          @EndUserText.quickInfo: 'BDR Status'

          @UI.hidden: true
          PrjBlgElmEntrDocBillgStsText,

          @UI.hidden: true
          BillingPlanItemUsage,
//          case

//          when _ProjectBillingElementEntryTP._PrjBlgElmEntrBillgPlnLink._SalesDocumentBillingPlanItem.BillingPlanItemUsage is initial or _ProjectBillingElementEntryTP._PrjBlgElmEntrBillgPlnLink._SalesDocumentBillingPlanItem.BillingPlanItemUsage is null

//            then ''

//          else

//          _ProjectBillingElementEntryTP._PrjBlgElmEntrBillgPlnLink._SalesDocumentBillingPlanItem.BillingPlanItemUsage

//          end  as BillingPlanItemUsage,




          DocumentCurrency,

          @Semantics: { amount : {currencyCode: 'DocumentCurrency'} }
          @UI.lineItem: [{position: 40 }]
          @EndUserText.label: 'Net Amount'
          @EndUserText.quickInfo: 'Net Amount'
          BillgReqdRevenueAmtInDocCrcy

}
//where

//     _ProjectBillingElementEntryTP._PrjBlgElmEntrBillgPlnLink._SalesDocumentBillingPlanItem.BillingPlanItemUsage is null

//  or _ProjectBillingElementEntryTP._PrjBlgElmEntrBillgPlnLink._SalesDocumentBillingPlanItem.BillingPlanItemUsage is initial

//  or _ProjectBillingElementEntryTP._PrjBlgElmEntrBillgPlnLink._SalesDocumentBillingPlanItem.BillingPlanItemUsage = '1'

/*+[internal] {
"BASEINFO":
{
"FROM":
[
"P_PROJBILLGINPROCAGGRGDDETAILS"
],
"ASSOCIATED":
[],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/