R_WorkCenterCapacityListTP

DDL: R_WORKCENTERCAPACITYLISTTP Type: view_entity TRANSACTIONAL Package: VDM_PP_MD_WKC

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)

SourceAliasJoin Type
I_Capacity _Cap from
I_MassMaintCapAreaOfRespy _WrkCtrCapAOR inner

Associations (16)

CardinalityTargetAliasCondition
[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)

NameValueLevelField
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)

KeyFieldSource TableSource FieldDescription
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
}