I_PROJECTBILLINGELEMENT

CDS View

Project Billing Element

I_PROJECTBILLINGELEMENT is a CDS View in S/4HANA. Project Billing Element. It contains 20 fields. 23 CDS views read from this table.

CDS Views using this table (23)

ViewTypeJoinVDMDescription
C_EnPrjPfSrvsBillingPlanItem view_entity inner CONSUMPTION Provides billing plan details
C_ProjBillgReqWrkPckgWrkItmVH view_entity inner CONSUMPTION Work Item Work Package
I_EntProjBillgElmntDet view_entity from COMPOSITE Billing Elements Details for Enterprise Projects
I_EntProjProfnlSrvcBillgElmnt view_entity inner COMPOSITE Billing Elements of Projects
I_IntcoProjectBillingElement view_entity inner BASIC Intercompany Project Billing Element
I_ProjectBillingElementTP view_entity from TRANSACTIONAL Details of Billing Element
I_ProjectBillingElmntDueDate view_entity from COMPOSITE Billing Due Date of Billing Element
P_EngmntProjBillgDetails view_entity from COMPOSITE Unbilled Revenue
P_EvtBsdRevnRecgnProjWipJrnAmt view_entity from COMPOSITE WIP (2) - JournEntr Amounts T&M + PBE
P_PrjBlgElmBllbleRevnAmt view_entity from COMPOSITE Billable Revenue Amt for Billing Elmnt
P_PrjBlgElmRevnAmount view_entity from CONSUMPTION Calculated Amounts for Billing Element
P_PRJBLGELMSALESDOCITM view_entity from TRANSACTIONAL P view for Project Billing Element Sales Document
P_ProjBillgElmntBillgPlanItem view_entity from COMPOSITE Project Billing Open Billing Plan Items
P_ProjBillgElmntForPrjBlgReq view_entity inner CONSUMPTION Additional information in PBR
P_ProjBillgElmntSalesDets2 view_entity from COMPOSITE Project Billing Elements
P_ProjBillgElmntTEBillgDate view_entity from COMPOSITE Project Billing Date for T&E element
P_ProjBillingElementEntrFlw00 view inner COMPOSITE P-View Proj Billing Element Flow
P_ProjBillingElmntAllBillDate view_entity from COMPOSITE Project Billing Element Date = 99991231
P_ProjBillingElmntAllBillDate2 view_entity from COMPOSITE Proj. Billg Element Date = 99991231 (2)
P_ProjBillingElmntBillngDate view_entity from COMPOSITE Billing due date replacing P_ProjBillingElmntBillgDate
P_ProjBillingElmntMaxBillDate3 view_entity from COMPOSITE Project Billing Element (max, past)) Due Billing Date
P_ProjBillngPlanDates view_entity inner COMPOSITE All open billing due dates
R_ProjectBillingElementTP view_entity from TRANSACTIONAL Details of Billing Element

Fields (20)

KeyField CDS FieldsUsed in Views
KEY BillingWBSElementInternalID BillingWBSElementInternalID,WBSElementInternalID 9
KEY ProjectBillingElementUUID ProjectBillingElementUUID 16
_EnterpriseProjectElement _EnterpriseProjectElement 1
_ProjBillgElmObjectLink _ProjBillgElmObjectLink 2
_ProjectBillingElementEntry _ProjectBillingElementEntry 1
_WBSElement _WBSElement 3
BilledRevenueAmtInDocCrcy BilledRevenueAmtInDocCrcy 4
BillingPlan BillingPlan,ProjBillgSlsOrdBillingPlan 2
DocumentCurrency DocumentCurrency 6
ProjBillgElmntCreatedAtDteTme ProjBillgElmntCreatedAtDteTme 2
ProjBillgElmntCreatedByUser ProjBillgElmntCreatedByUser 2
ProjBillgElmntLastChgdAtDteTme ProjBillgElmntLastChgdAtDteTme 2
ProjBillgElmntLastChgdByUser ProjBillgElmntLastChgdByUser 2
ProjBillingProfile ProjBillingProfile 2
ProjectBillingCategory ProjectBillingCategory 3
ProjectElementUUID ProjectElementUUID 2
ProjectUUID ProjectUUID 2
SalesDocument SalesDocument,SalesOrder 4
SalesDocumentItem SalesDocumentItem,SalesOrderItem 4
WrittenOffRevenueAmtInDocCrcy WrittenOffRevenueAmtInDocCrcy 3
@EndUserText.label: 'Project Billing Element'
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@VDM.viewType: #BASIC
@AccessControl.authorizationCheck: #CHECK
//@Analytics.dataExtraction.enabled: true

//@Analytics.dataExtraction.delta.changeDataCapture.automatic: true

@Analytics: {
    dataExtraction: {
        enabled: true,
        delta.changeDataCapture: {
            mapping:[
                {
                    table: 'projbillgelmnt', role: #MAIN,
                    viewElement: ['ProjectBillingElementUUID'],
                    tableElement: ['projectbillingelementuuid']
                },
                {
                    table: 'prjblgelmobjlnk', role: #LEFT_OUTER_TO_ONE_JOIN,
                    viewElement: ['PrjBlgElmObjLnkUUID'],
                    tableElement: ['prjblgelmobjlnkuuid']
                }
            ]
        }
    }
 }

