P_RSHProjAssgmtChangeDocs

DDL: P_RSHPROJASSGMTCHANGEDOCS SQL: PRSHPROJASGCD Type: view CONSUMPTION

Change documents for C_RSHProjectAssignments

P_RSHProjAssgmtChangeDocs is a Consumption CDS View that provides data about "Change documents for C_RSHProjectAssignments" in SAP S/4HANA. It reads from 2 data sources (I_ChangeDocumentItem, I_ChangeDocument) and exposes 34 fields with key fields ChangeDocObjectClass, ChangeDocObject, ChangeDocument, DatabaseTable, ChangeDocTableKey. It has 1 association to related views.

Data Sources (2)

SourceAliasJoin Type
I_ChangeDocumentItem ChangeDocItem left_outer
I_ChangeDocument ChangeHeader from

Parameters (2)

NameTypeDefault
P_StartDate syst_datum
P_EndDate syst_datum

Associations (1)

CardinalityTargetAliasCondition
[0..1] I_UserContactCard UserDetails ChangeHeader.CreatedByUser = UserDetails.ContactCardID

Annotations (9)

NameValueLevelField
AbapCatalog.sqlViewName PRSHPROJASGCD view
ObjectModel.usageType.dataClass #MIXED view
ObjectModel.usageType.serviceQuality #X view
ObjectModel.usageType.sizeCategory #XL view
VDM.viewType #CONSUMPTION view
VDM.private true view
ClientHandling.algorithm #SESSION_VARIABLE view
AccessControl.personalData.blocking #REQUIRED view
EndUserText.label Change documents for C_RSHProjectAssignments view

Fields (34)

KeyFieldSource TableSource FieldDescription
KEY ChangeDocObjectClass I_ChangeDocument ChangeDocObjectClass
KEY ChangeDocObject I_ChangeDocument ChangeDocObject
KEY ChangeDocument I_ChangeDocument ChangeDocument
KEY DatabaseTable I_ChangeDocumentItem DatabaseTable
KEY ChangeDocTableKey I_ChangeDocumentItem ChangeDocTableKey
KEY ChangeDocItemChangeType I_ChangeDocumentItem ChangeDocItemChangeType
CreatedByUser I_ChangeDocument CreatedByUser
CreationDate I_ChangeDocument CreationDate
CreationTime I_ChangeDocument CreationTime
ResourceDemandUUID ChangeDocAMDP ResourceDemandUUID
EmploymentInternalID Resource EmploymentInternalID
FullName
Person
PersonExternalID
IsBusinessPurposeCompleted
AuthorizationGroup
CompanyCode Resource CompanyCode
CostCenter Resource CostCenter
EngagementProject Request EngagementProject
EngagementProjectName
WorkPackageName
WorkItem Request WorkItem
WorkItemName
Role
IsBusPrpsCmpltdCustomer
CustomerAuthznGrp
IsBusPrpsCmpltdPreferredRes
PreferredResAuthznGrp
IsBusPrpsCmpltdProjectManager
ProjectManagerAuthznGrp
ServiceOrganization Request ServiceOrganization
ProjectVisibility Request ProjectVisibility
numc90asTotalHoursOld
numc90asTotalHoursNew
@AbapCatalog.sqlViewName: 'PRSHPROJASGCD'
@ObjectModel.usageType.dataClass: #MIXED
@ObjectModel.usageType.serviceQuality: #X
@ObjectModel.usageType.sizeCategory: #XL
@VDM.viewType: #CONSUMPTION
@VDM.private: true
@ClientHandling.algorithm: #SESSION_VARIABLE
@AccessControl.personalData.blocking: #REQUIRED
@EndUserText.label: 'Change documents for C_RSHProjectAssignments'

