C_PPM_ProjectResourceTP

DDL: C_PPM_PROJECTRESOURCETP SQL: CPPMPROJRESTP Type: view CONSUMPTION

Main Consumption View for Maintain Resource

C_PPM_ProjectResourceTP is a Consumption CDS View that provides data about "Main Consumption View for Maintain Resource" in SAP S/4HANA. It reads from 1 data source (I_BusinessUserTP) and exposes 43 fields with key field BusinessPartnerUUID. It has 1 association to related views.

Data Sources (1)

SourceAliasJoin Type
I_BusinessUserTP I_BusinessUserTP from

Associations (1)

CardinalityTargetAliasCondition
[1..1] P_BPUserPrsnlAddrNmbrConcat _ChangeDocID $projection.BusinessPartnerUUID = _ChangeDocID.BusinessPartnerUUID

Annotations (24)

NameValueLevelField
AbapCatalog.sqlViewName CPPMPROJRESTP view
AbapCatalog.compiler.compareFilter true view
AccessControl.authorizationCheck #CHECK view
AccessControl.personalData.blocking #REQUIRED view
EndUserText.label Main Consumption View for Maintain Resource view
ClientHandling.algorithm #SESSION_VARIABLE view
VDM.viewType #CONSUMPTION view
UI.presentationVariant.sortOrder.by LastName view
UI.presentationVariant.sortOrder.direction #ASC view
Search.searchable true view
ObjectModel.transactionalProcessingDelegated true view
ObjectModel.createEnabled true view
ObjectModel.deleteEnabled true view
ObjectModel.updateEnabled true view
ObjectModel.compositionRoot true view
ObjectModel.draftEnabled true view
UI.headerInfo.typeName Resource view
UI.headerInfo.typeNamePlural Resources view
UI.headerInfo.title.value PersonFullName view
UI.headerInfo.title.label LastName view
UI.headerInfo.description.value UserName view
ObjectModel.usageType.serviceQuality #C view
ObjectModel.usageType.sizeCategory #M view
ObjectModel.usageType.dataClass #MIXED view

Fields (43)

KeyFieldSource TableSource FieldDescription
KEY BusinessPartnerUUID BusinessPartnerUUID
BusinessPartner I_BusinessUserTP BusinessPartner
LastName LastName
FirstName FirstName
FormOfAddress FormOfAddress
ValidityStartDate ValidityStartDate
ValidityEndDate ValidityEndDate
EmailAddress EmailAddress
UserID UserID
PhoneNumber PhoneNumber
PhoneNumberExtension PhoneNumberExtension
MobilePhoneNumber MobilePhoneNumber
CorrespondenceLanguage CorrespondenceLanguage
PersonFullName PersonFullName
Building Building
RoomNumber RoomNumber
Department Department
FunctionalTitleName FunctionalTitleName
DestinationLocationCountry DestinationLocationCountry
UserDescription UserDescription
MblPhoneDestinationLocCountry MblPhoneDestinationLocCountry
BirthName BirthName
MiddleName MiddleName
AcademicTitle AcademicTitle
Initials Initials
UserName UserName
BusinessPartnerRoleType BusinessPartnerRoleCategory
AuthorizationGroup AuthorizationGroup
IsBusinessPurposeCompleted IsBusinessPurposeCompleted
BusinessPartnerAddressID _ChangeDocID BusinessPartnerAddressID
AddressUUID _ChangeDocID AddressUUID
IsMarkedForArchiving IsMarkedForArchiving
DataControllerSet DataControllerSet
DataController1 DataController1
DataController2 DataController2
DataController3 DataController3
DataController4 DataController4
DataController5 DataController5
DataController6 DataController6
DataController7 DataController7
DataController8 DataController8
DataController9 DataController9
DataController10 DataController10
@AbapCatalog.sqlViewName: 'CPPMPROJRESTP'
@AbapCatalog.compiler.compareFilter: true
@AccessControl.authorizationCheck: #CHECK
@AccessControl.personalData.blocking: #REQUIRED
@EndUserText.label: 'Main Consumption View for Maintain Resource'

//@Search.searchable: true

@ClientHandling.algorithm: #SESSION_VARIABLE
@VDM.viewType: #CONSUMPTION

@UI.presentationVariant.sortOrder.by: 'LastName'
@UI.presentationVariant.sortOrder.direction: #ASC
@Search.searchable: true
@ObjectModel: {
    transactionalProcessingDelegated: true,

    createEnabled: true,
    deleteEnabled: true,
    updateEnabled: true,
    
    compositionRoot: true, -- on root node only
    draftEnabled:    true, -- on root node only
    semanticKey: ['BusinessPartner']
}

