@VDM.viewType: #BASIC
@VDM.lifecycle.contract.type: #PUBLIC_LOCAL_API
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.authorizationCheck: #MANDATORY
@AccessControl.personalData.blocking: #BLOCKED_DATA_EXCLUDED
@AbapCatalog: {
sqlViewName: 'IPROJECTDEMAND',
compiler.compareFilter: true,
dataMaintenance: #RESTRICTED,
preserveKey:true
}
@ObjectModel: {
modelingPattern: #ANALYTICAL_DIMENSION,
supportedCapabilities: [ #SQL_DATA_SOURCE, #CDS_MODELING_DATA_SOURCE, #CDS_MODELING_ASSOCIATION_TARGET, #EXTRACTION_DATA_SOURCE ],
semanticKey: [ 'ProjectDemand' ],
representativeKey: 'ProjectDemandUUID',
sapObjectNodeType.name: 'ProjectDemand',
usageType: {
serviceQuality: #A,
dataClass: #TRANSACTIONAL,
sizeCategory: #XL
}
}
@Analytics: {
dataExtraction: {
enabled: true,
delta.changeDataCapture: {
automatic: true
}
}
}
@Search.searchable: true
@Metadata.ignorePropagatedAnnotations: true
@EndUserText.label: 'Project Demand'
define view I_ProjectDemand
as select from R_ProjectDemand
// BO internal associations
association [0..1] to I_ProjectDemandMaterial as _Material // will be limited by coding, validation required
on _Material.ProjectDemandUUID = $projection.ProjectDemandUUID
association [0..1] to I_ProjectDemandService as _Service // will be limited by coding, validation required
on _Service.ProjectDemandUUID = $projection.ProjectDemandUUID
association [0..1] to I_ProjectDemandWork as _Work // will be limited by coding, validation required
on _Work.ProjectDemandUUID = $projection.ProjectDemandUUID
association [0..1] to I_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 [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 [0..1] to I_EnterpriseProjectElement 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_UnitOfMeasure as _ProjDmndQuantityUnit on $projection.ProjDmndRequestedQuantityUnit = _ProjDmndQuantityUnit.UnitOfMeasure
association [0..1] to I_Plant 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
{
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,
// 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,
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,
@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,
ProjectUUID,
@Semantics: { amount : {currencyCode: 'ProjDmndOverallRevenueCurrency'} }
ProjectDemandOverallRevenue as ProjectDemandOverallRevenue,
ProjDmndOverallRevenueCurrency as ProjDmndOverallRevenueCurrency,
ProjDmndDataModelVersion as ProjDmndDataModelVersion,
// BO internal associations
_Material,
_Service,
_Work,
_Expense,
// external associations
_ProjectDemandCategory,
_ProjectDemandType,
_WorkPackage,
_ProjectDemandStatus,
_ProjectDemandCurrency,
_ProjectDemandNetCurrency,
_ProjDmndQuantityUnit,
_Plant,
_PurchasingGroup,
_PurchasingOrganisation,
_Project,
@Consumption.hidden: true
_EnterpriseProjectForUser
// _ProjectdemandExtension
}