C_ProjDmndResourceAssignmentTP

DDL: C_PROJDMNDRESOURCEASSIGNMENTTP Type: view_entity CONSUMPTION

Proj Dmnd Resource Assign Consumption TP

C_ProjDmndResourceAssignmentTP is a Consumption CDS View that provides data about "Proj Dmnd Resource Assign Consumption TP" in SAP S/4HANA. It reads from 1 data source (I_ProjDmndResourceAssignmentTP) and exposes 17 fields with key field ProjDmndRsceAssgmtUUID. It has 1 association to related views.

Data Sources (1)

SourceAliasJoin Type
I_ProjDmndResourceAssignmentTP I_ProjDmndResourceAssignmentTP projection

Associations (1)

CardinalityTargetAliasCondition
[0..1] C_ProjDmndResourceContactCard _RescContactCard $projection.ProjDmndRsceAssgmt = _RescContactCard.PersonWorkAgreement

Annotations (12)

NameValueLevelField
Metadata.ignorePropagatedAnnotations true view
EndUserText.label Proj Dmnd Resource Assign Consumption TP view
UI.headerInfo.description.value ProjDmndRsceAssgmt view
UI.headerInfo.title.value ProjDmndRsceAssgmt view
UI.headerInfo.typeNamePlural Resource Assignments view
UI.headerInfo.typeName Resource Assignment view
ObjectModel.usageType.sizeCategory #XL view
ObjectModel.usageType.dataClass #TRANSACTIONAL view
ObjectModel.usageType.serviceQuality #C view
VDM.viewType #CONSUMPTION view
AccessControl.personalData.blocking #NOT_REQUIRED view
AccessControl.authorizationCheck #CHECK view

Fields (17)

KeyFieldSource TableSource FieldDescription
KEY ProjDmndRsceAssgmtUUID ProjDmndRsceAssgmtUUID
ProjectDemandWorkUUID ProjectDemandWorkUUID
ProjectDemandUUID ProjectDemandUUID
ProjDmndRsceAssgmt ProjDmndRsceAssgmt
PersonFullName _WrkAgrmtDetails PersonFullName
DefaultEmailAddress
NormalizedPhoneNumber Phone
MblNormalizedPhoneNumber Mobile
ProjDmndRsceAssgmtQuantity ProjDmndRsceAssgmtQuantity
ProjDmndRsceAssgmtQuantityUnit ProjDmndRsceAssgmtQuantityUnit Staffed Effort Unit
CostCenter _Work CostCenter
ProjectDemandStartDate _Root ProjectDemandStartDate
ProjectDemandEndDate _Root ProjectDemandEndDate
_RescContactCard _RescContactCard
_WrkAgrmtDetails _WrkAgrmtDetails
_RsceAssgmtQuantityUnit _RsceAssgmtQuantityUnit
_PersonWorkAgreement _PersonWorkAgreement
@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

}