@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AbapCatalog: {
sqlViewName: 'CPROJDMNDEVH',
dataMaintenance: #RESTRICTED
}
@EndUserText.label : 'Proj Dmnd Resource Employment Search'
@VDM: {
viewType: #CONSUMPTION
}
@AccessControl: {
authorizationCheck: #CHECK,
personalData.blocking: #BLOCKED_DATA_EXCLUDED
}
@ClientHandling.algorithm: #SESSION_VARIABLE
@ObjectModel: {
semanticKey: [ 'PersonWorkAgreement' ],
representativeKey: 'PersonWorkAgreement',
dataCategory: #VALUE_HELP,
usageType: {
serviceQuality: #C,
dataClass: #MIXED,
sizeCategory: #L
}
}
@Consumption.ranked: true
@Search.searchable: true
define view C_ProjDmndResourceAssignmentVH
as select from I_PersonWorkAgreement_1 as PersWrkAgrmt
// Cost Center of Project Demand is a kind of import parameter of this value help.
inner join I_PersonWorkAgrmtOrglDetails as PersWrkAgrmtOrgDet
on PersWrkAgrmt.PersonWorkAgreement = PersWrkAgrmtOrgDet.PersonWorkAgreement
// all current and future org assignments
and PersWrkAgrmtOrgDet.EndDate >= $session.system_date
inner join I_PersonWorkAgrmtStatus as PersWrkAgrmtStatDet
on PersWrkAgrmtOrgDet.PersonWorkAgreement = PersWrkAgrmtStatDet.PersonWorkAgreement
and PersWrkAgrmtStatDet.WorkAgreementStatus = '1'
/* Find active record in future and that has intersection w/ the OrglDetails Record - Hope that there is only one intersection for the cardinality */
and PersWrkAgrmtOrgDet.EndDate >= PersWrkAgrmtStatDet.StartDate
and PersWrkAgrmtOrgDet.StartDate <= PersWrkAgrmtStatDet.EndDate
and PersWrkAgrmtStatDet.EndDate >= $session.system_date
{
@Search: { //mode: #IDENTIFIER,
defaultSearchElement: true ,
fuzzinessThreshold: 0.8,
ranking: #HIGH }
@EndUserText.label : 'Resource'
// @EndUserText.quickInfo : 'Personnel number'
@UI: { lineItem: [{ position: 10, importance: #HIGH } ]
}
key cast ( PersWrkAgrmt.PersonWorkAgreement as tv_proj_dmnd_persno preserving type ) as PersonWorkAgreement,
@Search.defaultSearchElement: true
@Search.ranking: #LOW
@Search.fuzzinessThreshold : 0.8
@Semantics.text: true
@UI: {
lineItem: [{ position: 20, importance: #HIGH } ]
}
PersWrkAgrmt.PersonFullName as PersonFullName,
@Search.defaultSearchElement: true
@Search.ranking: #LOW
@Search.fuzzinessThreshold : 0.8
@Semantics.text: true
@UI: {
lineItem: [{ position: 30, importance: #HIGH } ]
}
PersWrkAgrmt._WorkforcePerson._WorkplaceAddress.DefaultEmailAddress as EmailAddress,
// WPlaceAdress.DefaultEmailAddress as EmailAddress,
@Search.defaultSearchElement: true
@Search.ranking: #LOW
@Search.fuzzinessThreshold : 0.8
@Semantics.text: true
@UI: {
lineItem: [{ position: 40, importance: #HIGH } ]
}
@EndUserText.label : 'Job Title'
PersWrkAgrmtOrgDet._PersonWorkAgrmtJobText[1:Language = $session.system_language].JobName as JobName,
@UI: {
lineItem: [{ position: 50, importance: #HIGH } ]
}
@EndUserText.label : 'Job Code'
PersWrkAgrmtOrgDet.Job as Job,
PersWrkAgrmtOrgDet.StartDate as StartDate,
PersWrkAgrmtOrgDet.EndDate as EndDate,
@Consumption.filter .hidden: true
PersWrkAgrmtOrgDet.CostCenter as CostCenter,
// Required for Authorization check
@UI.hidden
PersWrkAgrmt.AuthorizationGroup,
@Consumption.filter .hidden: true
PersWrkAgrmtOrgDet.PersonWorkAgrmtAuthznGrpg,
@Consumption.filter .hidden: true
PersWrkAgrmt.Person,
PersWrkAgrmt._BusinessPartner
}
/*+[internal] {
"BASEINFO":
{
"FROM ":
[
"I_PERSONWORKAGREEMENT_1",
"I_PERSONWORKAGRMTJOBTEXT",
"I_PERSONWORKAGRMTORGLDETAILS",
"I_PERSONWORKAGRMTSTATUS",
"I_WORKFORCEPERSON",
"I_WORKPLACEADDRESS"
],
"ASSOCIATED":
[
"I_BUSINESSPARTNER"
],
"BASE":
[
"I_PERSONWORKAGREEMENT_1"
],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/
Depth:
1
2
3
4
5
All
Reload
C_ProjDmndResourceAssignmentVH view