@ObjectModel: {
    modelingPattern: #ANALYTICAL_DIMENSION,
    supportedCapabilities: [ #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET, #ANALYTICAL_DIMENSION, #EXTRACTION_DATA_SOURCE, #UI_PROVIDER_PROJECTION_SOURCE ],
    usageType: {
        sizeCategory: #M,
        dataClass:  #TRANSACTIONAL,
        serviceQuality: #A
    },
    representativeKey: 'ProjectBillingElementUUID'
}
@Metadata.ignorePropagatedAnnotations: true
@ObjectModel.sapObjectNodeType.name: 'ProjectBillingElement'


define view entity I_ProjectBillingElement
  as select from projbillgelmnt as ProjectBillingElement
  association [0..*] to I_ProjectBillingElementEntry as _ProjectBillingElementEntry on $projection.ProjectBillingElementUUID = _ProjectBillingElementEntry.ProjectBillingElementUUID

  association [0..1] to I_WBSElementBasicData        as _WBSElement                 on $projection.BillingWBSElementInternalID = _WBSElement.WBSElementInternalID

  association [0..1] to I_ProjBillgElmObjectLink     as _ProjBillgElmObjectLink     on $projection.ProjectBillingElementUUID = _ProjBillgElmObjectLink.ProjectBillingElementUUID

  association [1..1] to I_Currency                   as _Currency                   on $projection.DocumentCurrency = _Currency.Currency

  association [1..*] to I_CurrencyText               as _CurrencyText               on $projection.DocumentCurrency = _CurrencyText.Currency

  association [0..1] to I_ProjectBillingCategory     as _ProjectBillingCategory     on $projection.ProjectBillingCategory = _ProjectBillingCategory.ProjectBillingCategory

  association [1..*] to I_ProjectBillingCategoryText as _ProjectBillingCategoryText on $projection.ProjectBillingCategory = _ProjectBillingCategoryText.ProjectBillingCategory

  association [0..1] to I_SalesDocument              as _SalesDocument              on $projection.SalesDocument = _SalesDocument.SalesDocument

  association [0..1] to I_EnterpriseProjectElement   as _EnterpriseProjectElement   on $projection.ProjectElementUUID = _EnterpriseProjectElement.ProjectElementUUID
{
  key ProjectBillingElement.projectbillingelementuuid      as ProjectBillingElementUUID,
      ProjectBillingElement.billingwbselementinternalid    as BillingWBSElementInternalID,
      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_CurrencyStdVH',
                     element: 'Currency' }
        }]
      @ObjectModel.foreignKey.association: '_Currency'
      ProjectBillingElement.documentcurrency               as DocumentCurrency,
      @Semantics.amount.currencyCode: 'DocumentCurrency'
      ProjectBillingElement.billedrevenueamtindoccrcy      as BilledRevenueAmtInDocCrcy,
      @Semantics.amount.currencyCode: 'DocumentCurrency'
      ProjectBillingElement.writtenoffrevenueamtindoccrcy  as WrittenOffRevenueAmtInDocCrcy,
      ProjectBillingElement.projbillingprofile             as ProjBillingProfile,
      @Consumption.valueHelpDefinition: [
        { entity:  { name:    'I_ProjectBillingCategory',
                     element: 'ProjectBillingCategory' }
        }]
      @ObjectModel.foreignKey.association: '_ProjectBillingCategory'
      ProjectBillingElement.projectbillingcategory         as ProjectBillingCategory,
      @Semantics.user.createdBy: true
      ProjectBillingElement.projbillgelmntcreatedbyuser    as ProjBillgElmntCreatedByUser,
      @Semantics.systemDateTime.createdAt: true
      ProjectBillingElement.projbillgelmntcreatedatdtetme  as ProjBillgElmntCreatedAtDteTme,
      @Semantics.user.lastChangedBy: true
      ProjectBillingElement.projbillgelmntlastchgdbyuser   as ProjBillgElmntLastChgdByUser,
      @Semantics.systemDateTime.lastChangedAt: true
      ProjectBillingElement.projbillgelmntlastchgdatdtetme as ProjBillgElmntLastChgdAtDteTme,

      ProjectBillingElement.salesdocument                  as SalesDocument,
      ProjectBillingElement.salesdocumentitem              as SalesDocumentItem,
      ProjectBillingElement.billingplan                    as BillingPlan,

      ProjectBillingElement.projectuuid                    as ProjectUUID,
      ProjectBillingElement.projectelementuuid             as ProjectElementUUID,

      _ProjBillgElmObjectLink.PrjBlgElmObjLnkUUID, //for the delta extraction

      // _ProjBillgElmObjectLink.SalesDocument,

      //Added for reversing incompatible change

      _SalesDocument,
      //End of Added for reversing incompatible change

      //Associations

      _ProjectBillingElementEntry,
      _WBSElement,
      // _ProjBillgElmObjectLink._SalesDocument,

      _ProjBillgElmObjectLink,
      _Currency,
      @Consumption.hidden: true
      _CurrencyText,
      _ProjectBillingCategory,
      @Consumption.hidden: true
      _ProjectBillingCategoryText,
      _EnterpriseProjectElement
}