@Metadata.ignorePropagatedAnnotations: true
@EndUserText.label : 'Proj Dmnd Resource Assign Consumption TP'
@UI.headerInfo: {
description: {
value: 'ProjDmndRsceAssgmt'
} ,
title: {
value: 'ProjDmndRsceAssgmt'
},
typeNamePlural: 'Resource Assignments',
typeName: 'Resource Assignment'
}
@ObjectModel: {
usageType: {
sizeCategory: #XL,
dataClass: #TRANSACTIONAL,
serviceQuality: #C
} ,
// alternativeKey: [
// 'ProjectDemandWorkUUID'
// ],
// representativeKey: 'ProjDmndRsceAssgmtUUID',
semanticKey: [
'ProjDmndRsceAssgmt'
]
}
@UI.presentationVariant: [
{
requestAtLeast: [
'ProjDmndRsceAssgmtQuantityUnit',
'PersonFullName',
'ProjectDemandEndDate',
'ProjectDemandStartDate',
'CostCenter'
]
}
]
@VDM.viewType: #CONSUMPTION
@AccessControl.personalData.blocking: #NOT_REQUIRED
@AccessControl.authorizationCheck: #CHECK
define view entity C_ProjDmndResourceAssignmentTP
as projection on I_ProjDmndResourceAssignmentTP
// Contact Card
association [0..1] to C_ProjDmndResourceContactCard as _RescContactCard on $projection.ProjDmndRsceAssgmt = _RescContactCard.PersonWorkAgreement
{
@UI.hidden: true
key ProjDmndRsceAssgmtUUID,
@UI.hidden: true
ProjectDemandWorkUUID,
@UI.hidden: true
ProjectDemandUUID, // Specification: Employment Start Date <= Demand End Date AND Employment End Date >= Demand Start Date
@Consumption.valueHelpDefinition: [
{
additionalBinding: [
{
usage: #FILTER ,
element: 'CostCenter',
localElement: 'CostCenter'
}
] ,
entity : {
element: 'PersonWorkAgreement',
name: 'C_ProjDmndResourceAssignmentVH'
}
}
]
@UI.identification: [
{
position: 10
}
]
@UI.lineItem: [
{
label: 'Resource', position: 10, importance: #HIGH
}
]
ProjDmndRsceAssgmt,
@UI.hidden: true
_WrkAgrmtDetails.PersonFullName as PersonFullName,
@Semantics.eMail: { address: true , type: [ #WORK ] }
@UI.lineItem: [{ position: 30 }]
_PersonWorkAgreement._WorkforcePerson._WorkplaceAddress.DefaultEmailAddress as DefaultEmailAddress,
@UI.hidden: true
@EndUserText.label : 'Phone'
@Semantics.telephone.type: [ #WORK, #PREF ]
@UI.lineItem: [{ position: 40 }]
_PersonWorkAgreement._WorkforcePerson._WorkplaceAddress.NormalizedPhoneNumber as NormalizedPhoneNumber,
@UI.hidden: true
@EndUserText.label : 'Mobile'
@Semantics.telephone.type: [ #CELL ]
_PersonWorkAgreement._WorkforcePerson._WorkplaceAddress.MblNormalizedPhoneNumber as MblNormalizedPhoneNumber,
@Semantics: {
quantity: {
unitOfMeasure: 'ProjDmndRsceAssgmtQuantityUnit'
}
}
@UI.identification: [
{
position: 20
}
]
@UI.lineItem: [
{
label: 'Staffed Effort',
position: 40,
importance: #HIGH
}
]
ProjDmndRsceAssgmtQuantity,
@EndUserText.label : 'Staffed Effort Unit'
ProjDmndRsceAssgmtQuantityUnit,
@UI.hidden: true
_Work.CostCenter as CostCenter,
@UI.hidden: true
_Root.ProjectDemandStartDate as ProjectDemandStartDate,
@UI.hidden: true
_Root.ProjectDemandEndDate as ProjectDemandEndDate,
/* Associations */
@UI.lineItem: [
{
label: 'Full Name',
position: 20,
importance: #HIGH,
type: #AS_CONTACT,
value: '_RescContactCard'
}
]
_RescContactCard,
@Consumption.filter .hidden: true
_Root : redirected to C_MngProjectDemandWorkTP,
@Consumption.filter .hidden: true
_Work : redirected to parent C_ProjectDemandWorkTP,
@Consumption.filter .hidden: true
_WrkAgrmtDetails,
@Consumption.filter .hidden: true
_RsceAssgmtQuantityUnit, // Making sure that the fields are always visible for UI
@Consumption.filter .hidden: true
_PersonWorkAgreement
}
/*+[internal] {
"BASEINFO":
{
"FROM ":
[
"I_ENTPROJWRKAGRMTDETAILS",
"I_PERSONWORKAGREEMENT_1",
"I_PROJDMNDRESOURCEASSIGNMENTTP",
"I_PROJECTDEMANDTP",
"I_PROJECTDEMANDWORKTP",
"I_WORKFORCEPERSON",
"I_WORKPLACEADDRESS"
],
"ASSOCIATED":
[
"C_MNGPROJECTDEMANDWORKTP",
"C_PROJDMNDRESOURCECONTACTCARD",
"C_PROJECTDEMANDWORKTP",
"I_ENTPROJWRKAGRMTDETAILS",
"I_PERSONWORKAGREEMENT_1",
"I_PROJECTDEMANDTP",
"I_PROJECTDEMANDWORKTP",
"I_UNITOFMEASURE"
],
"BASE":
[
"I_PROJDMNDRESOURCEASSIGNMENTTP"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
Depth:
1
2
3
4
5
All
Reload
C_ProjDmndResourceAssignmentTP view_entity