A_ProjectDemand

DDL: A_PROJECTDEMAND Type: view_entity COMPOSITE

Project Demand

A_ProjectDemand is a Composite CDS View that provides data about "Project Demand" in SAP S/4HANA. It reads from 1 data source (I_ProjectDemandTP) and exposes 36 fields with key field ProjectDemandUUID. It has 2 associations to related views. It is exposed through 1 OData service (API_PROJECTDEMAND).

Data Sources (1)

SourceAliasJoin Type
I_ProjectDemandTP I_ProjectDemandTP projection

Associations (2)

CardinalityTargetAliasCondition
[0..1] A_EnterpriseProjectElement_2 _WorkPackage $projection.ReferencedObjectUUID = _WorkPackage.ProjectElementUUID
[1] A_EnterpriseProject_2 _Project $projection.ProjectUUID = _Project.ProjectUUID

Annotations (10)

NameValueLevelField
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #S view
ObjectModel.usageType.dataClass #MIXED view
VDM.viewType #COMPOSITE view
EndUserText.label Project Demand view
VDM.lifecycle.contract.type #PUBLIC_REMOTE_API view
Metadata.ignorePropagatedAnnotations true view
OData.entityType.name A_ProjectDemand_Type view

OData Services (1)

ServiceBindingVersionContractRelease
API_PROJECTDEMAND API_PROJECTDEMAND V2 C2 C1

Fields (36)

KeyFieldSource TableSource FieldDescription
KEY ProjectDemandUUID ProjectDemandUUID
ProjectDemand ProjectDemand
ProjectDemandName ProjectDemandName
ProjectDemandDescription ProjectDemandDescription
ProjectDemandCategory ProjectDemandCategory
ProjectDemandType ProjectDemandType
ReferencedObjectUUID ReferencedObjectUUID
ProjectDemandStatus ProjectDemandStatus
ProjectDemandDateMaintenance ProjectDemandDateMaintenance
ProjectDemandStartDate ProjectDemandStartDate
ProjectDemandEndDate ProjectDemandEndDate
ProjectDemandReleasedDateTime ProjectDemandReleasedDateTime
ProjDmndActualSupplyDate ProjDmndActualSupplyDate
ProjectDemandPerUnitAmount ProjectDemandPerUnitAmount
ProjectDemandRequestCurrency ProjectDemandRequestCurrency
ProjDmndRequestedQuantityUnit ProjDmndRequestedQuantityUnit
PriceUnitQty PriceUnitQty
ProjectDemandRequestNetAmount ProjectDemandRequestNetAmount
ProjDmndReqNetAmountCurrency ProjDmndReqNetAmountCurrency
ProjectDemandOverallAmount ProjectDemandOverallAmount
ProjectDemandExpectedAmount
ProjDmndRequestedQuantity ProjDmndRequestedQuantity
Plant Plant
PurchasingGroup PurchasingGroup
PurchasingOrganization PurchasingOrganization
CreatedByUser CreatedByUser
CreationDateTime CreationDateTime
LastChangedByUser LastChangedByUser
LastChangeDateTime LastChangeDateTime
ProjectDemandLastChangedByUser ProjectDemandLastChangedByUser
ProjDemandLastChangeDateTime ProjDemandLastChangeDateTime
ProjDmndExternalReferenceUUID ProjDmndExternalReferenceUUID
ProjectUUID ProjectUUID
_WorkPackage _WorkPackage
_Project _Project
_EnterpriseProjectForUser _EnterpriseProjectForUser
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@ObjectModel.usageType:{
  serviceQuality: #X,
  sizeCategory: #S,
  dataClass: #MIXED
}
@VDM.viewType: #COMPOSITE
@EndUserText.label: 'Project Demand'
@VDM.usage.type:[#TRANSACTIONAL_PROCESSING_SERVICE]
@VDM.lifecycle.contract.type:#PUBLIC_REMOTE_API
@Metadata.ignorePropagatedAnnotations: true
@OData.entityType.name: 'A_ProjectDemand_Type'
define root view entity A_ProjectDemand
  provider contract transactional_query
  as projection on I_ProjectDemandTP as  ProjectDemand
  association [0..1] to A_EnterpriseProjectElement_2 as _WorkPackage on $projection.ReferencedObjectUUID = _WorkPackage.ProjectElementUUID
  association [1]    to A_EnterpriseProject_2 as _Project on $projection.ProjectUUID = _Project.ProjectUUID 
{
  key ProjectDemandUUID,
      ProjectDemand,
      ProjectDemandName,
      ProjectDemandDescription,
      @ObjectModel.sapObjectNodeTypeReference: 'ProjectDemandCategory'
      ProjectDemandCategory,
      @ObjectModel.sapObjectNodeTypeReference: 'ProjectDemandType'
      ProjectDemandType,
      @ObjectModel.sapObjectNodeTypeReference: 'EnterpriseProjectElement'
      ReferencedObjectUUID,
      @ObjectModel.sapObjectNodeTypeReference: 'ProjectDemandStatus'
      ProjectDemandStatus,
      ProjectDemandDateMaintenance,
      ProjectDemandStartDate,
      ProjectDemandEndDate,
      ProjectDemandReleasedDateTime,
      ProjDmndActualSupplyDate,
      @Semantics: { amount : {currencyCode: 'ProjectDemandRequestCurrency'} }
      ProjectDemandPerUnitAmount,
      @ObjectModel.sapObjectNodeTypeReference: 'Currency'
      ProjectDemandRequestCurrency,
      @ObjectModel.sapObjectNodeTypeReference: 'UnitOfMeasure'
      ProjDmndRequestedQuantityUnit,
      PriceUnitQty,
      @Semantics: { amount : {currencyCode: 'ProjDmndReqNetAmountCurrency'} }
      ProjectDemandRequestNetAmount,
      @ObjectModel.sapObjectNodeTypeReference: 'Currency'
      ProjDmndReqNetAmountCurrency,
      @Semantics: { amount : {currencyCode: 'ProjDmndReqNetAmountCurrency'} }
      ProjectDemandOverallAmount,
      @Semantics: {
              amount: {
                currencyCode: 'ProjDmndReqNetAmountCurrency'
              }
            }
      cast( ProjectDemandRequestNetAmount as tv_proj_dmnd_expected_value preserving type ) as ProjectDemandExpectedAmount,
      @Semantics: { quantity : {unitOfMeasure: 'ProjDmndRequestedQuantityUnit'} }
      ProjDmndRequestedQuantity,
      Plant,
      @ObjectModel.sapObjectNodeTypeReference: 'PurchasingGroup'
      PurchasingGroup,
      @ObjectModel.sapObjectNodeTypeReference: 'PurchasingOrganization'
      PurchasingOrganization,      
      CreatedByUser,
      CreationDateTime,
      LastChangedByUser,
      LastChangeDateTime,
      ProjectDemandLastChangedByUser,
      ProjDemandLastChangeDateTime,
      ProjDmndExternalReferenceUUID,
      @Consumption.hidden: true
      ProjectUUID,

      /* Associations */
      _Material : redirected to composition child A_ProjectDemandMaterial,
      _Service  : redirected to composition child A_ProjectDemandService,
      _Work     : redirected to composition child A_ProjectDemandResource, //_Work must be used due to underlying structure historically grown. At one point it was decided to name _Resource, but cannot be used here.

      _Expense  : redirected to composition child A_ProjectDemandExpense,
      _WorkPackage,
      _Project,
      @Consumption.hidden: true
      _EnterpriseProjectForUser
}