R_WORKASSIGNMENTDETAILSALL
Work assignment Details All
R_WORKASSIGNMENTDETAILSALL is a CDS View in S/4HANA. Work assignment Details All. It contains 15 fields. 3 CDS views read from this table.
CDS Views using this table (3)
| View | Type | Join | VDM | Description |
|---|---|---|---|---|
| R_WorkAssignmentDetail | view_entity | from | COMPOSITE | Details for Work Assignment |
| R_WorkAssignmentDetailsTP | view_entity | from | TRANSACTIONAL | Work Assignment Details TP |
| R_WorkAssignmentDetailsTP_2 | view_entity | from | TRANSACTIONAL | Work Assignment Details TP |
Fields (15)
| Key | Field | CDS Fields | Used in Views |
|---|---|---|---|
| KEY | StartDate | StartDate | 3 |
| CompanyCode | CompanyCode | 3 | |
| ControllingArea | ControllingArea | 1 | |
| CostCenter | CostCenter | 3 | |
| EmploymentPercent | EmploymentPercent | 3 | |
| EndDate | EndDate | 3 | |
| IsBlocked | IsBlocked | 3 | |
| ManagerAssignmentExternalID | ManagerEmployee | 3 | |
| ManagerAssignmentID | ManagerAssignmentID | 3 | |
| WeeklyWorkingDays | WeeklyWorkingDays | 3 | |
| WeeklyWorkingHours | WeeklyWorkingHours | 3 | |
| WorkAssignment | WorkAssignment | 3 | |
| WorkforceAssignmentStatus | WorkforceAssignmentStatus | 3 | |
| WorkforcePersonJobCode | WorkforcePersonJobCode | 3 | |
| WorkforcePersonJobTitle | WorkforcePersonJobTitle | 3 |
@AbapCatalog.viewEnhancementCategory: [#NONE]
@AccessControl.authorizationCheck: #NOT_REQUIRED
@EndUserText.label: 'Work assignment Details All'
@Metadata.ignorePropagatedAnnotations: true
@VDM: {
viewType: #BASIC,
lifecycle.contract.type: #SAP_INTERNAL_API
}
@ObjectModel.usageType:{
serviceQuality: #C,
sizeCategory: #XL,
dataClass: #MASTER
}
//@Consumption.dbHints: [ 'USE_HEX_PLAN' ]
@Consumption.dbHints: [ '&PREFER_JOIN_WITH_FDA 0&', 'USE_HEX_PLAN' ]
//This CDS gives the Active job details + inactive Job details against the Global assignment
//Union I => This Union gives all the active Job details
define view entity R_WorkAssignmentDetailsAll
as select from wfd_d_assgmtdets as _AssignmentDetails
inner join R_WorkAssignmentKeyMap as _AssignmentKeyMap on _AssignmentKeyMap.WorkforceAssignment = _AssignmentDetails.workforce_assgmt_id
{
key _AssignmentDetails.workforce_assgmt_id as WorkAssignment,
key _AssignmentDetails.start_date as StartDate,
key _AssignmentDetails.end_date as EndDate,
key _AssignmentKeyMap.WorkforcePersonExternalID as WorkforcePersonExternalID,
_AssignmentDetails.employment_status as WorkforceAssignmentStatus,
_AssignmentDetails.employment_percent as EmploymentPercent,
_AssignmentDetails.company_code as CompanyCode,
_AssignmentDetails.cost_center as CostCenter,
_AssignmentDetails.controlling_area as ControllingArea,
_AssignmentDetails.weekly_working_hours as WeeklyWorkingHours,
_AssignmentDetails.weekly_working_days as WeeklyWorkingDays,
_AssignmentDetails.job_title as WorkforcePersonJobTitle,
_AssignmentDetails.job_code as WorkforcePersonJobCode,
_AssignmentDetails.manager_work_assgmt as ManagerAssignmentID,
_AssignmentDetails.country as Country2DigitISOCode,
_AssignmentDetails.manager_work_assignment_ext_id as ManagerAssignmentExternalID,
@Semantics.booleanIndicator
_AssignmentDetails.main_employment_indicator as WorkforceAssignmentIsPrimary,
_AssignmentDetails.block_ind as IsBlocked
}
where
_AssignmentDetails.company_code is not initial
and _AssignmentDetails.technical_inactive_ind is initial
// and _AssignmentDetails.block_ind = ' '
and _AssignmentDetails.employment_status = '1'
//Union II => This Union gives the inactive Job details => Non Technical Job details
//This also includes the one which Customer sent manualy
union select from wfd_d_assgmtdets as _AssignmentDetails
inner join R_WorkAssignmentKeyMap as _AssignmentKeyMap on _AssignmentKeyMap.WorkforceAssignment = _AssignmentDetails.workforce_assgmt_id
//Check any Active work agreement(Global Assignment) exist against this inactive record
inner join R_WorkAssignmentDetailsActive as _WorkAssignmentDetailsActive on _WorkAssignmentDetailsActive.WorkforcePersonExternalID = _AssignmentKeyMap.WorkforcePersonExternalID
and _WorkAssignmentDetailsActive.StartDate = _AssignmentDetails.start_date
and _WorkAssignmentDetailsActive.EndDate = _AssignmentDetails.end_date
//To avoid the real technial records => Global Assignments never end with high end date
and _WorkAssignmentDetailsActive.EndDate <> '99991231'
//Check Active work agreement(Global Assignment) exist against this inactive record
and _AssignmentDetails.employment_status = '0'
{
key _AssignmentDetails.workforce_assgmt_id as WorkAssignment,
key _AssignmentDetails.start_date as StartDate,
key _AssignmentDetails.end_date as EndDate,
key _AssignmentKeyMap.WorkforcePersonExternalID as WorkforcePersonExternalID,
_AssignmentDetails.employment_status as WorkforceAssignmentStatus,
_AssignmentDetails.employment_percent as EmploymentPercent,
_AssignmentDetails.company_code as CompanyCode,
_AssignmentDetails.cost_center as CostCenter,
_AssignmentDetails.controlling_area as ControllingArea,
_AssignmentDetails.weekly_working_hours as WeeklyWorkingHours,
_AssignmentDetails.weekly_working_days as WeeklyWorkingDays,
_AssignmentDetails.job_title as WorkforcePersonJobTitle,
_AssignmentDetails.job_code as WorkforcePersonJobCode,
_AssignmentDetails.manager_work_assgmt as ManagerAssignmentID,
_AssignmentDetails.country as Country2DigitISOCode,
_AssignmentDetails.manager_work_assignment_ext_id as ManagerAssignmentExternalID,
_AssignmentDetails.main_employment_indicator as WorkforceAssignmentIsPrimary,
_AssignmentDetails.block_ind as IsBlocked
}
where
_AssignmentDetails.employment_status = '0'
and _WorkAssignmentDetailsActive.WorkAssignment is not initial
and(
_AssignmentDetails.company_code is initial
or _AssignmentDetails.technical_inactive_ind is not initial
)
//Union III => This Union gives the inactive Job details against the Global assignment
union select from wfd_d_assgmtdets as _AssignmentDetails
inner join R_WorkAssignmentKeyMap as _AssignmentKeyMap on _AssignmentKeyMap.WorkforceAssignment = _AssignmentDetails.workforce_assgmt_id
{
key _AssignmentDetails.workforce_assgmt_id as WorkAssignment,
key _AssignmentDetails.start_date as StartDate,
key _AssignmentDetails.end_date as EndDate,
key _AssignmentKeyMap.WorkforcePersonExternalID as WorkforcePersonExternalID,
_AssignmentDetails.employment_status as WorkforceAssignmentStatus,
_AssignmentDetails.employment_percent as EmploymentPercent,
_AssignmentDetails.company_code as CompanyCode,
_AssignmentDetails.cost_center as CostCenter,
_AssignmentDetails.controlling_area as ControllingArea,
_AssignmentDetails.weekly_working_hours as WeeklyWorkingHours,
_AssignmentDetails.weekly_working_days as WeeklyWorkingDays,
_AssignmentDetails.job_title as WorkforcePersonJobTitle,
_AssignmentDetails.job_code as WorkforcePersonJobCode,
_AssignmentDetails.manager_work_assgmt as ManagerAssignmentID,
_AssignmentDetails.country as Country2DigitISOCode,
_AssignmentDetails.manager_work_assignment_ext_id as ManagerAssignmentExternalID,
_AssignmentDetails.main_employment_indicator as WorkforceAssignmentIsPrimary,
_AssignmentDetails.block_ind as IsBlocked
}
where
_AssignmentDetails.company_code is not initial
and _AssignmentDetails.technical_inactive_ind is initial
and _AssignmentDetails.employment_status = '0'
//define view entity R_WorkAssignmentDetailsAll
// as select from wfd_d_assgmtdets as _AssignmentDetails
// inner join R_WorkAssignmentKeyMap as _AssignmentKeyMap on _AssignmentKeyMap.WorkforceAssignment = _AssignmentDetails.workforce_assgmt_id
//
//{
// key _AssignmentDetails.workforce_assgmt_id as WorkAssignment,
// key _AssignmentDetails.start_date as StartDate,
// key _AssignmentDetails.end_date as EndDate,
// key _AssignmentKeyMap.WorkforcePersonExternalID as WorkforcePersonExternalID,
// _AssignmentDetails.employment_status as WorkforceAssignmentStatus,
// _AssignmentDetails.employment_percent as EmploymentPercent,
// _AssignmentDetails.company_code as CompanyCode,
// _AssignmentDetails.cost_center as CostCenter,
// _AssignmentDetails.controlling_area as ControllingArea,
// _AssignmentDetails.weekly_working_hours as WeeklyWorkingHours,
// _AssignmentDetails.weekly_working_days as WeeklyWorkingDays,
// _AssignmentDetails.job_title as WorkforcePersonJobTitle,
// _AssignmentDetails.job_code as WorkforcePersonJobCode,
// _AssignmentDetails.manager_work_assgmt as ManagerAssignmentID,
// _AssignmentDetails.country as Country2DigitISOCode,
// _AssignmentDetails.manager_work_assignment_ext_id as ManagerAssignmentExternalID,
// @Semantics.booleanIndicator
// _AssignmentDetails.main_employment_indicator as WorkforceAssignmentIsPrimary,
// _AssignmentDetails.block_ind as IsBlocked
//}
//where
// _AssignmentDetails.company_code is not initial
// and _AssignmentDetails.technical_inactive_ind is initial
// // and _AssignmentDetails.block_ind = ' '
// and _AssignmentDetails.employment_status = '1'
//
////Union II => This Union gives the inactive Job details against the Global assignment
//union all select from wfd_d_assgmtdets as _AssignmentDetails
// inner join R_WorkAssignmentKeyMap as _AssignmentKeyMap on _AssignmentKeyMap.WorkforceAssignment = _AssignmentDetails.workforce_assgmt_id
////Check any Active work agreement(Global Assignment) exist against this inactive record
// inner join R_WorkAssignmentDetailsActive as _WorkAssignmentDetailsActive on _WorkAssignmentDetailsActive.WorkforcePersonExternalID = _AssignmentKeyMap.WorkforcePersonExternalID
// and _WorkAssignmentDetailsActive.StartDate = _AssignmentDetails.start_date
// and _WorkAssignmentDetailsActive.EndDate = _AssignmentDetails.end_date
// //To avoid the real technial records => Global Assignments never end with high end date
// and _WorkAssignmentDetailsActive.EndDate <> '99991231'
// //Check Active work agreement(Global Assignment) exist against this inactive record
// and _AssignmentDetails.employment_status = '0'
//{
// key _AssignmentDetails.workforce_assgmt_id as WorkAssignment,
// key _AssignmentDetails.start_date as StartDate,
// key _AssignmentDetails.end_date as EndDate,
// key _AssignmentKeyMap.WorkforcePersonExternalID as WorkforcePersonExternalID,
// _AssignmentDetails.employment_status as WorkforceAssignmentStatus,
// _AssignmentDetails.employment_percent as EmploymentPercent,
// _AssignmentDetails.company_code as CompanyCode,
// _AssignmentDetails.cost_center as CostCenter,
// _AssignmentDetails.controlling_area as ControllingArea,
// _AssignmentDetails.weekly_working_hours as WeeklyWorkingHours,
// _AssignmentDetails.weekly_working_days as WeeklyWorkingDays,
// _AssignmentDetails.job_title as WorkforcePersonJobTitle,
// _AssignmentDetails.job_code as WorkforcePersonJobCode,
// _AssignmentDetails.manager_work_assgmt as ManagerAssignmentID,
// _AssignmentDetails.country as Country2DigitISOCode,
// _AssignmentDetails.manager_work_assignment_ext_id as ManagerAssignmentExternalID,
// _AssignmentDetails.main_employment_indicator as WorkforceAssignmentIsPrimary,
// _AssignmentDetails.block_ind as IsBlocked
//}
//where
// // _AssignmentDetails.block_ind = ' '
// // and
// _AssignmentDetails.employment_status = '0'
// and _WorkAssignmentDetailsActive.WorkAssignment is not initial
//
////Union III => This Union gives the inactive Job details => Non Technical Job details
//union all select from wfd_d_assgmtdets as _AssignmentDetails
// inner join R_WorkAssignmentKeyMap as _AssignmentKeyMap on _AssignmentKeyMap.WorkforceAssignment = _AssignmentDetails.workforce_assgmt_id
////Check any Active work agreement(Global Assignment) exist against this inactive record
// left outer to one join R_WorkAssignmentDetailsActive as _WorkAssignmentDetailsActive on _WorkAssignmentDetailsActive.WorkforcePersonExternalID = _AssignmentKeyMap.WorkforcePersonExternalID
// and _WorkAssignmentDetailsActive.StartDate = _AssignmentDetails.start_date
// and _WorkAssignmentDetailsActive.EndDate = _AssignmentDetails.end_date
// //Check Active work agreement(Global Assignment) exist against this inactive record
// and _AssignmentDetails.employment_status = '0'
//{
// key _AssignmentDetails.workforce_assgmt_id as WorkAssignment,
// key _AssignmentDetails.start_date as StartDate,
// key _AssignmentDetails.end_date as EndDate,
// key _AssignmentKeyMap.WorkforcePersonExternalID as WorkforcePersonExternalID,
// _AssignmentDetails.employment_status as WorkforceAssignmentStatus,
// _AssignmentDetails.employment_percent as EmploymentPercent,
// _AssignmentDetails.company_code as CompanyCode,
// _AssignmentDetails.cost_center as CostCenter,
// _AssignmentDetails.controlling_area as ControllingArea,
// _AssignmentDetails.weekly_working_hours as WeeklyWorkingHours,
// _AssignmentDetails.weekly_working_days as WeeklyWorkingDays,
// _AssignmentDetails.job_title as WorkforcePersonJobTitle,
// _AssignmentDetails.job_code as WorkforcePersonJobCode,
// _AssignmentDetails.manager_work_assgmt as ManagerAssignmentID,
// _AssignmentDetails.country as Country2DigitISOCode,
// _AssignmentDetails.manager_work_assignment_ext_id as ManagerAssignmentExternalID,
// _AssignmentDetails.main_employment_indicator as WorkforceAssignmentIsPrimary,
// _AssignmentDetails.block_ind as IsBlocked
//}
//where
// _AssignmentDetails.company_code is not initial
// and _AssignmentDetails.technical_inactive_ind is initial
// // and _AssignmentDetails.block_ind = ' '
// and _AssignmentDetails.employment_status = '0'
// and _WorkAssignmentDetailsActive.WorkAssignment is null