@UI.headerInfo: {
  typeName:         'Resource',
  typeNamePlural:   'Resources',
  title:          { value: 'PersonFullName',label: 'LastName' },
  description:    { value: 'UserName' }
}

@ObjectModel.usageType.serviceQuality: #C
@ObjectModel.usageType.sizeCategory: #M         
@ObjectModel.usageType.dataClass:#MIXED

@ObjectModel.delegatedAction: [ { name: 'MARK_FOR_ARCHIVING' }, { name: 'UNDO_MARK_FOR_ARCHIVING' },{ name: 'DOWNLOAD_CSV_TEMPLATE' }]


define view C_PPM_ProjectResourceTP
  as select from I_BusinessUserTP
/*
  association [1..1] to P_BPUsrRoleCustomizingType as _cust on $projection.BusinessPartner = _cust.BusinessPartner                            +[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] }
   OP2023 
   Probably bad quality - Next line is equivalent to I_BusinessUserTP.BusinessPartnerRoleCategory = 'WFM001'   
                                                  and _cust.BusinessPartnerRoleType               = 'WFM001'
*/                                                  
  association [1..1] to P_BPUserPrsnlAddrNmbrConcat as _ChangeDocID on $projection.BusinessPartnerUUID = _ChangeDocID.BusinessPartnerUUID   /*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] }*/


 {

      @UI.facet: [
                        {purpose: #STANDARD,id: 'GeneralInfo',position: 1,importance: #HIGH,label: 'General Information',type: #COLLECTION},
                        {purpose: #STANDARD,id: 'ContactData',position: 1,importance: #HIGH,label: 'Contact Information',type: #COLLECTION},
                        {purpose: #STANDARD,id: 'PersonalDetails',position: 1,importance: #HIGH,label: 'Additional Information',type: #COLLECTION},
                          {purpose: #STANDARD,id: 'GeneralInfoFG1',parentId: 'GeneralInfo',position: 1,importance: #HIGH,type: #FIELDGROUP_REFERENCE,targetQualifier: 'BasicData',label: 'Basic Data'},
                          {purpose: #STANDARD,id: 'GeneralInfoFG2',parentId: 'GeneralInfo',position: 1,importance: #HIGH,type: #FIELDGROUP_REFERENCE,targetQualifier: 'ValidityPeriod', label: 'Validity Period'},
                          {purpose: #STANDARD,id: 'GeneralInfoFG3',parentId: 'GeneralInfo',position: 1,importance: #HIGH,type: #FIELDGROUP_REFERENCE,targetQualifier: 'BusinessUser', label:'Business User'},
                          {purpose: #STANDARD,id: 'ContactDataFG1',parentId: 'ContactData',position: 1,importance: #HIGH,type: #FIELDGROUP_REFERENCE,targetQualifier: 'Contact',label: 'Contact'},
                          {purpose: #STANDARD,id: 'ContactDataFG2',parentId: 'ContactData',position: 1,importance: #HIGH,type: #FIELDGROUP_REFERENCE,targetQualifier: 'Telephone', label: 'Telephone'},
                          {purpose: #STANDARD,id: 'ContactDataFG3',parentId: 'ContactData',position: 1,importance: #HIGH,type: #FIELDGROUP_REFERENCE,targetQualifier: 'MobilePhone',label: 'Mobile'},
                          {purpose: #STANDARD,id: 'PersonalDetailsFG1',parentId: 'PersonalDetails',position: 1,importance: #HIGH,type: #FIELDGROUP_REFERENCE,targetQualifier: 'NameData', label: 'Name Data'},
                          {purpose: #STANDARD,id: 'PersonalDetailsFG2',parentId: 'PersonalDetails',position: 1,importance: #HIGH,type: #FIELDGROUP_REFERENCE,targetQualifier: 'WorkPlaceData', label:'Workplace Data'}
                  ]

      @UI.hidden: true
  key BusinessPartnerUUID,

      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.85} //note:3145795

      @UI.lineItem.position: 10               
      @Consumption.filter: {hidden: true}
      @Consumption.semanticObject: 'BusinessPartner'
      @EndUserText: { label: 'Resource ID', quickInfo: 'Resource ID' }
      @UI.lineItem:[{position: 1, type: #FOR_ACTION, dataAction: 'BOPF:MARK_FOR_ARCHIVING', label: 'Mark For Archiving', importance: #HIGH}]
      @UI.identification: [{position: 1, type: #FOR_ACTION, dataAction: 'BOPF:MARK_FOR_ARCHIVING', label: 'Mark for Archiving', importance: #HIGH},{position: 2, type: #FOR_ACTION, dataAction: 'BOPF:UNDO_MARK_FOR_ARCHIVING', label: 'Undo Mark for Archiving', importance: #HIGH}]
      @ObjectModel.readOnly: true                                       //note:3145778

      @UI.fieldGroup: {qualifier: 'BasicData', position: 5}             //note:3145778

      I_BusinessUserTP.BusinessPartner,


      // // |||||| Default Columns


      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.85}
      @ObjectModel.mandatory:true
      @UI.selectionField: [ { position:10 } ]    //note:3238871

      @UI.lineItem: [ { position: 20 } ]         //note:3238871

      @ObjectModel.readOnly: false               //note:3238871

      @ObjectModel.enabled: true                 //note:3238871

      @UI.fieldGroup: [ {qualifier: 'BasicData', position: 30} ]
      LastName,

      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.85}
      @UI.selectionField: [ { position:20 } ]          //note:3238871

      @UI.lineItem: [ { position: 30 } ]               //note:3238871

      @ObjectModel.readOnly: false                     //note:3238871

      @ObjectModel.enabled: true                       //note:3238871

      @UI.fieldGroup: [ {qualifier: 'BasicData', position: 20} ]  //note:3238871

      FirstName,

      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.85}
      //@Consumption.valueHelpDefinition.entity : [ {name: 'C_FormOfAddressVH', element: 'FormOfAddress'} ]  //note:3238871

      @Consumption.valueHelpDefinition: [ { entity.name: 'C_FormOfAddressVH', entity.element: 'FormOfAddress'} ]  //note:3238871

      @Consumption.filter: {hidden: true}
      @UI.fieldGroup: {qualifier: 'BasicData', position: 10}      
      FormOfAddress,

      @Consumption.filter: {hidden: true}
      @ObjectModel.mandatory:true
      @UI.lineItem :[ { position: 50 } ]             //note:3238871

      @UI.fieldGroup: [ {qualifier: 'ValidityPeriod', position: 10} ]   //note:3238871

      ValidityStartDate,

      @Consumption.filter: {hidden: true}
      @ObjectModel.mandatory:true
      @UI.lineItem: [ { position: 60 } ]             //note:3238871

      @UI.fieldGroup: [ {qualifier: 'ValidityPeriod', position: 20} ]   //note:3238871

      ValidityEndDate,

      @Search: { defaultSearchElement: true, ranking: #HIGH, fuzzinessThreshold: 0.85} //note:3145795

      @Consumption.filter: {hidden: true}
      @Semantics.eMail.type:  [ #PREF ,  #WORK ]  //note:3238871

      @Semantics.eMail.address: true
      @ObjectModel.mandatory: false                  //note:3238871

      //@UI.lineItem.importance: #HIGH                  //note:3238871

      @UI.lineItem: [ { position: 40 } ]              //note:3238871

      @ObjectModel.readOnly: false               //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup:[ {qualifier: 'Contact', position: 10} ]  //note:3238871   

      EmailAddress,

      @Consumption.filter: {hidden: true}
      @EndUserText: { label: 'User Name', quickInfo: 'User Name' }
      @Consumption.valueHelpDefinition.entity : [ {name: 'C_BPUSRASSIGNMENTVH', element: 'UserID'} ]  //note:3238871   

      @UI.fieldGroup:[ {qualifier: 'BusinessUser', position: 10} ]                                    //note:3238871

      UserID,


      // // |||||| Addtional Columns


      @Consumption.filter: {hidden: true}
      @EndUserText: { label: 'Phone', quickInfo: 'Phone' }
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup: [ {qualifier: 'Telephone', position: 20} ]    //note:3238871

      PhoneNumber,

      @Consumption.filter: {hidden: true}
      @EndUserText: { label: 'Phone Extension', quickInfo: 'Phone Extension' }
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871  

      @UI.fieldGroup: [ {qualifier: 'Telephone', position: 30} ]   //note:3238871

      PhoneNumberExtension,

      @Consumption.filter: {hidden: true}
      @EndUserText: { label: 'Mobile', quickInfo: 'Mobile' }
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup: [ {qualifier: 'MobilePhone', position: 20} ]  //note:3238871

      MobilePhoneNumber,

      @Consumption.filter: {hidden: true}
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup:[ {qualifier: 'Contact', position: 20} ]    //note:3238871

      @EndUserText: { label: 'Correspondence Language', quickInfo: 'Correspondence Language' }  
      @Consumption.valueHelpDefinition: [ { entity : {name: 'I_Language', element: 'Language'}  } ]  //note:3238871

      CorrespondenceLanguage,

      @Consumption.filter: {hidden: true}
      @Semantics.name.fullName: true
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup: [ {qualifier: 'NameData', position: 50} ]  //note:3238871  

      PersonFullName,

      @Consumption.filter: {hidden: true}
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup: [ {qualifier: 'WorkPlaceData', position: 10} ]  //note:3238871

      Building,

      @Consumption.filter: {hidden: true}
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup:[ {qualifier: 'WorkPlaceData', position: 20} ]  //note:3238871

      RoomNumber,

      @Consumption.filter: {hidden: true}
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup: [ {qualifier: 'WorkPlaceData', position: 30} ]  //note:3238871

      Department,

      @Consumption.filter: {hidden: true}
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup: [ {qualifier: 'WorkPlaceData', position: 40} ]  //note:3238871

      FunctionalTitleName,


      // |||||| Additional Fields in Object Page



      @Consumption.filter: {hidden: true}
      @EndUserText: { label: 'Country/Region Code', quickInfo: 'Country/Region Code' }
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup: [  {qualifier: 'Telephone', position: 10} ]   //note:3238871

      @Consumption.valueHelpDefinition: [ { entity : { name: 'I_CountryVH', element: 'Country' } } ]   //note:3238871

      DestinationLocationCountry,

      @ObjectModel.readOnly: true
      @Consumption.filter: {hidden: true}
      @EndUserText: { label: 'User Description', quickInfo: 'User Description' }
      @UI.fieldGroup: [{qualifier: 'BusinessUser', position: 20}]
      UserDescription,

      @Consumption.filter: {hidden: true}
      @EndUserText: { label: 'Country/Region Code', quickInfo: 'Country/Region Code' }
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup: [ {qualifier: 'MobilePhone', position: 10} ]   //note:3238871

      @Consumption.valueHelpDefinition: [ { entity : { name: 'I_CountryVH', element: 'Country' } } ]   //note:3238871

      MblPhoneDestinationLocCountry,

      @Consumption.filter: {hidden: true}
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup: [ {qualifier: 'NameData', position: 10} ]   //note:3238871

      BirthName,

      @Consumption.filter: {hidden: true}
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup:[ {qualifier: 'NameData', position: 20} ]  //note:3238871

      MiddleName,

      @Consumption.filter: {hidden: true}
      @EndUserText: [ { label: 'Academic Title', quickInfo: 'Academic Title' } ]  //note:3238871 

      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup:[ {qualifier: 'NameData', position: 30} ]   //note:3238871

      @Consumption.valueHelpDefinition:[ { entity : {name: 'C_AcademicTitleVH', element: 'AcademicTitle'} } ]  //note:3238871

      AcademicTitle,

      @Consumption.filter: {hidden: true}
      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup:[  {qualifier: 'NameData', position: 40} ]  //note:3238871

      Initials,


      //// |||||| Other fields needed but hidden

      @UI.selectionField: [ { position:30 } ]  //note:3238871

      @EndUserText:[  { label: 'User Name', quickInfo: 'User Name' } ]  //note:3238871

      UserName,

      @UI.hidden: true
      @ObjectModel.readOnly: true
//     _cust.BusinessPartnerRoleType,

      BusinessPartnerRoleCategory as BusinessPartnerRoleType, 

      @UI.hidden: true
      AuthorizationGroup,

      @UI.hidden: true
      IsBusinessPurposeCompleted,

      @UI.hidden: true
      @ObjectModel.readOnly: true
      _ChangeDocID.BusinessPartnerAddressID,

      @UI.hidden: true
      @ObjectModel.readOnly: true
      _ChangeDocID.AddressUUID,


      
      @UI.selectionField: [ { position:40 } ]  //note:3238871

      @ObjectModel.readOnly: false                  //note:3238871

      @ObjectModel.enabled: true                    //note:3238871

      @UI.fieldGroup:[ {qualifier: 'ValidityPeriod', position: 30} ]   //note:3238871

      @EndUserText: { label: 'Marked for Archiving', quickInfo: 'Marked for Archiving' }
      @Consumption: {filter: {selectionType: #SINGLE, defaultValue: ' ' }}
      @Consumption.valueHelpDefinition.entity : {name: 'C_RsceMrkdForDeletionVH', element: 'IndicatorValue'} 
      IsMarkedForArchiving,

      @Consumption.hidden:true
      DataControllerSet,
      @Consumption.hidden:true
      DataController1,
      @Consumption.hidden:true
      DataController2,
      @Consumption.hidden:true
      DataController3,
      @Consumption.hidden:true
      DataController4,
      @Consumption.hidden:true
      DataController5,
      @Consumption.hidden:true
      DataController6,
      @Consumption.hidden:true
      DataController7,
      @Consumption.hidden:true
      DataController8,
      @Consumption.hidden:true
      DataController9,
      @Consumption.hidden:true
      DataController10
}
 where
 BusinessPartnerRoleCategory = 'WFM001' 
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_BUSINESSUSERTP",
"P_BPUSERPRSNLADDRNMBRCONCAT"
],
"ASSOCIATED":
[
"P_BPUSERPRSNLADDRNMBRCONCAT"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/