R_PROJECTDEMAND

CDS View

Project Demand

R_PROJECTDEMAND is a CDS View in S/4HANA. Project Demand. It contains 6 fields. 16 CDS views read from this table.

CDS Views using this table (16)

ViewTypeJoinVDMDescription
C_MngProjDmndCalcdFields view from CONSUMPTION Manage Proj Dmnd Calculated Fields
C_ProjDmndRsceAssignmentSum view inner CONSUMPTION Sum of the Staffed Efforts
I_EntPrjElmntPlndExpn view_entity from COMPOSITE Project Element Expense
I_ProjDmndAndWorkPackageStatus view from COMPOSITE Project Demand and Work Package Status
I_ProjDmndCalcdCatSpcfcFields view from COMPOSITE Calculations to filter Dmnd Cat fields
I_ProjectDemand view from BASIC Project Demand
I_ProjectDemandSituation view from BASIC Demand exception handling
I_ProjectDemandTP view_entity from TRANSACTIONAL Project Demand - TP
P_EntPrjElmntDmndPlndCostRevn view_entity from COMPOSITE Work package list with cost and revenue
P_EntPrjElmntWrkDmndPlndEfrts view_entity from COMPOSITE Work package list with planned efforts
P_ProjDmndAssgmtDistrAggrgn view_entity from COMPOSITE SDM: Private CDS View
P_ProjDmndExpenseDistrAggrgn view_entity from COMPOSITE SDM: Private CDS View
P_ProjDmndRsceReqDistrAggrgn view_entity from COMPOSITE SDM: Private CDS View
P_ProjectDemandMaterials view from COMPOSITE Material demand for work package
P_ProjectDemandServices view from COMPOSITE Service demand for work package
R_EnterpriseProjectTimeSheet view_entity inner COMPOSITE Enterprise Project Time Sheet

Fields (6)

KeyField CDS FieldsUsed in Views
KEY ProjectUUID ProjectUUID 2
KEY ReferencedObjectUUID ReferencedObjectUUID 2
ProjDmndOverallRevenueCurrency ProjDmndOverallRevenueCurrency 1
ProjDmndRequestedQuantityUnit UnitOfMeasure 1
ProjectDemandRequestCurrency ProjectDemandRequestCurrency 4
ProjectDemandUUID ProjectDemanduuid 3
@VDM.viewType: #BASIC
@VDM.lifecycle.contract.type:  #SAP_INTERNAL_API

@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED

@AbapCatalog.dataMaintenance: #RESTRICTED

