@AbapCatalog.sqlViewName: 'CHCMPROCESS'
@AbapCatalog.compiler.compareFilter: true
@AbapCatalog.preserveKey: true
@AccessControl.authorizationCheck: #NOT_REQUIRED
@AccessControl.privilegedAssociations: ['_HCMProcessStep', '_HCMProcessInitiator', '_HCMAffcdObjQuickView']
@ClientHandling.algorithm: #SESSION_VARIABLE
//@Feature: 'SW:H4S4_SFWS_SC_01'
@VDM.viewType: #CONSUMPTION
@Metadata.allowExtensions: true
@ObjectModel.query.implementedBy: 'ABAP:CL_HRFIO_ASR_PROCESS_ANALYTICS'
@ObjectModel: { representativeKey: 'HCMProcessUUID',
usageType.sizeCategory: #L,
usageType.dataClass: #TRANSACTIONAL,
usageType.serviceQuality: #C }
@EndUserText.label: 'HCM Process'
/*+[hideWarning] { "IDS" : [ "CARDINALITY_CHECK" ] }*/
define view C_HCMProcess
as select from ihcmprocess as I_HCMProcess
association [0..*] to C_HCMProcessStep as _HCMProcessStep on $projection.HCMProcessUUID = _HCMProcessStep.HCMProcessUUID
association [0..1] to I_HCMProcessStatusVH as _HCMProcessStatus on $projection.HCMProcessStatus = _HCMProcessStatus.HCMProcessStatus
association [0..1] to I_HCMProcessName as _HCMProcessName on $projection.HCMProcessNameCode = _HCMProcessName.HCMProcessNameCode
association [0..1] to I_HCMProcessApplicationTypeVH as _HCMProcessApplicationType on $projection.HCMProcessApplicationType = _HCMProcessApplicationType.HCMProcessApplicationType
association [0..1] to I_HCMProcessInitiator as _HCMProcessInitiator on $projection.HCMProcessInitiatorUserID = _HCMProcessInitiator.HCMProcessInitiatorUserID
association [0..1] to C_HCMProcAffcdObjQuickVw as _HCMAffcdObjQuickView on $projection.HCMProcessAffectedObjectType = _HCMAffcdObjQuickView.HCMObjectType
and $projection.HCMProcessAffectedObject = _HCMAffcdObjQuickView.HCMProcessAffectedObject
association [0..1] to I_HCMProcessAffectedObjectType as _HCMProcessAffectedObjectType on $projection.HCMProcessAffectedObjectType = _HCMProcessAffectedObjectType.HCMObjectType
association [0..1] to I_HCMPersonnelArea as _HCMPersonnelArea on $projection.HCMPersonnelArea = _HCMPersonnelArea.HCMPersonnelArea
association [0..1] to I_HCMPersonnelSubarea as _HCMPersonnelSubarea on $projection.HCMPersonnelSubarea = _HCMPersonnelSubarea.HCMPersonnelSubarea
and $projection.HCMPersonnelArea = _HCMPersonnelSubarea.HCMPersonnelArea
association [0..1] to I_HCMEmployeeGroup as _HCMEmployeeGroup on $projection.HCMEmployeeGroup = _HCMEmployeeGroup.HCMEmployeeGroup
association [0..1] to I_HCMEmployeeSubgroup as _HCMEmployeeSubgroup on $projection.HCMEmployeeSubgroup = _HCMEmployeeSubgroup.HCMEmployeeSubgroup
association [0..1] to I_CompanyCode as _HCMEmployeeCompanyCode on $projection.HCMEmployeeCompanyCode = _HCMEmployeeCompanyCode.CompanyCode
association [0..1] to I_HCMPositionVH as _HCMEmployeePosition on $projection.HCMEmployeePosition = _HCMEmployeePosition.HCMPosition
and $projection.HCMProcessAffectedObjectType = _HCMEmployeePosition.HCMObjectType
association [0..1] to I_HCMProcInitiatorRole as _HCMProcInitiatorRole on $projection.HCMProcessInitiatorRole = _HCMProcInitiatorRole.HCMProcessInitiatorRole
association [0..1] to I_HCMProcessGroup as _HCMProcessGroup on $projection.HCMProcessGroup = _HCMProcessGroup.HCMProcessGroup
association [0..*] to I_HCMOrganizationalUnit as _HCMOrganizationalUnit on $projection.HCMOrganizationalUnit = _HCMOrganizationalUnit.HCMOrganizationalUnit
{
@ObjectModel.mandatory: true
key hcmprocessuuid as HCMProcessUUID,
@Aggregation.default: #SUM
hcmnmbrofprocesses as HCMNmbrOfProcesses,
hcmprocessreferencenumber as HCMProcessReferenceNumber,
@AnalyticsDetails.query.display: #KEY_TEXT // Required?
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMProcessName',
element: 'HCMProcessNameCode' }
}]
@ObjectModel.foreignKey.association: '_HCMProcessName'
hcmprocessnamecode as HCMProcessNameCode,
_HCMProcessName._Text[1:Language=$session.system_language].HCMProcessDescription,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMProcessInitiatorVH',
element: 'HCMProcessInitiatorUserID' }
}]
@ObjectModel.foreignKey.association: '_HCMProcessInitiator'
hcmprocessinitiatoruserid as HCMProcessInitiatorUserID,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMProcInitiatorRole',
element: 'HCMProcessInitiatorRole' }
}]
@ObjectModel.foreignKey.association: '_HCMProcInitiatorRole'
hcmprocessinitiatorrole as HCMProcessInitiatorRole,
//// FKA Required?
// VH Required?
hcmprocessrecruitingscenario as HCMProcessRecruitingScenario,
@AnalyticsDetails.query.display: #TEXT // Required?
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMProcessStatusVH',
element: 'HCMProcessStatus' }
}]
@ObjectModel.foreignKey.association: '_HCMProcessStatus'
hcmprocessstatus as HCMProcessStatus,
hcmprocessstatuscriticality as HCMProcessStatusCriticality,
@Aggregation.default: #SUM
hcmnmbrofcompletedprocesses as HCMNmbrOfCompletedProcesses,
@Aggregation.default: #SUM
hcmnmbrofopenprocesses as HCMNmbrOfOpenProcesses,
@Aggregation.default: #SUM
hcmnmbrofincorrectprocesses as HCMNmbrOfIncorrectProcesses,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMProcessApplicationTypeVH',
element: 'HCMProcessApplicationType' }
}]
@ObjectModel.foreignKey.association: '_HCMProcessApplicationType'
hcmprocessapplicationtype as HCMProcessApplicationType,
@Aggregation.default: #SUM
hcmnmbrofpersadminprocesses as HCMNmbrOfPersAdminProcesses,
@Aggregation.default: #SUM
hcmnmbrofpersdevprocesses as HCMNmbrOfPersDevProcesses,
@Consumption.semanticObject: 'ProcessAdministration'
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMProcessAffectedObject',
element: 'HCMProcessAffectedObject' }
}]
@ObjectModel.foreignKey.association: '_HCMAffcdObjQuickView'
hcmprocessaffectedobject as HCMProcessAffectedObject,
@Consumption.filter.selectionType: #INTERVAL
hcmprocessstartdate as HCMProcessStartDate,
hcmprocessstarttime as HCMProcessStartTime,
hcmprocessstartdatetime as HCMProcessStartDateTime,
hcmprocessstarttimediff as HCMProcessStartTimeDiff,
hcmprocesscompletiondate as HCMProcessCompletionDate,
hcmprocesscompletiontime as HCMProcessCompletionTime,
hcmprocesscompltndatetime as HCMProcessCompltnDateTime,
@Aggregation.default: #SUM
@Semantics.quantity.unitOfMeasure: 'HCMProcExecutionDurationUnit'
fltp_to_dec(hcmprocexecutionduration as abap.dec(13,2)) as HCMProcExecutionDuration,
//HCMProcTotalExecutionTime,
@Semantics.unitOfMeasure: true
hcmprocexecutiondurationunit as HCMProcExecutionDurationUnit,
@Aggregation.default: #SUM
@AnalyticsDetails.query.decimals: 0
@UI.dataPoint.valueFormat.numberOfFractionalDigits: 1
//@Semantics.quantity.unitOfMeasure: 'HCMProcExecutionTimeInDaysUnit'
fltp_to_dec(hcmprocexecutiontimeindays as abap.dec(13,2)) as HCMProcExecutionTimeInDays,
//@Semantics.unitOfMeasure: true
hcmprocexecutiontimeindaysunit as HCMProcExecutionTimeInDaysUnit,
hcmprocesscompltntimediff as HCMProcessCompltnTimeDiff,
hcmprocessnumberofattachments as HCMProcessNumberOfAttachments,
@Semantics.booleanIndicator:true
hcmprocesshaserror as HCMProcessHasError,
hcmprocessobjectversionvalue as HCMProcessObjectVersionValue,
hcmprocessbusinessuserid as HCMProcessBusinessUserID,
hcmprocaffcdobjdesc as HCMProcAffcdObjDesc,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMProcessAffectedObjectType',
element: 'HCMObjectType' }
}]
@ObjectModel.foreignKey.association: '_HCMProcessAffectedObjectType'
hcmprocessaffectedobjecttype as HCMProcessAffectedObjectType,
hcmprocessgroupreferencenumber as HCMProcessGroupReferenceNumber,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMProcessGroup',
element: 'HCMProcessGroup' }
}]
@ObjectModel.foreignKey.association: '_HCMProcessGroup'
hcmprocessgroup as HCMProcessGroup,
hcmprocesseffectivedate as HCMProcessEffectiveDate,
hcmprocstartmonth as HCMProcStartMonth,
hcmprocstartquarter as HCMProcStartQuarter,
hcmprocstartweek as HCMProcStartWeek,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMOrganizationalUnit',
element: 'HCMOrganizationalUnit' }
}]
@ObjectModel.foreignKey.association: '_HCMOrganizationalUnit'
hcmorganizationalunit as HCMOrganizationalUnit,
@Semantics.quantity.unitOfMeasure: 'HCMProcExecutionDurationUnit'
@Aggregation.default: #AVG
cast (0 as abap.dec (13,2)) as HCMProcAvgExecutionDuration,
@Aggregation.default: #SUM
cast ('00' as abap.numc(2)) as HCMProcessErrorRate,
@Semantics.quantity.unitOfMeasure: 'HCMProcessProcgTimeUnit'
@Aggregation.default: #AVG
cast (0 as abap.dec (13,2)) as HCMProcAvgProcessingDuration,
@Semantics.quantity.unitOfMeasure: 'HCMProcessRetentionTimeUnit'
@Aggregation.default: #AVG
cast (0 as abap.dec (13,2)) as HCMProcAvgRetentionDuration,
@Aggregation.default: #SUM
cast ('00' as abap.numc(2)) as HCMProcessOpenRate, // open process percentage to be filled from
@Aggregation.default: #SUM
cast ('00' as abap.numc(2)) as HCMProcessCompletionRate,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMPersonnelAreaVH',
element: 'HCMPersonnelArea' }
}]
@ObjectModel.foreignKey.association: '_HCMPersonnelArea'
hcmpersonnelarea as HCMPersonnelArea,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMPersonnelSubarea',
element: 'HCMPersonnelSubarea' }
}]
@ObjectModel.foreignKey.association: '_HCMPersonnelSubarea'
hcmpersonnelsubarea as HCMPersonnelSubarea,
// HCMProcessDescription,
// cast ('name' as abap.char( 400 )) as HCMProcProcessorName,
@Aggregation.default: #SUM
@Semantics.quantity.unitOfMeasure: 'HCMProcessProcgTimeUnit'
hcmprocessprocessingduration as HCMProcessProcessingDuration,
@Aggregation.default: #SUM
@Semantics.quantity.unitOfMeasure: 'HCMProcessRetentionTimeUnit'
hcmprocessretentionduration as HCMProcessRetentionDuration,
@Semantics.unitOfMeasure: true
hcmprocessprocgtimeunit as HCMProcessProcgTimeUnit,
@Semantics.unitOfMeasure: true
hcmprocessretentiontimeunit as HCMProcessRetentionTimeUnit,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMEmployeeGroup',
element: 'HCMEmployeeGroup' }
}]
@ObjectModel.foreignKey.association: '_HCMEmployeeGroup'
hcmemployeegroup as HCMEmployeeGroup,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMEmployeeSubgroup',
element: 'HCMEmployeeSubgroup' }
}]
@ObjectModel.foreignKey.association: '_HCMEmployeeSubgroup'
hcmemployeesubgroup as HCMEmployeeSubgroup,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_CompanyCodeVH',
element: 'CompanyCode' }
}]
@ObjectModel.foreignKey.association: '_HCMEmployeeCompanyCode'
hcmemployeecompanycode as HCMEmployeeCompanyCode,
@Consumption.valueHelpDefinition: [
{ entity: { name: 'I_HCMPositionVH',
element: 'HCMPosition' }
}]
@ObjectModel.foreignKey.association: '_HCMEmployeePosition'
hcmemployeeposition as HCMEmployeePosition,
/* Associations */
/* @ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMCurrentBasicPay,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMCurOrglAssgmt,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMCurrentPersonalData,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMProcessScenario,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMProcessStepDetails,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMProcessAdditionalInfo,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_OrgUnitName,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_ProcessCompletion,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_ProcessStart,
*/
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMProcessStatus,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMProcessName,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMProcessStep,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMProcessApplicationType,
// @ObjectModel.filter.enabled: false
// @ObjectModel.sort.enabled: false
// _EmployeeDetails,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMProcessInitiator,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMAffcdObjQuickView,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMProcessAffectedObjectType,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMPersonnelArea,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMPersonnelSubarea,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMEmployeeGroup,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMEmployeeSubgroup,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMEmployeeCompanyCode,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMProcInitiatorRole,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMEmployeePosition,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
_HCMProcessGroup,
@ObjectModel.filter.enabled: false
@ObjectModel.sort.enabled: false
@Consumption.filter.businessDate.at: true
_HCMOrganizationalUnit
}