I_WorkCenterCapacityInterval_2 is a Composite CDS View that provides data about "Work Center Capacity Intervals 2" in SAP S/4HANA. It reads from 2 data sources (I_Capacity, I_AvailableCapacityType) and exposes 9 fields with key fields CapacityInternalID, CapacityActiveVersion, IntervalEndDate. It has 3 associations to related views. Part of development package ODATA_PP_WORKCENTER_API.
@AccessControl.authorizationCheck: #CHECK@EndUserText.label: 'Work Center Capacity Intervals 2'
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #MIXED}@VDM.viewType: #COMPOSITEdefineviewentity I_WorkCenterCapacityInterval_2
asselectfrom I_Capacity as _CapHeader
crossjoin I_AvailableCapacityType as _Version
leftouter to many join P_WrkCtrAvailableCapInterval as _Interval on _Interval.CapacityInternalID = _CapHeader.CapacityInternalID
and _Interval.AvailableCapacityType = _Version.AvailableCapacityType
association [1..1] to I_Capacity as _Capacity on $projection.CapacityInternalID = _Capacity.CapacityInternalID
association [1..1] to I_AvailableCapacityType as _AvailableCapacityType on $projection.CapacityActiveVersion = _AvailableCapacityType.AvailableCapacityType
association [0..1] to I_WorkDayRule as _WorkDayRule on $projection.WorkDayRule = _WorkDayRule.WorkDayRule
{
key _CapHeader.CapacityInternalID,
keycast(coalesce(_Interval.AvailableCapacityType, _Version.AvailableCapacityType ) as kapversion preserving type ) as CapacityActiveVersion,
keycast(coalesce(_Interval.ValidityEndDate, '99991231' ) as datub preserving type ) as IntervalEndDate,
casewhen _Interval.ValidityBeginDate isnullthen '00010102'
elsecast(dats_add_days(_Interval.ValidityBeginDate,1,'FAIL')as datuv preserving type )
endas IntervalStartDate,
casewhen _Interval.StdAvailableCapacityIsValid isnullthen 'X'
else _Interval.StdAvailableCapacityIsValid
endas StdAvailableCapacityIsValid,
// cast( coalesce(_Interval.StdAvailableCapacityIsValid, true ) as boole_d preserving type ) as StdAvailableCapacityIsValid,
// _Interval.StdAvailableCapacityIsValid as StdAvailableCapacityIsValid,
cast(coalesce(_Interval.ShiftSequence, ' ' ) as schprog preserving type ) as ShiftSequence,
cast(coalesce(_Interval.WorkDayRule, ' ') as workdayrule) as WorkDayRule,
cast(coalesce(_Interval.CapacityNumberOfShifts, '1' ) as anzschicht preserving type ) as CapacityNumberOfShifts,
casewhen _Interval.AvailableCapacityIntervalDurn isnullthen '01'
when _Interval.AvailableCapacityIntervalDurn is initial
then '01'
else
_Interval.AvailableCapacityIntervalDurn
endas AvailableCapacityIntervalDurn,
casewhen _Interval.StdAvailableCapacityIsValid isnullthencast(_CapHeader.CapacityNumberOfCapacities as kapanzahl preserving type)
when _Interval.StdAvailableCapacityIsValid is initial
thencast(_Interval.CapacityNumberOfCapacities as kapanzahl preserving type)
elsecast(_Capacity.CapacityNumberOfCapacities as kapanzahl preserving type)
endas CapacityNumberOfCapacities,
casewhen _Interval.StdAvailableCapacityIsValid isnullthen
_CapHeader.CapacityPlanUtilizationPercent
when _Interval.StdAvailableCapacityIsValid is initial
then
_Interval.CapacityPlanUtilizationPercent
else
_Capacity.CapacityPlanUtilizationPercent
endas CapacityPlanUtilizationPercent,
casewhen _Capacity.CapacityLastChangeDateTime isnullthencast('20190101120000' as kap_lastchange_datetime)
else _Capacity.CapacityLastChangeDateTime endas CapacityLastChangeDateTime,
_Capacity,
_AvailableCapacityType,
_WorkDayRule
}