@ObjectModel: {
  modelingPattern: #ANALYTICAL_DIMENSION,
   supportedCapabilities: [ #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET ],
   semanticKey:       [ 'ProjectDemand' ],
   representativeKey: 'ProjectDemandUUID',
   usageType: {
     serviceQuality:  #A,
     dataClass:       #TRANSACTIONAL,
     sizeCategory:    #XL
   }
}

@Search.searchable: true
@Metadata.ignorePropagatedAnnotations: true
@EndUserText.label: 'Project Demand'

define view entity R_ProjectDemand
  as select from projectdemand

  // BO internal associations

  association [0..1] to R_ProjectDemandMaterial      as _Material // will be limited by coding, validation required

                                                                                  on _Material.ProjectDemandUUID = $projection.ProjectDemandUUID
  association [0..1] to R_ProjectDemandService       as _Service  // will be limited by coding, validation required

                                                                                  on _Service.ProjectDemandUUID = $projection.ProjectDemandUUID
  association [0..1] to R_ProjectDemandWork          as _Work     // will be limited by coding, validation required

                                                                                  on _Work.ProjectDemandUUID = $projection.ProjectDemandUUID
  association [0..1] to R_ProjectDemandExpense       as _Expense                  on _Expense.ProjectDemandUUID = $projection.ProjectDemandUUID

  //extention

  association [1..1] to E_ProjectDemand              as _ProjectdemandExtension   on $projection.ProjectDemandUUID = _ProjectdemandExtension.ProjectDemandUUID

  // external associations

  association [0..1] to I_ProjectDemandSituation     as _ProjectDemandVH          on $projection.ProjectDemandUUID = _ProjectDemandVH.ProjectDemandUUID
  association [1..1] to I_ProjectDemandCategory      as _ProjectDemandCategory    on $projection.ProjectDemandCategory = _ProjectDemandCategory.ProjectDemandCategory
  association [1..1] to I_ProjectDemandType          as _ProjectDemandType        on $projection.ProjectDemandType = _ProjectDemandType.ProjectDemandType
  association [1..1] to I_EnterpriseProject          as _Project                  on $projection.ProjectUUID = _Project.ProjectUUID
  // required to use R_view because of PST

  //  association [0..1] to R_EnterpriseProjectElement as _WorkPackage              on $projection.ReferencedObjectUUID = _WorkPackage.ProjectElementUUID

  association [0..1] to I_EnterpriseProjectElement_2 as _WorkPackage              on $projection.ReferencedObjectUUID = _WorkPackage.ProjectElementUUID
  association [1..1] to I_ProjectDemandStatus        as _ProjectDemandStatus      on $projection.ProjectDemandStatus = _ProjectDemandStatus.ProjectDemandStatus
  association [0..1] to I_Currency                   as _ProjectDemandCurrency    on $projection.ProjectDemandRequestCurrency = _ProjectDemandCurrency.Currency
  association [0..1] to I_Currency                   as _ProjectDemandNetCurrency on $projection.ProjDmndReqNetAmountCurrency = _ProjectDemandNetCurrency.Currency
  association [0..1] to I_UnitOfMeasureStdVH         as _ProjDmndQuantityUnit     on $projection.ProjDmndRequestedQuantityUnit = _ProjDmndQuantityUnit.UnitOfMeasure
  association [0..1] to I_PlantStdVH                 as _Plant                    on $projection.Plant = _Plant.Plant
  association [0..1] to I_PurchasingGroup            as _PurchasingGroup          on $projection.PurchasingGroup = _PurchasingGroup.PurchasingGroup
  association [0..1] to I_PurchasingOrganization     as _PurchasingOrganisation   on $projection.PurchasingOrganization = _PurchasingOrganisation.PurchasingOrganization
  association [0..1] to I_ProjDmndLastUpdateSource   as _ProjDmndLastUpdateSource on $projection.ProjectDemandLastUpdateSource = _ProjDmndLastUpdateSource.ProjectDemandLastUpdateSource
  //For Cat 7 Authorization

  association [0..1] to I_EnterpriseProjectForUser   as _EnterpriseProjectForUser on _EnterpriseProjectForUser.ProjectUUID = $projection.ProjectUUID
{

  key projectdemanduuid              as ProjectDemandUUID,
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.9
      @Search.ranking: #HIGH
      @ObjectModel.text.element: [ 'ProjectDemandName' ]
      projectdemand                  as ProjectDemand,
      @Semantics.text: true
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.9
      @Search.ranking: #HIGH
      projectdemandname              as ProjectDemandName,
      @Semantics.text: true
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.8
      @Search.ranking: #MEDIUM
      projectdemanddescription       as ProjectDemandDescription,
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.7
      @Search.ranking: #MEDIUM
      @ObjectModel.foreignKey.association: '_ProjectDemandCategory'
      projectdemandcategory          as ProjectDemandCategory,
      @Search.defaultSearchElement: true
      @Search.fuzzinessThreshold: 0.7
      @Search.ranking: #MEDIUM
      @ObjectModel.foreignKey.association: '_ProjectDemandType'
      projectdemandtype              as ProjectDemandType,

      @ObjectModel.foreignKey.association:    '_Project'
      projectuuid                    as ProjectUUID,

      // usually this is a workpackage in S4CE

      @ObjectModel.foreignKey.association:    '_WorkPackage'
      referencedobjectuuid           as ReferencedObjectUUID,

      @ObjectModel.foreignKey.association: '_ProjectDemandStatus'
      projectdemandstatus            as ProjectDemandStatus,

      projectdemanddatemaintenance   as ProjectDemandDateMaintenance,
      projectdemandstartdate         as ProjectDemandStartDate,
      projectdemandenddate           as ProjectDemandEndDate,

      projectdemandreleaseddatetime  as ProjectDemandReleasedDateTime,
      projdmndactualsupplydate       as ProjDmndActualSupplyDate,

      @Semantics: { amount : {currencyCode: 'ProjectDemandRequestCurrency'} }
      projectdemandperunitamount     as ProjectDemandPerUnitAmount,

      @ObjectModel.foreignKey.association:    '_ProjectDemandCurrency'
      projectdemandrequestcurrency   as ProjectDemandRequestCurrency,


      @Semantics: { amount : {currencyCode: 'ProjDmndReqNetAmountCurrency'} }
      projectdemandrequestnetamount  as ProjectDemandRequestNetAmount,

      @ObjectModel.foreignKey.association:    '_ProjectDemandNetCurrency'
      projdmndreqnetamountcurrency   as ProjDmndReqNetAmountCurrency,

      @Semantics: { amount : {currencyCode: 'ProjectDemandRequestCurrency'} }
      projectdemandoverallamount     as ProjectDemandOverallAmount,


      @Semantics: { quantity : {unitOfMeasure: 'ProjDmndRequestedQuantityUnit'} }
      projdmndrequestedquantity      as ProjDmndRequestedQuantity,

      @ObjectModel.foreignKey.association:    '_ProjDmndQuantityUnit'
      projdmndrequestedquantityunit  as ProjDmndRequestedQuantityUnit,

      priceunitqty                   as PriceUnitQty,

      @ObjectModel.foreignKey.association:    '_Plant'
      plant                          as Plant,

      @ObjectModel.foreignKey.association:    '_PurchasingGroup'
      purchasinggroup                as PurchasingGroup,

      @ObjectModel.foreignKey.association:    '_PurchasingOrganisation'
      purchasingorganization         as PurchasingOrganization,

      // only used by PSA Work

      @ObjectModel.foreignKey.association:    '_ProjDmndLastUpdateSource'
      projectdemandlastupdatesource  as ProjectDemandLastUpdateSource,

      @Semantics.user.createdBy: true
      createdbyuser                  as CreatedByUser,
      @Semantics.systemDateTime.createdAt: true
      creationdatetime               as CreationDateTime,


      @Semantics.user.localInstanceLastChangedBy: true
      lastchangedbyuser              as LastChangedByUser,


      @Semantics.systemDateTime.localInstanceLastChangedAt: true
      lastchangedatetime             as LastChangeDateTime,
      @Semantics.user.lastChangedBy: true
      projectdemandlastchangedbyuser as ProjectDemandLastChangedByUser,
      @Semantics.systemDateTime.lastChangedAt: true
      projdemandlastchangedatetime   as ProjDemandLastChangeDateTime,

      projdmndexternalreferenceuuid  as ProjDmndExternalReferenceUUID,

      @Semantics: { amount : {currencyCode: 'ProjDmndOverallRevenueCurrency'} }
      projectdemandoverallrevenue    as ProjectDemandOverallRevenue,

      projdmndoverallrevenuecurrency as ProjDmndOverallRevenueCurrency,

      projdmnddatamodelversion       as ProjDmndDataModelVersion,
      // BO internal associations

      _Material,
      _Service,
      _Work,
      _Expense,

      // external associations

      _ProjectDemandCategory,
      _ProjectDemandType,
      _Project,
      _WorkPackage,
      _ProjectDemandStatus,
      _ProjectDemandCurrency,
      _ProjectDemandNetCurrency,
      _ProjDmndLastUpdateSource,

      _ProjDmndQuantityUnit,
      _ProjectDemandVH,
      _Plant,
      _PurchasingGroup,
      _PurchasingOrganisation,
      //      _ProjectdemandExtension  //View must not expose association _ProjectdemandExtension to extension include view E_PROJECTDEMAND

      _EnterpriseProjectForUser
}