C_ProjDmndResourceAssignmentVH

DDL: C_PROJDMNDRESOURCEASSIGNMENTVH Type: view CONSUMPTION

Proj Dmnd Resource Employment Search

C_ProjDmndResourceAssignmentVH is a Consumption CDS View that provides data about "Proj Dmnd Resource Employment Search" in SAP S/4HANA. It reads from 3 data sources (I_PersonWorkAgreement_1, I_PersonWorkAgrmtOrglDetails, I_PersonWorkAgrmtStatus) and exposes 12 fields with key field PersonWorkAgreement.

Data Sources (3)

SourceAliasJoin Type
I_PersonWorkAgreement_1 PersWrkAgrmt from
I_PersonWorkAgrmtOrglDetails PersWrkAgrmtOrgDet inner
I_PersonWorkAgrmtStatus PersWrkAgrmtStatDet inner

Annotations (16)

NameValueLevelField
AbapCatalog.compiler.compareFilter true view
AbapCatalog.preserveKey true view
AbapCatalog.sqlViewName CPROJDMNDEVH view
AbapCatalog.dataMaintenance #RESTRICTED view
EndUserText.label Proj Dmnd Resource Employment Search view
VDM.viewType #CONSUMPTION view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #BLOCKED_DATA_EXCLUDED view
ClientHandling.algorithm #SESSION_VARIABLE view
ObjectModel.representativeKey PersonWorkAgreement view
ObjectModel.dataCategory #VALUE_HELP view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.sizeCategory #L view
Consumption.ranked true view
Search.searchable true view

Fields (12)

KeyFieldSource TableSource FieldDescription
KEY PersonWorkAgreement Resource
PersonFullName I_PersonWorkAgreement_1 PersonFullName
EmailAddress
JobName Job Title
Job I_PersonWorkAgrmtOrglDetails Job Job Code
StartDate I_PersonWorkAgrmtOrglDetails StartDate
EndDate I_PersonWorkAgrmtOrglDetails EndDate
CostCenter I_PersonWorkAgrmtOrglDetails CostCenter
AuthorizationGroup I_PersonWorkAgreement_1 AuthorizationGroup
PersonWorkAgrmtAuthznGrpg I_PersonWorkAgrmtOrglDetails PersonWorkAgrmtAuthznGrpg
Person I_PersonWorkAgreement_1 Person
_BusinessPartner I_PersonWorkAgreement_1 _BusinessPartner
@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":""
}
}*/