define view P_RSHProjAssgmtChangeDocs
  with parameters
    P_StartDate : syst_datum,
    P_EndDate   : syst_datum
  as select from           I_ChangeDocument                                             as ChangeHeader
    left outer to one join P_RSHProjectAsgChangeDocsAMDP( P_SAPClient:$session.client ) as ChangeDocAMDP on  ChangeHeader.ChangeDocObjectClass = ChangeDocAMDP.ChangeDocObjectClass
                                                                                                         and ChangeHeader.ChangeDocument       = ChangeDocAMDP.ChangeDocument
                                                                                                         and ChangeHeader.ChangeDocObject      = ChangeDocAMDP.ChangeDocObject

    left outer to one join P_RSHResourceList( P_StartDate: $parameters.P_StartDate, P_EndDate: $parameters.P_EndDate )  as Resource      on Resource.EmploymentInternalID = right(
      ChangeHeader.ChangeDocObject, 8
    )

    left outer to one join P_RSHStaffingRequestDetails                                  as Request       on Request.ResourceDemandUUID = ChangeDocAMDP.ResourceDemandUUID

    left outer join        I_ChangeDocumentItem                                         as ChangeDocItem on  ChangeDocItem.ChangeDocObject      = ChangeHeader.ChangeDocObject
                                                                                                         and ChangeDocItem.ChangeDocObjectClass = ChangeHeader.ChangeDocObjectClass
                                                                                                         and ChangeDocItem.ChangeDocument       = ChangeHeader.ChangeDocument

  association [0..1] to I_UserContactCard as UserDetails on ChangeHeader.CreatedByUser = UserDetails.ContactCardID
{

  key ChangeHeader.ChangeDocObjectClass,
  key ChangeHeader.ChangeDocObject,
  key ChangeHeader.ChangeDocument,
  key ChangeDocItem.DatabaseTable,
  key ChangeDocItem.ChangeDocTableKey,
  key ChangeDocItem.ChangeDocItemChangeType,

      ChangeHeader.CreatedByUser,
      ChangeHeader.CreationDate,
      ChangeHeader.CreationTime,

      cast(
      case 
      when UserDetails.FullName = '' or UserDetails.FullName is null then
        ChangeHeader.CreatedByUser
      else
        UserDetails.FullName
      end as rsh_ps_employee_name preserving type )                                                                                                                                     as UserDescription,      

      ChangeDocAMDP.ResourceDemandUUID,

      //Resource

      Resource.EmploymentInternalID,
      // Resource.PersonnelNumber,

      Resource._Person.PersonFullName as FullName,
      //Resource._Employee.Employee,

      Resource._Person.Person,
      Resource._Person.PersonExternalID,
      Resource._Person.IsBusinessPurposeCompleted,
      Resource._Person.AuthorizationGroup,
      Resource.CompanyCode,
      Resource.CostCenter,

      // Request

      Request.EngagementProject,
      
      Request._Project.EngagementProjectName,
      Request._WorkPackage.WorkPackageName,
      Request.WorkItem,
      Request._WorkItem.WorkItemName,
      cast(Request._Role._Text[1:Language = $session.system_language].EngagementProjResourceText as rsh_ps_resource_role preserving type )               as Role,
     
      Request._Customer.IsBusinessPurposeCompleted as  IsBusPrpsCmpltdCustomer,
      Request._Customer.AuthorizationGroup as CustomerAuthznGrp,
      Request._PreferredEmployee._WorkforcePerson.IsBusinessPurposeCompleted as  IsBusPrpsCmpltdPreferredRes,
      Request._PreferredEmployee._WorkforcePerson.AuthorizationGroup as PreferredResAuthznGrp,
      Request._ProjectManagerEmployee._WorkforcePerson.IsBusinessPurposeCompleted as IsBusPrpsCmpltdProjectManager,
      Request._ProjectManagerEmployee._WorkforcePerson.AuthorizationGroup as ProjectManagerAuthznGrp,
      
      Request.ServiceOrganization,
      Request.ProjectVisibility,

      // Change attributes

      cast(
      case ChangeDocItem.ChangeDocDatabaseTableField
      when 'PROJASSIGNMENTTOTALHOURS' then
        ChangeDocItem.ChangeDocPreviousFieldValue
        else ''
      end as abap.numc(90) )                                                                                                                             as TotalHoursOld,

      cast(
      case ChangeDocItem.ChangeDocDatabaseTableField
      when 'PROJASSIGNMENTTOTALHOURS'then
        ChangeDocItem.ChangeDocNewFieldValue
        else ''
      end as abap.numc(90) )                                                                                                                             as TotalHoursNew,

      cast( case ChangeDocItem.ChangeDocDatabaseTableField
        when 'PROJASSIGNMENTSTARTDATE'then
          ChangeDocItem.ChangeDocNewFieldValue
          else '19000101'
        end as rsh_ps_assignment_date )                                                                                                                  as StartDateNew,

      cast( case ChangeDocItem.ChangeDocDatabaseTableField
      when 'PROJASSIGNMENTSTARTDATE'then
        ChangeDocItem.ChangeDocPreviousFieldValue
      else '19000101'
      end as rsh_ps_assignment_date )                                                                                                                    as StartDateOld,


      cast( case ChangeDocItem.ChangeDocDatabaseTableField
        when 'PROJASSIGNMENTENDDATE'then
          ChangeDocItem.ChangeDocNewFieldValue
      else '19000101'
      end as rsh_ps_assignment_date )                                                                                                                    as EndDateNew,

      cast( case ChangeDocItem.ChangeDocDatabaseTableField
      when 'PROJASSIGNMENTENDDATE'then
        ChangeDocItem.ChangeDocPreviousFieldValue
      else '19000101'
      end as rsh_ps_assignment_date )                                                                                                                    as EndDateOld

}

where
  ChangeHeader.ChangeDocObjectClass = 'RSH_ASGN_CHDOC'
/*+[internal] {
"BASEINFO":
{
"FROM":
[
"I_CHANGEDOCUMENT",
"I_CHANGEDOCUMENTITEM",
"I_CUSTOMER",
"I_ENGAGEMENTPROJECT",
"I_ENGAGEMENTPROJECTRESOURCE",
"I_ENGMNTPROJRESOURCETEXT",
"I_PERSONWORKAGREEMENT_1",
"I_USERCONTACTCARD",
"I_WORKFORCEPERSON",
"I_WORKPACKAGE",
"I_WORKPACKAGEWORKITEM",
"P_RSHRESOURCELIST",
"P_RSHSTAFFINGREQUESTDETAILS"
],
"ASSOCIATED":
[
"I_USERCONTACTCARD"
],
"BASE":
[],
"ANNO_REF":
[],
"SCALAR_FUNCTION":
[],
"VERSION":0,
"ANNOREF_EVALUATION_ERROR":""
}
}*/