R_WorkCenterCapacityListTP
Work Center Capacity List
R_WorkCenterCapacityListTP is a Transactional CDS View that provides data about "Work Center Capacity List" in SAP S/4HANA. It reads from 2 data sources (I_Capacity, I_MassMaintCapAreaOfRespy) and exposes 51 fields with key field CapacityInternalID. It has 16 associations to related views. Part of development package VDM_PP_MD_WKC.
Data Sources (2)
| Source | Alias | Join Type |
|---|---|---|
| I_Capacity | _Cap | from |
| I_MassMaintCapAreaOfRespy | _WrkCtrCapAOR | inner |
Associations (16)
| Cardinality | Target | Alias | Condition |
|---|---|---|---|
| [0..1] | I_WorkCenterGroupObjectCount | _ObjectCount | _ObjectCount.ObjectTypeCode = 'A' and _ObjectCount.ObjectInternalID = _WrkCtrCapAOR.WorkCenterInternalID and _Cap.Capacity = '' |
| [0..1] | I_BillOfOpsOpWorkCenterCount | _OP | _OP.WorkCenterTypeCode = 'A' and _OP.WorkCenterInternalID = _WrkCtrCapAOR.WorkCenterInternalID and _Cap.Capacity = '' and _OP.AreaOfResponsibility = _WrkCtrCapAOR.AreaOfResponsibility |
| [0..1] | I_MfgBOOMatlAssgmtWrkCtrCt | _Mat | _Mat.WorkCenterTypeCode = 'A' and _Mat.WorkCenterInternalID = _WrkCtrCapAOR.WorkCenterInternalID and _Cap.Capacity = '' and _Mat.AreaOfResponsibility = _WrkCtrCapAOR.AreaOfResponsibility |
| [0..1] | I_MassMaintCapOpsCtPooledCap | _PooledCapOPCt | _PooledCapOPCt.CapacityInternalID = _Cap.CapacityInternalID and _PooledCapOPCt.AreaOfResponsibility = _WrkCtrCapAOR.AreaOfResponsibility |
| [0..1] | I_MassMaintCapMatlCtPooledCap | _PooledCapMatCt | _PooledCapMatCt.CapacityInternalID = _Cap.CapacityInternalID and _PooledCapMatCt.AreaOfResponsibility = _WrkCtrCapAOR.AreaOfResponsibility |
| [0..1] | I_MassMaintCapGrpCtPooledCap | _PooledCapObjCt | _PooledCapObjCt.CapacityInternalID = _Cap.CapacityInternalID |
| [0..1] | I_CapacityCategoryText | _CapCatText | _CapCatText.CapacityCategoryCode = _Cap.CapacityCategoryCode and _CapCatText.Language = $session.system_language |
| [0..1] | I_CapacityRespPlannerText | _CapRespText | _CapRespText.CapacityResponsiblePlanner = _Cap.CapacityResponsiblePlanner and _CapRespText.Language = $session.system_language |
| [1..1] | I_Plant | _Plant | _Plant.Plant = $projection.Plant |
| [1..1] | P_PMRPChgProposalPerCapacity | _PMRPChgProposalPerCap | _PMRPChgProposalPerCap.PMRPResourceInternalID = _Cap.CapacityInternalID |
| [0..1] | I_ShiftGroupingText | _ShiftGrpText | _ShiftGrpText.ShiftGrouping = $projection.ShiftGroup and _ShiftGrpText.Language = $session.system_language |
| [0..1] | I_FactoryCalendarText | _CalText | _CalText.FactoryCalendar = $projection.FactoryCalendar and _CalText.Language = $session.system_language |
| [0..1] | I_AvailableCapacityTypeText | _AvailCapText | _AvailCapText.AvailableCapacityType = $projection.CapacityActiveVersion and _AvailCapText.Language = $session.system_language |
| [0..1] | I_UnitOfMeasureText | _UnitText | _UnitText.UnitOfMeasure = $projection.CapacityBaseQtyUnit and _UnitText.Language = $session.system_language |
| [1..*] | R_MassMaintCapIntervalShiftTP | _CapIntvlShift | |
| [1..*] | R_MassMaintCapPMRPChgPrpslTP | _PMRPChgProposalBuckets | |
Annotations (7)
| Name | Value | Level | Field |
|---|---|---|---|
| AccessControl.authorizationCheck | #CHECK | view | |
| EndUserText.label | Work Center Capacity List | view | |
| ObjectModel.usageType.serviceQuality | #C | view | |
| ObjectModel.usageType.sizeCategory | #XL | view | |
| ObjectModel.usageType.dataClass | #MIXED | view | |
| VDM.viewType | #TRANSACTIONAL | view | |
| VDM.lifecycle.contract.type | #SAP_INTERNAL_API | view |
Fields (51)
| Key | Field | Source Table | Source Field | Description |
|---|---|---|---|---|
| KEY | CapacityInternalID | I_Capacity | CapacityInternalID | |
| Plant | I_Capacity | Plant | ||
| WorkCenterInternalID | _WrkCtr | WorkCenterInternalID | ||
| WorkCenterTypeCode | _WrkCtr | WorkCenterTypeCode | ||
| Capacity | I_Capacity | Capacity | ||
| CapacityText | ||||
| CapacityCategoryCode | I_Capacity | CapacityCategoryCode | ||
| CapacityCategoryName | _CapCatText | CapacityCategoryName | ||
| CapacityResponsiblePlanner | I_Capacity | CapacityResponsiblePlanner | ||
| CapacityResponsiblePlannerName | _CapRespText | CapacityResponsiblePlannerName | ||
| CapacityIsPooled | I_Capacity | CapacityIsPooled | ||
| WorkCenterCategoryCode | _WrkCtr | WorkCenterCategoryCode | ||
| WorkCenterLastChangeDateTime | _WrkCtr | WorkCenterLastChangeDateTime | ||
| PlantName | ||||
| WorkCenterelseendasWorkCenter | ||||
| NumberOfProductsendasNumberOfProducts | ||||
| ShiftGroup | I_Capacity | ShiftGroup | ||
| CapacityIsFinite | I_Capacity | CapacityIsFinite | ||
| CapacityHasIndivCapacities | I_Capacity | CapacityHasIndivCapacities | ||
| CapacityIsExcldFrmLongTermPlng | I_Capacity | CapacityIsExcldFrmLongTermPlng | ||
| FactoryCalendarendasFactoryCalendar | ||||
| CapacityActiveVersion | I_Capacity | CapacityActiveVersion | ||
| AuthorizationGroup | I_Capacity | AuthorizationGroup | ||
| WorkCenterCapacityUnit | ||||
| WorkCenterUtilizationUnit | ||||
| timsasCapacityStartTime | ||||
| timsasCapacityEndTime | ||||
| CapacityBreakDuration | I_Capacity | CapacityBreakDuration | ||
| CapacityPlanUtilznInPercent | ||||
| CapacityNumberOfCapacities | I_Capacity | CapacityNumberOfCapacities | ||
| WrkCtrCapOvrldThldInPct | ||||
| CapacityQuantityUnit | I_Capacity | CapacityQuantityUnit | ||
| CapacityBaseQtyUnit | I_Capacity | CapacityBaseQtyUnit | ||
| WorkCenterGroup | ||||
| WorkCenterGroupType | ||||
| Product | ||||
| ProductionVersion | ||||
| CapacityBreakDurationFrmtdVal | ||||
| CapacityendasMassMaintCapApplHeaderVal | ||||
| CapacityHasPMRPChangeProposal | ||||
| ShiftGroupingName | _ShiftGrpText | ShiftGroupingName | ||
| AvailableCapacityTypeName | _AvailCapText | AvailableCapacityTypeName | ||
| UnitOfMeasureName | _UnitText | UnitOfMeasureName | ||
| WorkCenterResponsible | _WrkCtr | WorkCenterResponsible | ||
| AreaOfResponsibility | I_MassMaintCapAreaOfRespy | AreaOfResponsibility | ||
| _CapIntvlShift | _CapIntvlShift | |||
| _PMRPChgProposalBuckets | _PMRPChgProposalBuckets | |||
| _ShiftGrpText | _ShiftGrpText | |||
| _CalText | _CalText | |||
| _AvailCapText | _AvailCapText | |||
| _UnitText | _UnitText |
@AccessControl.authorizationCheck: #CHECK
@EndUserText.label: 'Work Center Capacity List'
@ObjectModel.usageType: {serviceQuality: #C, sizeCategory: #XL, dataClass: #MIXED}
@VDM.viewType: #TRANSACTIONAL
@VDM.lifecycle.contract.type:#SAP_INTERNAL_API
define root view entity R_WorkCenterCapacityListTP
as select from I_Capacity as _Cap
inner join I_MassMaintCapAreaOfRespy as _WrkCtrCapAOR on _Cap.CapacityInternalID = _WrkCtrCapAOR.CapacityInternalID
left outer to one join I_WorkCenter as _WrkCtr on _WrkCtr.WorkCenterInternalID = _WrkCtrCapAOR.WorkCenterInternalID
and _WrkCtr.WorkCenterTypeCode = 'A'
and _Cap.Capacity = ''
left outer to one join R_MassMaintCapCtrlrCapListTP as _CapBgJob on _CapBgJob.CapacityInternalID = _Cap.CapacityInternalID
//Associations for Dedicated Capacity Count
association [0..1] to I_WorkCenterGroupObjectCount as _ObjectCount on _ObjectCount.ObjectTypeCode = 'A'
and _ObjectCount.ObjectInternalID = _WrkCtrCapAOR.WorkCenterInternalID
and _Cap.Capacity = ''
association [0..1] to I_BillOfOpsOpWorkCenterCount as _OP on _OP.WorkCenterTypeCode = 'A'
and _OP.WorkCenterInternalID = _WrkCtrCapAOR.WorkCenterInternalID
and _Cap.Capacity = ''
and _OP.AreaOfResponsibility = _WrkCtrCapAOR.AreaOfResponsibility
association [0..1] to I_MfgBOOMatlAssgmtWrkCtrCt as _Mat on _Mat.WorkCenterTypeCode = 'A'
and _Mat.WorkCenterInternalID = _WrkCtrCapAOR.WorkCenterInternalID
and _Cap.Capacity = ''
and _Mat.AreaOfResponsibility = _WrkCtrCapAOR.AreaOfResponsibility
//Associations for Pooled Capacity Count
association [0..1] to I_MassMaintCapOpsCtPooledCap as _PooledCapOPCt on _PooledCapOPCt.CapacityInternalID = _Cap.CapacityInternalID
and _PooledCapOPCt.AreaOfResponsibility = _WrkCtrCapAOR.AreaOfResponsibility
association [0..1] to I_MassMaintCapMatlCtPooledCap as _PooledCapMatCt on _PooledCapMatCt.CapacityInternalID = _Cap.CapacityInternalID
and _PooledCapMatCt.AreaOfResponsibility = _WrkCtrCapAOR.AreaOfResponsibility
association [0..1] to I_MassMaintCapGrpCtPooledCap as _PooledCapObjCt on _PooledCapObjCt.CapacityInternalID = _Cap.CapacityInternalID
//Text Associations
association [0..1] to I_CapacityCategoryText as _CapCatText on _CapCatText.CapacityCategoryCode = _Cap.CapacityCategoryCode
and _CapCatText.Language = $session.system_language
association [0..1] to I_CapacityRespPlannerText as _CapRespText on _CapRespText.CapacityResponsiblePlanner = _Cap.CapacityResponsiblePlanner
and _CapRespText.Language = $session.system_language
association [1..1] to I_Plant as _Plant on _Plant.Plant = $projection.Plant
association [1..1] to P_PMRPChgProposalPerCapacity as _PMRPChgProposalPerCap on _PMRPChgProposalPerCap.PMRPResourceInternalID = _Cap.CapacityInternalID
association [0..1] to I_ShiftGroupingText as _ShiftGrpText on _ShiftGrpText.ShiftGrouping = $projection.ShiftGroup
and _ShiftGrpText.Language = $session.system_language
association [0..1] to I_FactoryCalendarText as _CalText on _CalText.FactoryCalendar = $projection.FactoryCalendar
and _CalText.Language = $session.system_language
association [0..1] to I_AvailableCapacityTypeText as _AvailCapText on _AvailCapText.AvailableCapacityType = $projection.CapacityActiveVersion
and _AvailCapText.Language = $session.system_language
association [0..1] to I_UnitOfMeasureText as _UnitText on _UnitText.UnitOfMeasure = $projection.CapacityBaseQtyUnit
and _UnitText.Language = $session.system_language
//Compositional Associations//
composition [1..*] of R_MassMaintCapIntervalShiftTP as _CapIntvlShift
composition [1..*] of R_MassMaintCapPMRPChgPrpslTP as _PMRPChgProposalBuckets
{
key _Cap.CapacityInternalID as CapacityInternalID,
_Cap.Plant as Plant,
_WrkCtr.WorkCenterInternalID as WorkCenterInternalID,
_WrkCtr.WorkCenterTypeCode as WorkCenterTypeCode,
_Cap.Capacity,
_Cap._Text[1:Language=$session.system_language].CapacityText,
_Cap.CapacityCategoryCode,
_CapCatText.CapacityCategoryName,
_Cap.CapacityResponsiblePlanner,
_CapRespText.CapacityResponsiblePlannerName,
_Cap.CapacityIsPooled,
_WrkCtr.WorkCenterCategoryCode,
_WrkCtr.WorkCenterLastChangeDateTime,
_Cap._Plant.PlantName,
case _Cap.Capacity
when '' then _WrkCtr.WorkCenter
else ' '
end as WorkCenter,
//WorkCenterCount
case _Cap.Capacity
when '' then _ObjectCount.WorkCenterGroupObjectCount
else _PooledCapObjCt.WorkCenterGroupObjectCount
end as WorkCenterGroupObjectCount,
//Bill Of Operations Work Center Count
case _Cap.Capacity
when '' then _OP.NumberOfBillOfOpsUsdInWrkCtr
else _PooledCapOPCt.NumberOfBillOfOpsUsdInWrkCtr
end as NumberOfBillOfOpsUsdInWrkCtr,
//Product Count
case _Cap.Capacity
when '' then _Mat.NumberOfProducts
else _PooledCapMatCt.NumberOfProducts
end as NumberOfProducts,
//Planning Data Fields:
@ObjectModel.text.element: ['ShiftGroupingName']
_Cap.ShiftGroup,
_Cap.CapacityIsFinite,
_Cap.CapacityHasIndivCapacities,
_Cap.CapacityIsExcldFrmLongTermPlng,
case _Cap.FactoryCalendar
when '' then _Plant.FactoryCalendar
else _Cap.FactoryCalendar end as FactoryCalendar,
_Cap.CapacityActiveVersion,
_Cap.AuthorizationGroup,
//Units
cast('H' as unit) as WorkCenterCapacityUnit,
cast('%' as unit) as WorkCenterUtilizationUnit,
//Available Capacity Fields:
cast ( substring( cast (
tstmp_add_seconds(
cast ('10010102000000' as abap.dec(15,0)),
cast( _Cap.CapacityStartTimeID as abap.dec(15,0) ),
'FAIL') as abap.sstring(50)),
9,6) as abap.tims) as CapacityStartTime,
cast ( substring( cast (
tstmp_add_seconds(
cast ('10010102000000' as abap.dec(15,0)),
cast( _Cap.CapacityEndTimeID as abap.dec(15,0) ),
'FAIL') as abap.sstring(50)),
9,6) as abap.tims) as CapacityEndTime,
_Cap.CapacityBreakDuration,
// case _Cap.CapacityPlanUtilizationPercent
// when '000' then concat_with_space('0', cast('%' as unit), 1)
// else
// ltrim(concat_with_space(_Cap.CapacityPlanUtilizationPercent, cast('%' as unit), 1) , '0')
// end as CapacityPlanUtilznPctFrmtdVal,
cast(_Cap.CapacityPlanUtilizationPercent as abap.dec(3,0)) as CapacityPlanUtilznInPercent,
_Cap.CapacityNumberOfCapacities,
// case _Cap.CapOverloadThresholdInPercent
// when '000' then concat_with_space('0', cast('%' as unit), 1)
// else
// ltrim(concat_with_space(_Cap.CapOverloadThresholdInPercent, cast('%' as unit), 1) , '0')
// end as CapOverloadThresholdFrmtdVal,
cast(_Cap.CapOverloadThresholdInPercent as abap.dec(3,0)) as WrkCtrCapOvrldThldInPct,
_Cap.CapacityQuantityUnit,
_Cap.CapacityBaseQtyUnit,
cast( ( case when _Cap.CapacityIsPooled = 'X'
then _Cap.CapacityLastChangeDateTime
else _WrkCtr.WorkCenterLastChangeDateTime
end ) as tzntstmps ) as CapacityLastChangeDateTime,
// Filter Columns
cast( cast( '0000000000' as abap.char(10) ) as cr_hname preserving type ) as WorkCenterGroup,
cast( cast( '0000000000' as abap.char(10) ) as cr_wrkctrgrptyp preserving type ) as WorkCenterGroupType,
cast( cast( '' as abap.char(40) ) as matnr preserving type ) as Product,
cast( cast( '0000' as abap.char(4) ) as verid preserving type ) as ProductionVersion,
cast('00:00:00' as abap.char(8)) as CapacityBreakDurationFrmtdVal,
case
when _CapBgJob.CapacityInternalID is null or _CapBgJob.CapacityInternalID is initial
then cast( '' as abap_boolean )
else cast ( 'X' as abap_boolean )
end as CapacityIsInBatchProcess,
case _Cap.Capacity
when '' then _WrkCtr.WorkCenter
else _Cap.Capacity end as MassMaintCapApplHeaderVal,
case _Cap.Capacity
when '' then _WrkCtr._Text[1:Language=$session.system_language].WorkCenterText
else _Cap._Text[1:Language=$session.system_language].CapacityText end as MassMaintCapApplHeaderDescVal,
// PMRP Change proposal
coalesce(_PMRPChgProposalPerCap.PMRPCapacityChangeIsNeeded, cast( '' as abap_boolean ) ) as CapacityHasPMRPChangeProposal,
_ShiftGrpText.ShiftGroupingName as ShiftGroupingName,
_AvailCapText.AvailableCapacityTypeName as AvailableCapacityTypeName,
_UnitText.UnitOfMeasureName as UnitOfMeasureName,
_WrkCtr.WorkCenterResponsible as WorkCenterResponsible,
// Derived Function
_WrkCtrCapAOR.AreaOfResponsibility as AreaOfResponsibility,
//Associations
_CapIntvlShift,
_PMRPChgProposalBuckets,
_ShiftGrpText,
_CalText,
_AvailCapText,
_UnitText
}
Learn More
- What Is a CDS View in SAP S/4HANA?
- Types of CDS Views: Basic, Composite, Consumption, and Transactional
- SAP Tables vs CDS Views — Key Differences
- Understanding Data Lineage in SAP S/4HANA
- VDM (Virtual Data Model) in SAP S/4HANA Explained
- CDS View Annotations — A Complete Guide
- CDS View Field Mapping and Associations
- Understanding the SAP S/4HANA Data Model
- CDS View Extensions and Custom Fields in SAP S/4HANA
- Released APIs and Stability Contracts in SAP S/4HANA